author | Hajime Tazaki <tazaki@nict.go.jp> |
Mon, 06 Aug 2012 20:45:50 +0900 | |
changeset 25 | 7d5166e0dc25 |
parent 24 | 02787e1dfd96 |
permissions | -rw-r--r-- |
24 | 1 |
diff -r 70496fb51ab2 example/dce-unbound.cc |
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
2 |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
24 | 3 |
+++ b/example/dce-unbound.cc Wed Jul 04 16:59:42 2012 +0900 |
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
4 |
@@ -0,0 +1,98 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
5 |
+#include "ns3/core-module.h" |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
6 |
+#include "ns3/network-module.h" |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
7 |
+#include "ns3/dce-module.h" |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
8 |
+#include "ns3/point-to-point-module.h" |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
9 |
+#include "ns3/csma-module.h" |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
10 |
+#include "ns3/wifi-module.h" |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
11 |
+#include "ns3/mobility-module.h" |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
12 |
+#include <fstream> |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
13 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
14 |
+using namespace ns3; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
15 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
16 |
+static void RunIp (Ptr<Node> node, Time at, std::string str) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
17 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
18 |
+ DceApplicationHelper process; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
19 |
+ ApplicationContainer apps; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
20 |
+ process.SetBinary ("ip"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
21 |
+ process.SetStackSize (1<<16); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
22 |
+ process.ResetArguments(); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
23 |
+ process.ParseArguments(str.c_str ()); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
24 |
+ apps = process.Install (node); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
25 |
+ apps.Start (at); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
26 |
+} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
27 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
28 |
+static void AddAddress (Ptr<Node> node, Time at, const char *name, const std::string prefixAddr, |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
29 |
+ int number, std::string suffixAddr) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
30 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
31 |
+ std::ostringstream oss; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
32 |
+ oss << "-f inet addr add " << prefixAddr << number << suffixAddr << " dev " << name; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
33 |
+ RunIp (node, at, oss.str ()); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
34 |
+} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
35 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
36 |
+int main (int argc, char *argv[]) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
37 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
38 |
+ CommandLine cmd; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
39 |
+ cmd.Parse (argc, argv); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
40 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
41 |
+ NodeContainer nodes; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
42 |
+ nodes.Create (2); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
43 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
44 |
+ NetDeviceContainer devices; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
45 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
46 |
+ PointToPointHelper p2p; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
47 |
+ p2p.SetDeviceAttribute ("DataRate", StringValue ("5Gbps")); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
48 |
+ p2p.SetChannelAttribute ("Delay", StringValue ("1ms")); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
49 |
+ devices = p2p.Install (nodes); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
50 |
+ p2p.EnablePcapAll ("process-unbound"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
51 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
52 |
+ DceManagerHelper processManager; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
53 |
+ processManager.SetLoader ("ns3::DlmLoaderFactory"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
54 |
+ // processManager.SetTaskManagerAttribute ("FiberManagerType", |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
55 |
+ // EnumValue (0)); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
56 |
+ processManager.SetNetworkStack("ns3::LinuxSocketFdFactory", |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
57 |
+ "Library", StringValue ("libnet-next-2.6.so")); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
58 |
+ processManager.Install (nodes); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
59 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
60 |
+ for (int n=0; n < 2; n++) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
61 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
62 |
+ AddAddress (nodes.Get (n), Seconds (0.1), "sim0", "10.0.0.", 2 + n, "/8" ); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
63 |
+ RunIp (nodes.Get (n), Seconds (0.11), "link set sim0 up arp off"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
64 |
+ RunIp (nodes.Get (n), Seconds (0.2), "link show"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
65 |
+ RunIp (nodes.Get (n), Seconds (0.3), "route show table all"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
66 |
+ RunIp (nodes.Get (n), Seconds (0.4), "addr list"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
67 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
68 |
+ RunIp (nodes.Get (1), Seconds (1.2), "route add default via 10.0.0.2 dev sim0"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
69 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
70 |
+ DceApplicationHelper process; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
71 |
+ ApplicationContainer apps; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
72 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
73 |
+ process.SetBinary ("unbound"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
74 |
+ process.ResetArguments (); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
75 |
+ process.ParseArguments ("-d"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
76 |
+ process.SetStackSize (1<<16); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
77 |
+ apps = process.Install (nodes.Get (0)); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
78 |
+ apps.Start (Seconds (1.0)); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
79 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
80 |
+ for (int i = 0; i < 20; i++) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
81 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
82 |
+ process.SetBinary ("unbound-host"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
83 |
+ process.ResetArguments (); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
84 |
+ process.ParseArguments ("www.example.com"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
85 |
+ process.ParseArguments ("-d"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
86 |
+ process.ParseArguments ("-d"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
87 |
+ process.ParseArguments ("-v"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
88 |
+ process.ParseArguments ("-r"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
89 |
+ process.ParseArguments ("-f"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
90 |
+ process.ParseArguments ("/etc/root.key"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
91 |
+ apps = process.Install (nodes.Get (1)); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
92 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
93 |
+ apps.Start (Seconds (1+ 10*i)); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
94 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
95 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
96 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
97 |
+ Simulator::Stop (Seconds (2000000.0)); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
98 |
+ Simulator::Run (); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
99 |
+ Simulator::Destroy (); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
100 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
101 |
+ return 0; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
102 |
+} |
24 | 103 |
diff -r 70496fb51ab2 model/dce-credentials.cc |
104 |
--- a/model/dce-credentials.cc Wed Jul 04 16:58:26 2012 +0900 |
|
105 |
+++ b/model/dce-credentials.cc Wed Jul 04 16:59:42 2012 +0900 |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
106 |
@@ -53,3 +53,15 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
107 |
int ret = eaccess (rPath.c_str (), mode); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
108 |
return ret; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
109 |
} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
110 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
111 |
+int dce_chown(const char *path, uid_t owner, gid_t group) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
112 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
113 |
+ // XXX |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
114 |
+ return 0; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
115 |
+} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
116 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
117 |
+int dce_initgroups(const char *user, gid_t group) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
118 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
119 |
+ // XXX |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
120 |
+ return 0; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
121 |
+} |
24 | 122 |
diff -r 70496fb51ab2 model/dce-stdio.cc |
123 |
--- a/model/dce-stdio.cc Wed Jul 04 16:58:26 2012 +0900 |
|
124 |
+++ b/model/dce-stdio.cc Wed Jul 04 16:59:42 2012 +0900 |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
125 |
@@ -722,6 +722,16 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
126 |
va_end (ap); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
127 |
return retval; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
128 |
} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
129 |
+int dce___vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
130 |
+ size_t __slen, |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
131 |
+ __const char *__restrict __format, _G_va_list __ap) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
132 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
133 |
+ NS_LOG_FUNCTION (Current () << UtilsGetNodeId ()); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
134 |
+ NS_ASSERT (Current () != 0); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
135 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
136 |
+ int retval = vsnprintf (__s, __n, __format, __ap); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
137 |
+ return retval; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
138 |
+} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
139 |
void dce___fpurge (FILE *stream) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
140 |
{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
141 |
NS_LOG_FUNCTION (Current () << UtilsGetNodeId () << stream); |
24 | 142 |
diff -r 70496fb51ab2 model/dce-stdio.h |
143 |
--- a/model/dce-stdio.h Wed Jul 04 16:58:26 2012 +0900 |
|
144 |
+++ b/model/dce-stdio.h Wed Jul 04 16:59:42 2012 +0900 |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
145 |
@@ -62,6 +62,9 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
146 |
__const char *__restrict __format, ...); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
147 |
int dce___snprintf_chk (char *__restrict __s, size_t __n, int __flag, |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
148 |
size_t __slen, __const char *__restrict __format, ...); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
149 |
+int dce___vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
150 |
+ size_t __slen, |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
151 |
+ __const char *__restrict __format, _G_va_list __ap); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
152 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
153 |
void dce___fpurge (FILE *stream); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
154 |
size_t dce___fpending(FILE *stream); |
24 | 155 |
diff -r 70496fb51ab2 model/dce-syslog.cc |
156 |
--- a/model/dce-syslog.cc Wed Jul 04 16:58:26 2012 +0900 |
|
157 |
+++ b/model/dce-syslog.cc Wed Jul 04 16:59:42 2012 +0900 |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
158 |
@@ -67,3 +67,14 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
159 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
160 |
vfprintf (process->syslog, message, args); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
161 |
} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
162 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
163 |
+void |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
164 |
+dce___syslog_chk (int __pri, int __flag, __const char *__fmt, ...) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
165 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
166 |
+ NS_ASSERT (Current () != 0); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
167 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
168 |
+ va_list ap; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
169 |
+ va_start (ap, __fmt); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
170 |
+ dce_vsyslog (__pri, __fmt, ap); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
171 |
+ va_end (ap); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
172 |
+} |
24 | 173 |
diff -r 70496fb51ab2 model/dce-syslog.h |
174 |
--- a/model/dce-syslog.h Wed Jul 04 16:58:26 2012 +0900 |
|
175 |
+++ b/model/dce-syslog.h Wed Jul 04 16:59:42 2012 +0900 |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
176 |
@@ -19,4 +19,7 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
177 |
void |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
178 |
dce_vsyslog (int priority, const char *message, va_list args); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
179 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
180 |
+void |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
181 |
+dce___syslog_chk (int __pri, int __flag, __const char *__fmt, ...); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
182 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
183 |
#endif // DCE_SYSLOG_H |
24 | 184 |
diff -r 70496fb51ab2 model/dce-unistd.h |
185 |
--- a/model/dce-unistd.h Wed Jul 04 16:58:26 2012 +0900 |
|
186 |
+++ b/model/dce-unistd.h Wed Jul 04 16:59:42 2012 +0900 |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
187 |
@@ -74,6 +74,8 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
188 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
189 |
ssize_t dce_pread(int fd, void *buf, size_t count, off_t offset); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
190 |
ssize_t dce_pwrite(int fd, const void *buf, size_t count, off_t offset); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
191 |
+int dce_chown(const char *path, uid_t owner, gid_t group); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
192 |
+int dce_initgroups(const char *user, gid_t group); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
193 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
194 |
#ifdef __cplusplus |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
195 |
} |
24 | 196 |
diff -r 70496fb51ab2 model/dce.cc |
197 |
--- a/model/dce.cc Wed Jul 04 16:58:26 2012 +0900 |
|
198 |
+++ b/model/dce.cc Wed Jul 04 16:59:42 2012 +0900 |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
199 |
@@ -141,7 +141,7 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
200 |
current->err = EPERM; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
201 |
return -1; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
202 |
} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
203 |
- if (sgid != (gid_t)-1 || |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
204 |
+ if (sgid != (gid_t)-1 && |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
205 |
!is_set_ucapable (sgid)) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
206 |
{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
207 |
current->err = EPERM; |
24 | 208 |
diff -r 70496fb51ab2 model/dlm-loader-factory.cc |
209 |
--- a/model/dlm-loader-factory.cc Wed Jul 04 16:58:26 2012 +0900 |
|
210 |
+++ b/model/dlm-loader-factory.cc Wed Jul 04 16:59:42 2012 +0900 |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
211 |
@@ -3,6 +3,7 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
212 |
#include "ns3/fatal-error.h" |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
213 |
#include <list> |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
214 |
#include <dlfcn.h> |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
215 |
+#include <sys/stat.h> |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
216 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
217 |
NS_LOG_COMPONENT_DEFINE ("DlmLoaderFactory"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
218 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
219 |
@@ -34,6 +35,10 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
220 |
virtual void Unload (void *module); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
221 |
virtual void *Lookup (void *module, std::string symbol); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
222 |
private: |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
223 |
+ bool SearchFile (std::string filename, std::string *fullname) const; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
224 |
+ std::list<std::string> GetSearchDirectories (void) const; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
225 |
+ std::list<std::string> Split (std::string input, std::string sep) const; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
226 |
+ bool Exists (std::string filename) const; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
227 |
Lmid_t m_lmid; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
228 |
std::list<void *> m_loaded; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
229 |
}; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
230 |
@@ -83,11 +88,98 @@ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
231 |
::dlclose (*i); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
232 |
} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
233 |
} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
234 |
+std::list<std::string> |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
235 |
+DlmLoader::Split (std::string input, std::string sep) const |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
236 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
237 |
+ NS_LOG_FUNCTION (this << input << sep); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
238 |
+ std::list<std::string> retval; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
239 |
+ std::string::size_type cur = 0, next; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
240 |
+ while (true) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
241 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
242 |
+ next = input.find (sep, cur); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
243 |
+ if (next == cur) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
244 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
245 |
+ cur ++; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
246 |
+ continue; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
247 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
248 |
+ else if (next == std::string::npos) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
249 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
250 |
+ if (input.size () != cur) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
251 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
252 |
+ retval.push_back (input.substr (cur, input.size () - cur)); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
253 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
254 |
+ break; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
255 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
256 |
+ retval.push_back (input.substr (cur, next - cur)); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
257 |
+ cur = next + 1; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
258 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
259 |
+ return retval; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
260 |
+} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
261 |
+std::list<std::string> |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
262 |
+DlmLoader::GetSearchDirectories (void) const |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
263 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
264 |
+ NS_LOG_FUNCTION (this); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
265 |
+ std::list<std::string> directories; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
266 |
+ char *ldLibraryPath = getenv ("LD_LIBRARY_PATH"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
267 |
+ if (ldLibraryPath != 0) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
268 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
269 |
+ std::list<std::string> tmp = Split (ldLibraryPath, ":"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
270 |
+ directories.insert (directories.end (), |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
271 |
+ tmp.begin (), |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
272 |
+ tmp.end ()); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
273 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
274 |
+ char *path = getenv ("PATH"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
275 |
+ if (path != 0) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
276 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
277 |
+ std::list<std::string> tmp = Split (path, ":"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
278 |
+ directories.insert (directories.end (), |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
279 |
+ tmp.begin (), |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
280 |
+ tmp.end ()); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
281 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
282 |
+ directories.push_back ("/lib"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
283 |
+ directories.push_back ("/usr/lib"); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
284 |
+ directories.push_back ("."); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
285 |
+ return directories; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
286 |
+} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
287 |
+bool |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
288 |
+DlmLoader::Exists (std::string filename) const |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
289 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
290 |
+ //NS_LOG_FUNCTION (this << filename); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
291 |
+ struct stat st; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
292 |
+ int retval = ::stat (filename.c_str (), &st); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
293 |
+ return retval == 0; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
294 |
+} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
295 |
+bool |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
296 |
+DlmLoader::SearchFile (std::string filename, std::string *fullname) const |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
297 |
+{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
298 |
+ NS_LOG_FUNCTION (this << filename); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
299 |
+ if (Exists (filename)) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
300 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
301 |
+ *fullname = filename; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
302 |
+ NS_LOG_DEBUG ("Found: " << filename << " as " << *fullname); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
303 |
+ return true; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
304 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
305 |
+ std::list<std::string> dirs = GetSearchDirectories (); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
306 |
+ for (std::list<std::string>::const_iterator i = dirs.begin (); i != dirs.end (); i++) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
307 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
308 |
+ if (Exists (*i + "/" + filename)) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
309 |
+ { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
310 |
+ *fullname = *i + "/" + filename; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
311 |
+ NS_LOG_DEBUG ("Found: " << filename << " as " << *fullname); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
312 |
+ return true; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
313 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
314 |
+ } |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
315 |
+ return false; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
316 |
+} |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
317 |
void * |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
318 |
DlmLoader::Load (std::string filename, int flag) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
319 |
{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
320 |
+ std::string fullname; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
321 |
+ bool found; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
322 |
NS_LOG_FUNCTION (this << filename << flag); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
323 |
- void *module = dlmopen (m_lmid, filename.c_str (), flag); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
324 |
+ found = SearchFile (filename, &fullname); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
325 |
+ NS_ASSERT (found); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
326 |
+ void *module = dlmopen (m_lmid, fullname.c_str (), flag); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
327 |
m_loaded.push_back (module); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
328 |
return module; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
329 |
} |
24 | 330 |
diff -r 70496fb51ab2 model/libc-dce.cc |
331 |
--- a/model/libc-dce.cc Wed Jul 04 16:58:26 2012 +0900 |
|
332 |
+++ b/model/libc-dce.cc Wed Jul 04 16:59:42 2012 +0900 |
|
333 |
@@ -132,11 +132,13 @@ |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
334 |
__THROW; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
335 |
extern int __obstack_vprintf_chk (struct obstack *, int, const char *, |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
336 |
_G_va_list) __THROW; |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
337 |
+extern void __syslog_chk (int __pri, int __flag, __const char *__fmt, ...); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
338 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
339 |
typedef void (*func_t) (...); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
340 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
341 |
extern "C" { |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
342 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
343 |
+extern void *__memcpy_chk(void *dest, const void *src, size_t n, size_t __destlen); |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
344 |
void libc_dce (struct Libc **libc) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
345 |
{ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
346 |
*libc = new Libc; |
24 | 347 |
diff -r 70496fb51ab2 model/libc-ns3.h |
348 |
--- a/model/libc-ns3.h Wed Jul 04 16:58:26 2012 +0900 |
|
349 |
+++ b/model/libc-ns3.h Wed Jul 04 16:59:42 2012 +0900 |
|
350 |
@@ -127,6 +127,7 @@ |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
351 |
NATIVE_EXPLICIT (strchr, char* (*) (char *, int)) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
352 |
NATIVE_EXPLICIT (strrchr, const char * (*) (const char *, int)) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
353 |
//DCE (strrchr) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
354 |
+NATIVE_EXPLICIT (strstr, const char * (*) (const char *, const char *)) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
355 |
NATIVE (strcasecmp) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
356 |
NATIVE (strncasecmp) |
24 | 357 |
DCE_WITH_ALIAS (strdup) // because C++ defines both const and non-const functions |
358 |
@@ -241,6 +242,8 @@ |
|
359 |
NATIVE (getdtablesize) |
|
360 |
DCE (pread) |
|
361 |
DCE (pwrite) |
|
362 |
+DCE (chown) |
|
363 |
+DCE (initgroups) |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
364 |
|
24 | 365 |
// SYS/UIO.H |
366 |
DCE (writev) |
|
367 |
@@ -393,6 +396,10 @@ |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
368 |
NATIVE (pthread_rwlock_destroy) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
369 |
NATIVE (pthread_setcancelstate) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
370 |
NATIVE (pthread_sigmask) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
371 |
+NATIVE (pthread_spin_init) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
372 |
+NATIVE (pthread_spin_lock) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
373 |
+NATIVE (pthread_spin_unlock) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
374 |
+NATIVE (pthread_spin_destroy) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
375 |
|
24 | 376 |
// SEMAPHORE.H |
377 |
DCE (sem_init) |
|
378 |
@@ -475,6 +482,9 @@ |
|
379 |
DCE (setlogmask) |
|
380 |
DCE (syslog) |
|
381 |
DCE (vsyslog) |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
382 |
+DCE (__syslog_chk) |
24 | 383 |
+ |
384 |
+ |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
385 |
|
24 | 386 |
// SETJMP.H |
387 |
NATIVE (__sigsetjmp) |
|
388 |
diff -r 70496fb51ab2 wscript |
|
389 |
--- a/wscript Wed Jul 04 16:58:26 2012 +0900 |
|
390 |
+++ b/wscript Wed Jul 04 16:59:42 2012 +0900 |
|
391 |
@@ -40,6 +40,8 @@ |
|
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
392 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
393 |
conf.env.prepend_value('LINKFLAGS', '-Wl,--no-as-needed') |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
394 |
conf.env.append_value('LINKFLAGS', '-pthread') |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
395 |
+ conf.env.append_value('LINKFLAGS', '-Wl,--dynamic-linker=' + |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
396 |
+ os.path.abspath ('../build/lib/ldso')) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
397 |
conf.check (lib='dl', mandatory = True) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
398 |
conf.check_cc(fragment='int main() {__get_cpu_features();}\n', msg='Checking for glibc get_cpu_features', define_name='HAVE_GETCPUFEATURES', mandatory=False) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
399 |
|
24 | 400 |
@@ -288,6 +290,10 @@ |
20
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
401 |
target='bin/dce-linux', |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
402 |
source=['example/dce-linux.cc']) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
403 |
|
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
404 |
+ module.add_example(needed = ['core', 'network', 'dce', 'wifi', 'point-to-point', 'csma', 'mobility' ], |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
405 |
+ target='bin/dce-unbound', |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
406 |
+ source=['example/dce-unbound.cc']) |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
407 |
+ |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
408 |
# Add a script to build system |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
409 |
def build_a_script(bld, name, needed = [], **kw): |
5ca51e147e7f
unbound, bind9, fedora8 added
Hajime Tazaki <tazaki@nict.go.jp>
parents:
diff
changeset
|
410 |
external = [i for i in needed if not i == name] |