10
|
1 |
diff -r 930c18c455ba example/dce-linux.cc
|
|
2 |
--- a/example/dce-linux.cc Fri Feb 10 18:31:18 2012 +0900
|
|
3 |
+++ b/example/dce-linux.cc Mon Feb 20 12:52:34 2012 +0900
|
|
4 |
@@ -105,7 +105,7 @@
|
|
5 |
DceManagerHelper processManager;
|
|
6 |
// processManager.SetLoader ("ns3::DlmLoaderFactory");
|
|
7 |
processManager.SetNetworkStack("ns3::LinuxSocketFdFactory",
|
|
8 |
- "Library", StringValue ("libnet-next-2.6.so"));
|
|
9 |
+ "Library", StringValue ("libfreebsd.git.so"));
|
|
10 |
processManager.Install (nodes);
|
|
11 |
|
|
12 |
for (int n=0; n < 2; n++)
|
|
13 |
diff -r 930c18c455ba example/tcp-server.cc
|
|
14 |
--- a/example/tcp-server.cc Fri Feb 10 18:31:18 2012 +0900
|
|
15 |
+++ b/example/tcp-server.cc Mon Feb 20 12:52:34 2012 +0900
|
|
16 |
@@ -1,6 +1,8 @@
|
|
17 |
#include <unistd.h>
|
|
18 |
#include <sys/types.h>
|
|
19 |
#include <sys/socket.h>
|
|
20 |
+#include <stdio.h>
|
|
21 |
+#include <errno.h>
|
|
22 |
#include <netdb.h>
|
|
23 |
#include <string.h>
|
|
24 |
#include <iostream>
|
|
25 |
@@ -23,6 +25,15 @@
|
|
26 |
status = listen (sock, 1);
|
|
27 |
|
|
28 |
int fd = accept (sock, 0, 0);
|
|
29 |
+ while ((fd == -1) && (errno == 35))
|
|
30 |
+ {
|
|
31 |
+ std::cout << " accept -> " << fd << " errno " << errno <<std::endl;
|
|
32 |
+ perror ("retry");
|
|
33 |
+ sleep (1);
|
|
34 |
+ fd = accept (sock, 0, 0);
|
|
35 |
+ if (fd == -1)
|
|
36 |
+ perror ("damn");
|
|
37 |
+ }
|
|
38 |
std::cout << " accept -> " << fd << std::endl;
|
|
39 |
|
|
40 |
uint8_t buf[10240];
|
|
41 |
diff -r 930c18c455ba model/linux-socket-fd-factory.cc
|
|
42 |
--- a/model/linux-socket-fd-factory.cc Fri Feb 10 18:31:18 2012 +0900
|
|
43 |
+++ b/model/linux-socket-fd-factory.cc Mon Feb 20 12:52:34 2012 +0900
|
|
44 |
@@ -407,6 +407,8 @@
|
|
45 |
{
|
|
46 |
flags |= SIM_DEV_NOARP;
|
|
47 |
}
|
|
48 |
+ Ptr<Node> node = GetObject<Node> ();
|
|
49 |
+ (node->GetId () == 0) ? (flags |= (1<<4)) : (flags |= 0);
|
|
50 |
struct SimDevice *dev = m_exported->dev_create (PeekPointer (device), (enum SimDevFlags)flags);
|
|
51 |
|
|
52 |
Ptr<LinuxDeviceStateListener> listener = Create <LinuxDeviceStateListener> (device, this);
|
|
53 |
@@ -414,7 +416,6 @@
|
|
54 |
device->AddLinkChangeCallback (MakeCallback (&LinuxDeviceStateListener::NotifyDeviceStateChange, listener));
|
|
55 |
|
|
56 |
m_devices.push_back (std::make_pair (device,dev));
|
|
57 |
- Ptr<Node> node = GetObject<Node> ();
|
|
58 |
node->RegisterProtocolHandler (MakeCallback (&LinuxSocketFdFactory::RxFromDevice, this),
|
|
59 |
0, device, true);
|
|
60 |
NotifyDeviceStateChangeTask (device);
|