diff -r 930c18c455ba example/dce-linux.cc
--- a/example/dce-linux.cc Fri Feb 10 18:31:18 2012 +0900
+++ b/example/dce-linux.cc Mon Feb 20 12:52:34 2012 +0900
@@ -105,7 +105,7 @@
DceManagerHelper processManager;
// processManager.SetLoader ("ns3::DlmLoaderFactory");
processManager.SetNetworkStack("ns3::LinuxSocketFdFactory",
- "Library", StringValue ("libnet-next-2.6.so"));
+ "Library", StringValue ("libfreebsd.git.so"));
processManager.Install (nodes);
for (int n=0; n < 2; n++)
diff -r 930c18c455ba example/tcp-server.cc
--- a/example/tcp-server.cc Fri Feb 10 18:31:18 2012 +0900
+++ b/example/tcp-server.cc Mon Feb 20 12:52:34 2012 +0900
@@ -1,6 +1,8 @@
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
+#include <stdio.h>
+#include <errno.h>
#include <netdb.h>
#include <string.h>
#include <iostream>
@@ -23,6 +25,15 @@
status = listen (sock, 1);
int fd = accept (sock, 0, 0);
+ while ((fd == -1) && (errno == 35))
+ {
+ std::cout << " accept -> " << fd << " errno " << errno <<std::endl;
+ perror ("retry");
+ sleep (1);
+ fd = accept (sock, 0, 0);
+ if (fd == -1)
+ perror ("damn");
+ }
std::cout << " accept -> " << fd << std::endl;
uint8_t buf[10240];
diff -r 930c18c455ba model/linux-socket-fd-factory.cc
--- a/model/linux-socket-fd-factory.cc Fri Feb 10 18:31:18 2012 +0900
+++ b/model/linux-socket-fd-factory.cc Mon Feb 20 12:52:34 2012 +0900
@@ -407,6 +407,8 @@
{
flags |= SIM_DEV_NOARP;
}
+ Ptr<Node> node = GetObject<Node> ();
+ (node->GetId () == 0) ? (flags |= (1<<4)) : (flags |= 0);
struct SimDevice *dev = m_exported->dev_create (PeekPointer (device), (enum SimDevFlags)flags);
Ptr<LinuxDeviceStateListener> listener = Create <LinuxDeviceStateListener> (device, this);
@@ -414,7 +416,6 @@
device->AddLinkChangeCallback (MakeCallback (&LinuxDeviceStateListener::NotifyDeviceStateChange, listener));
m_devices.push_back (std::make_pair (device,dev));
- Ptr<Node> node = GetObject<Node> ();
node->RegisterProtocolHandler (MakeCallback (&LinuxSocketFdFactory::RxFromDevice, this),
0, device, true);
NotifyDeviceStateChangeTask (device);