View | Details | Raw Unified | Return to bug 194660 | Differences between
and this patch

Collapse All | Expand All

(-)mcs/class/System/System.Net.NetworkInformation/GatewayIPAddressInformationCollection.cs (-4 / +4 lines)
Lines 128-145 namespace System.Net.NetworkInformation Link Here
128
		}
128
		}
129
	}
129
	}
130
130
131
	class LinuxGatewayIPAddressInformationCollection : GatewayIPAddressInformationCollection
131
	class UnixGatewayIPAddressInformationCollection : GatewayIPAddressInformationCollection
132
	{
132
	{
133
		public static readonly LinuxGatewayIPAddressInformationCollection Empty = new LinuxGatewayIPAddressInformationCollection (true);
133
		public static readonly UnixGatewayIPAddressInformationCollection Empty = new UnixGatewayIPAddressInformationCollection (true);
134
134
135
		bool is_readonly;
135
		bool is_readonly;
136
136
137
		private LinuxGatewayIPAddressInformationCollection (bool isReadOnly)
137
		private UnixGatewayIPAddressInformationCollection (bool isReadOnly)
138
		{
138
		{
139
			this.is_readonly = isReadOnly;
139
			this.is_readonly = isReadOnly;
140
		}
140
		}
141
141
142
		public LinuxGatewayIPAddressInformationCollection (IPAddressCollection col)
142
		public UnixGatewayIPAddressInformationCollection (IPAddressCollection col)
143
		{
143
		{
144
			foreach (IPAddress a in col)
144
			foreach (IPAddress a in col)
145
				Add (new GatewayIPAddressInformationImpl (a));
145
				Add (new GatewayIPAddressInformationImpl (a));
(-)mcs/class/System/System.Net.NetworkInformation/IPInterfaceProperties.cs (-43 / +78 lines)
Lines 30-35 using System.Collections.Generic; Link Here
30
using System.Globalization;
30
using System.Globalization;
31
using System.IO;
31
using System.IO;
32
using System.Net.Sockets;
32
using System.Net.Sockets;
33
using System.Runtime.CompilerServices;
33
using System.Text.RegularExpressions;
34
using System.Text.RegularExpressions;
34
35
35
namespace System.Net.NetworkInformation {
36
namespace System.Net.NetworkInformation {
Lines 59-65 namespace System.Net.NetworkInformation Link Here
59
		protected UnixNetworkInterface iface;
60
		protected UnixNetworkInterface iface;
60
		List <IPAddress> addresses;
61
		List <IPAddress> addresses;
61
		IPAddressCollection dns_servers;
62
		IPAddressCollection dns_servers;
62
		IPAddressCollection gateways;
63
		string dns_suffix;
63
		string dns_suffix;
64
		DateTime last_parse;
64
		DateTime last_parse;
65
		
65
		
Lines 74-111 namespace System.Net.NetworkInformation Link Here
74
			throw new NotImplementedException ();
74
			throw new NotImplementedException ();
75
		}
75
		}
76
76
77
		void ParseRouteInfo (string iface)
78
		{
79
			try {
80
				gateways = new IPAddressCollection ();
81
				using (StreamReader reader = new StreamReader ("/proc/net/route")) {
82
					string line;
83
					reader.ReadLine (); // Ignore first line
84
					while ((line = reader.ReadLine ()) != null) {
85
						line = line.Trim ();
86
						if (line.Length == 0)
87
							continue;
88
89
						string [] parts = line.Split ('\t');
90
						if (parts.Length < 3)
91
							continue;
92
						string gw_address = parts [2].Trim ();
93
						byte [] ipbytes = new byte [4];  
94
						if (gw_address.Length == 8 && iface.Equals (parts [0], StringComparison.OrdinalIgnoreCase)) {
95
							for (int i = 0; i < 4; i++) {
96
								if (!Byte.TryParse (gw_address.Substring (i * 2, 2), NumberStyles.HexNumber, null, out ipbytes [3 - i]))
97
									continue;
98
							}
99
							IPAddress ip = new IPAddress (ipbytes);
100
							if (!ip.Equals (IPAddress.Any))
101
								gateways.Add (ip);
102
						}
103
					}
104
				}
105
			} catch {
106
			}
107
		}
108
109
		static Regex ns = new Regex (@"\s*nameserver\s+(?<address>.*)");
77
		static Regex ns = new Regex (@"\s*nameserver\s+(?<address>.*)");
110
		static Regex search = new Regex (@"\s*search\s+(?<domain>.*)");
78
		static Regex search = new Regex (@"\s*search\s+(?<domain>.*)");
111
		void ParseResolvConf ()
79
		void ParseResolvConf ()
Lines 188-203 namespace System.Net.NetworkInformation Link Here
188
				return dns_suffix;
156
				return dns_suffix;
189
			}
157
			}
190
		}
158
		}
191
     
192
		public override GatewayIPAddressInformationCollection GatewayAddresses {
193
			get {
194
				ParseRouteInfo (this.iface.Name.ToString());
195
				if (gateways.Count > 0)
196
					return new LinuxGatewayIPAddressInformationCollection (gateways);
197
				else
198
					return LinuxGatewayIPAddressInformationCollection.Empty;
199
			}
200
		}
201
159
202
		[MonoTODO ("Always returns true")]
160
		[MonoTODO ("Always returns true")]
203
		public override bool IsDnsEnabled {
161
		public override bool IsDnsEnabled {
Lines 260-265 namespace System.Net.NetworkInformation Link Here
260
218
261
	class LinuxIPInterfaceProperties : UnixIPInterfaceProperties
219
	class LinuxIPInterfaceProperties : UnixIPInterfaceProperties
262
	{
220
	{
221
		IPAddressCollection gateways;
222
263
		public LinuxIPInterfaceProperties (LinuxNetworkInterface iface, List <IPAddress> addresses)
223
		public LinuxIPInterfaceProperties (LinuxNetworkInterface iface, List <IPAddress> addresses)
264
			: base (iface, addresses)
224
			: base (iface, addresses)
265
		{
225
		{
Lines 272-281 namespace System.Net.NetworkInformation Link Here
272
			
232
			
273
			return ipv4iface_properties;
233
			return ipv4iface_properties;
274
		}
234
		}
235
236
		void ParseRouteInfo (string iface)
237
		{
238
			try {
239
				using (StreamReader reader = new StreamReader ("/proc/net/route")) {
240
					string line;
241
					reader.ReadLine (); // Ignore first line
242
					while ((line = reader.ReadLine ()) != null) {
243
						line = line.Trim ();
244
						if (line.Length == 0)
245
							continue;
246
247
						string [] parts = line.Split ('\t');
248
						if (parts.Length < 3)
249
							continue;
250
						string gw_address = parts [2].Trim ();
251
						byte [] ipbytes = new byte [4];
252
						if (gw_address.Length == 8 && iface.Equals (parts [0], StringComparison.OrdinalIgnoreCase)) {
253
							for (int i = 0; i < 4; i++) {
254
								if (!Byte.TryParse (gw_address.Substring (i * 2, 2), NumberStyles.HexNumber, null, out ipbytes [3 - i]))
255
									continue;
256
							}
257
							IPAddress ip = new IPAddress (ipbytes);
258
							if (!ip.Equals (IPAddress.Any) && !gateways.Contains (ip))
259
								gateways.Add (ip);
260
						}
261
					}
262
				}
263
			} catch {
264
			}
265
		}
266
267
		public override GatewayIPAddressInformationCollection GatewayAddresses {
268
			get {
269
				gateways = new IPAddressCollection ();
270
				ParseRouteInfo (this.iface.Name.ToString());
271
				if (gateways.Count > 0)
272
					return new UnixGatewayIPAddressInformationCollection (gateways);
273
				else
274
					return UnixGatewayIPAddressInformationCollection.Empty;
275
			}
276
		}
275
	}
277
	}
276
278
277
	class MacOsIPInterfaceProperties : UnixIPInterfaceProperties
279
	class MacOsIPInterfaceProperties : UnixIPInterfaceProperties
278
	{
280
	{
281
		IPAddressCollection gateways;
282
279
		public MacOsIPInterfaceProperties (MacOsNetworkInterface iface, List <IPAddress> addresses)
283
		public MacOsIPInterfaceProperties (MacOsNetworkInterface iface, List <IPAddress> addresses)
280
			: base (iface, addresses)
284
			: base (iface, addresses)
281
		{
285
		{
Lines 288-293 namespace System.Net.NetworkInformation Link Here
288
			
292
			
289
			return ipv4iface_properties;
293
			return ipv4iface_properties;
290
		}
294
		}
295
296
		[MethodImplAttribute(MethodImplOptions.InternalCall)]
297
		private extern static bool ParseRouteInfo_internal(string iface, out string[] gw_addr_list);
298
299
		public override GatewayIPAddressInformationCollection GatewayAddresses {
300
			get {
301
				gateways = new IPAddressCollection ();
302
				string[] gw_addrlist;
303
				if (!ParseRouteInfo_internal (this.iface.Name.ToString(), out gw_addrlist))
304
					return UnixGatewayIPAddressInformationCollection.Empty;
305
306
				for(int i=0; i<gw_addrlist.Length; i++) {
307
					try {
308
						IPAddress ip = IPAddress.Parse(gw_addrlist[i]);
309
						if (!ip.Equals (IPAddress.Any) && !gateways.Contains (ip))
310
							gateways.Add (ip);
311
					} catch (ArgumentNullException) {
312
						/* Ignore this, as the
313
						 * internal call might have
314
						 * left some blank entries at
315
						 * the end of the array
316
						 */
317
					}
318
				}
319
320
				if (gateways.Count > 0)
321
					return new UnixGatewayIPAddressInformationCollection (gateways);
322
				else
323
					return UnixGatewayIPAddressInformationCollection.Empty;
324
			}
325
		}
291
	}
326
	}
292
327
293
	class Win32IPInterfaceProperties2 : IPInterfaceProperties
328
	class Win32IPInterfaceProperties2 : IPInterfaceProperties
(-)mono/metadata/Makefile.am (+2 lines)
Lines 157-162 common_sources = \ Link Here
157
	mono-perfcounters.h	\
157
	mono-perfcounters.h	\
158
	mono-perfcounters-def.h	\
158
	mono-perfcounters-def.h	\
159
	mono-ptr-array.h	\
159
	mono-ptr-array.h	\
160
	mono-route.c		\
161
	mono-route.h		\
160
	mono-wsq.c		\
162
	mono-wsq.c		\
161
	mono-wsq.h		\
163
	mono-wsq.h		\
162
	monitor.h		\
164
	monitor.h		\
(-)mono/metadata/Makefile.in (-5 / +43 lines)
Lines 121-127 am__libmonoruntime_static_la_SOURCES_DIS Link Here
121
	mono-debug-debugger.c mono-endian.c mono-endian.h mono-hash.h \
121
	mono-debug-debugger.c mono-endian.c mono-endian.h mono-hash.h \
122
	mono-mlist.c mono-mlist.h mono-perfcounters.c \
122
	mono-mlist.c mono-mlist.h mono-perfcounters.c \
123
	mono-perfcounters.h mono-perfcounters-def.h mono-ptr-array.h \
123
	mono-perfcounters.h mono-perfcounters-def.h mono-ptr-array.h \
124
	mono-wsq.c mono-wsq.h monitor.h nacl-stub.c \
124
	mono-route.c mono-route.h mono-wsq.c mono-wsq.h monitor.h nacl-stub.c \
125
	normalization-tables.h number-formatter.h object-internals.h \
125
	normalization-tables.h number-formatter.h object-internals.h \
126
	opcodes.c socket-io.c socket-io.h process.c process.h \
126
	opcodes.c socket-io.c socket-io.h process.c process.h \
127
	profiler.c profiler-private.h rand.h rand.c runtime.c \
127
	profiler.c profiler-private.h rand.h rand.c runtime.c \
Lines 171-176 am__objects_4 = $(am__objects_3) libmono Link Here
171
	libmonoruntime_static_la-mono-endian.lo \
171
	libmonoruntime_static_la-mono-endian.lo \
172
	libmonoruntime_static_la-mono-mlist.lo \
172
	libmonoruntime_static_la-mono-mlist.lo \
173
	libmonoruntime_static_la-mono-perfcounters.lo \
173
	libmonoruntime_static_la-mono-perfcounters.lo \
174
	libmonoruntime_static_la-mono-route.lo \
174
	libmonoruntime_static_la-mono-wsq.lo \
175
	libmonoruntime_static_la-mono-wsq.lo \
175
	libmonoruntime_static_la-nacl-stub.lo \
176
	libmonoruntime_static_la-nacl-stub.lo \
176
	libmonoruntime_static_la-opcodes.lo \
177
	libmonoruntime_static_la-opcodes.lo \
Lines 230-237 am__libmonoruntime_la_SOURCES_DIST = con Link Here
230
	mono-config.c mono-cq.c mono-cq.h mono-debug.h mono-debug.c \
231
	mono-config.c mono-cq.c mono-cq.h mono-debug.h mono-debug.c \
231
	mono-debug-debugger.h mono-debug-debugger.c mono-endian.c \
232
	mono-debug-debugger.h mono-debug-debugger.c mono-endian.c \
232
	mono-endian.h mono-hash.h mono-mlist.c mono-mlist.h \
233
	mono-endian.h mono-hash.h mono-mlist.c mono-mlist.h \
233
	mono-perfcounters.c mono-perfcounters.h \
234
	mono-perfcounters.c mono-perfcounters.h mono-perfcounters-def.h \
234
	mono-perfcounters-def.h mono-ptr-array.h mono-wsq.c mono-wsq.h \
235
	mono-ptr-array.h mono-route.c mono-route.h mono-wsq.c mono-wsq.h \
235
	monitor.h nacl-stub.c normalization-tables.h \
236
	monitor.h nacl-stub.c normalization-tables.h \
236
	number-formatter.h object-internals.h opcodes.c socket-io.c \
237
	number-formatter.h object-internals.h opcodes.c socket-io.c \
237
	socket-io.h process.c process.h profiler.c profiler-private.h \
238
	socket-io.h process.c process.h profiler.c profiler-private.h \
Lines 271-276 am__objects_12 = $(am__objects_11) libmo Link Here
271
	libmonoruntime_la-mono-endian.lo \
272
	libmonoruntime_la-mono-endian.lo \
272
	libmonoruntime_la-mono-mlist.lo \
273
	libmonoruntime_la-mono-mlist.lo \
273
	libmonoruntime_la-mono-perfcounters.lo \
274
	libmonoruntime_la-mono-perfcounters.lo \
275
	libmonoruntime_la-mono-route.lo \
274
	libmonoruntime_la-mono-wsq.lo libmonoruntime_la-nacl-stub.lo \
276
	libmonoruntime_la-mono-wsq.lo libmonoruntime_la-nacl-stub.lo \
275
	libmonoruntime_la-opcodes.lo libmonoruntime_la-socket-io.lo \
277
	libmonoruntime_la-opcodes.lo libmonoruntime_la-socket-io.lo \
276
	libmonoruntime_la-process.lo libmonoruntime_la-profiler.lo \
278
	libmonoruntime_la-process.lo libmonoruntime_la-profiler.lo \
Lines 318-324 am__libmonoruntimesgen_static_la_SOURCES Link Here
318
	mono-debug-debugger.c mono-endian.c mono-endian.h mono-hash.h \
320
	mono-debug-debugger.c mono-endian.c mono-endian.h mono-hash.h \
319
	mono-mlist.c mono-mlist.h mono-perfcounters.c \
321
	mono-mlist.c mono-mlist.h mono-perfcounters.c \
320
	mono-perfcounters.h mono-perfcounters-def.h mono-ptr-array.h \
322
	mono-perfcounters.h mono-perfcounters-def.h mono-ptr-array.h \
321
	mono-wsq.c mono-wsq.h monitor.h nacl-stub.c \
323
	mono-route.c mono-route.h mono-wsq.c mono-wsq.h monitor.h nacl-stub.c \
322
	normalization-tables.h number-formatter.h object-internals.h \
324
	normalization-tables.h number-formatter.h object-internals.h \
323
	opcodes.c socket-io.c socket-io.h process.c process.h \
325
	opcodes.c socket-io.c socket-io.h process.c process.h \
324
	profiler.c profiler-private.h rand.h rand.c runtime.c \
326
	profiler.c profiler-private.h rand.h rand.c runtime.c \
Lines 385-390 am__objects_19 = $(am__objects_18) \ Link Here
385
	libmonoruntimesgen_static_la-mono-endian.lo \
387
	libmonoruntimesgen_static_la-mono-endian.lo \
386
	libmonoruntimesgen_static_la-mono-mlist.lo \
388
	libmonoruntimesgen_static_la-mono-mlist.lo \
387
	libmonoruntimesgen_static_la-mono-perfcounters.lo \
389
	libmonoruntimesgen_static_la-mono-perfcounters.lo \
390
	libmonoruntimesgen_static_la-mono-route.lo \
388
	libmonoruntimesgen_static_la-mono-wsq.lo \
391
	libmonoruntimesgen_static_la-mono-wsq.lo \
389
	libmonoruntimesgen_static_la-nacl-stub.lo \
392
	libmonoruntimesgen_static_la-nacl-stub.lo \
390
	libmonoruntimesgen_static_la-opcodes.lo \
393
	libmonoruntimesgen_static_la-opcodes.lo \
Lines 472-478 am__libmonoruntimesgen_la_SOURCES_DIST = Link Here
472
	mono-debug-debugger.c mono-endian.c mono-endian.h mono-hash.h \
475
	mono-debug-debugger.c mono-endian.c mono-endian.h mono-hash.h \
473
	mono-mlist.c mono-mlist.h mono-perfcounters.c \
476
	mono-mlist.c mono-mlist.h mono-perfcounters.c \
474
	mono-perfcounters.h mono-perfcounters-def.h mono-ptr-array.h \
477
	mono-perfcounters.h mono-perfcounters-def.h mono-ptr-array.h \
475
	mono-wsq.c mono-wsq.h monitor.h nacl-stub.c \
478
	mono-route.c mono-route.h mono-wsq.c mono-wsq.h monitor.h nacl-stub.c \
476
	normalization-tables.h number-formatter.h object-internals.h \
479
	normalization-tables.h number-formatter.h object-internals.h \
477
	opcodes.c socket-io.c socket-io.h process.c process.h \
480
	opcodes.c socket-io.c socket-io.h process.c process.h \
478
	profiler.c profiler-private.h rand.h rand.c runtime.c \
481
	profiler.c profiler-private.h rand.h rand.c runtime.c \
Lines 538-543 am__objects_26 = $(am__objects_25) libmo Link Here
538
	libmonoruntimesgen_la-mono-endian.lo \
541
	libmonoruntimesgen_la-mono-endian.lo \
539
	libmonoruntimesgen_la-mono-mlist.lo \
542
	libmonoruntimesgen_la-mono-mlist.lo \
540
	libmonoruntimesgen_la-mono-perfcounters.lo \
543
	libmonoruntimesgen_la-mono-perfcounters.lo \
544
	libmonoruntimesgen_la-mono-route.lo \
541
	libmonoruntimesgen_la-mono-wsq.lo \
545
	libmonoruntimesgen_la-mono-wsq.lo \
542
	libmonoruntimesgen_la-nacl-stub.lo \
546
	libmonoruntimesgen_la-nacl-stub.lo \
543
	libmonoruntimesgen_la-opcodes.lo \
547
	libmonoruntimesgen_la-opcodes.lo \
Lines 1031-1036 common_sources = \ Link Here
1031
	mono-perfcounters.h	\
1035
	mono-perfcounters.h	\
1032
	mono-perfcounters-def.h	\
1036
	mono-perfcounters-def.h	\
1033
	mono-ptr-array.h	\
1037
	mono-ptr-array.h	\
1038
	mono-route.c		\
1039
	mono-route.h		\
1034
	mono-wsq.c		\
1040
	mono-wsq.c		\
1035
	mono-wsq.h		\
1041
	mono-wsq.h		\
1036
	monitor.h		\
1042
	monitor.h		\
Lines 1353-1358 distclean-compile: Link Here
1353
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-mono-hash.Plo@am__quote@
1359
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-mono-hash.Plo@am__quote@
1354
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-mono-mlist.Plo@am__quote@
1360
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-mono-mlist.Plo@am__quote@
1355
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-mono-perfcounters.Plo@am__quote@
1361
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-mono-perfcounters.Plo@am__quote@
1362
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-mono-route.Plo@am__quote@
1356
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-mono-wsq.Plo@am__quote@
1363
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-mono-wsq.Plo@am__quote@
1357
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-nacl-stub.Plo@am__quote@
1364
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-nacl-stub.Plo@am__quote@
1358
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-null-gc.Plo@am__quote@
1365
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_la-null-gc.Plo@am__quote@
Lines 1414-1419 distclean-compile: Link Here
1414
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-mono-hash.Plo@am__quote@
1421
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-mono-hash.Plo@am__quote@
1415
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-mono-mlist.Plo@am__quote@
1422
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-mono-mlist.Plo@am__quote@
1416
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-mono-perfcounters.Plo@am__quote@
1423
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-mono-perfcounters.Plo@am__quote@
1424
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-mono-route.Plo@am__quote@
1417
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-mono-wsq.Plo@am__quote@
1425
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-mono-wsq.Plo@am__quote@
1418
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-nacl-stub.Plo@am__quote@
1426
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-nacl-stub.Plo@am__quote@
1419
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-null-gc.Plo@am__quote@
1427
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntime_static_la-null-gc.Plo@am__quote@
Lines 1474-1479 distclean-compile: Link Here
1474
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-mono-hash.Plo@am__quote@
1482
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-mono-hash.Plo@am__quote@
1475
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-mono-mlist.Plo@am__quote@
1483
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-mono-mlist.Plo@am__quote@
1476
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-mono-perfcounters.Plo@am__quote@
1484
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-mono-perfcounters.Plo@am__quote@
1485
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-mono-route.Plo@am__quote@
1477
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-mono-wsq.Plo@am__quote@
1486
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-mono-wsq.Plo@am__quote@
1478
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-nacl-stub.Plo@am__quote@
1487
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-nacl-stub.Plo@am__quote@
1479
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-object.Plo@am__quote@
1488
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_la-object.Plo@am__quote@
Lines 1566-1571 distclean-compile: Link Here
1566
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-mono-hash.Plo@am__quote@
1575
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-mono-hash.Plo@am__quote@
1567
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-mono-mlist.Plo@am__quote@
1576
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-mono-mlist.Plo@am__quote@
1568
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-mono-perfcounters.Plo@am__quote@
1577
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-mono-perfcounters.Plo@am__quote@
1578
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-mono-route.Plo@am__quote@
1569
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-mono-wsq.Plo@am__quote@
1579
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-mono-wsq.Plo@am__quote@
1570
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-nacl-stub.Plo@am__quote@
1580
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-nacl-stub.Plo@am__quote@
1571
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-object.Plo@am__quote@
1581
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmonoruntimesgen_static_la-object.Plo@am__quote@
Lines 1874-1879 libmonoruntime_static_la-mono-perfcounte Link Here
1874
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1884
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1875
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_static_la_CFLAGS) $(CFLAGS) -c -o libmonoruntime_static_la-mono-perfcounters.lo `test -f 'mono-perfcounters.c' || echo '$(srcdir)/'`mono-perfcounters.c
1885
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_static_la_CFLAGS) $(CFLAGS) -c -o libmonoruntime_static_la-mono-perfcounters.lo `test -f 'mono-perfcounters.c' || echo '$(srcdir)/'`mono-perfcounters.c
1876
1886
1887
libmonoruntime_static_la-mono-route.lo: mono-route.c
1888
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_static_la_CFLAGS) $(CFLAGS) -MT libmonoruntime_static_la-mono-route.lo -MD -MP -MF $(DEPDIR)/libmonoruntime_static_la-mono-route.Tpo -c -o libmonoruntime_static_la-mono-route.lo `test -f 'mono-route.c' || echo '$(srcdir)/'`mono-route.c
1889
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntime_static_la-mono-route.Tpo $(DEPDIR)/libmonoruntime_static_la-mono-route.Plo
1890
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mono-route.c' object='libmonoruntime_static_la-mono-route.lo' libtool=yes @AMDEPBACKSLASH@
1891
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1892
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_static_la_CFLAGS) $(CFLAGS) -c -o libmonoruntime_static_la-mono-route.lo `test -f 'mono-route.c' || echo '$(srcdir)/'`mono-route.c
1893
1877
libmonoruntime_static_la-mono-wsq.lo: mono-wsq.c
1894
libmonoruntime_static_la-mono-wsq.lo: mono-wsq.c
1878
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_static_la_CFLAGS) $(CFLAGS) -MT libmonoruntime_static_la-mono-wsq.lo -MD -MP -MF $(DEPDIR)/libmonoruntime_static_la-mono-wsq.Tpo -c -o libmonoruntime_static_la-mono-wsq.lo `test -f 'mono-wsq.c' || echo '$(srcdir)/'`mono-wsq.c
1895
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_static_la_CFLAGS) $(CFLAGS) -MT libmonoruntime_static_la-mono-wsq.lo -MD -MP -MF $(DEPDIR)/libmonoruntime_static_la-mono-wsq.Tpo -c -o libmonoruntime_static_la-mono-wsq.lo `test -f 'mono-wsq.c' || echo '$(srcdir)/'`mono-wsq.c
1879
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntime_static_la-mono-wsq.Tpo $(DEPDIR)/libmonoruntime_static_la-mono-wsq.Plo
1896
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntime_static_la-mono-wsq.Tpo $(DEPDIR)/libmonoruntime_static_la-mono-wsq.Plo
Lines 2301-2306 libmonoruntime_la-mono-perfcounters.lo: Link Here
2301
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2318
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2302
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_la_CFLAGS) $(CFLAGS) -c -o libmonoruntime_la-mono-perfcounters.lo `test -f 'mono-perfcounters.c' || echo '$(srcdir)/'`mono-perfcounters.c
2319
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_la_CFLAGS) $(CFLAGS) -c -o libmonoruntime_la-mono-perfcounters.lo `test -f 'mono-perfcounters.c' || echo '$(srcdir)/'`mono-perfcounters.c
2303
2320
2321
libmonoruntime_la-mono-route.lo: mono-route.c
2322
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_la_CFLAGS) $(CFLAGS) -MT libmonoruntime_la-mono-route.lo -MD -MP -MF $(DEPDIR)/libmonoruntime_la-mono-route.Tpo -c -o libmonoruntime_la-mono-route.lo `test -f 'mono-route.c' || echo '$(srcdir)/'`mono-route.c
2323
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntime_la-mono-route.Tpo $(DEPDIR)/libmonoruntime_la-mono-route.Plo
2324
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mono-route.c' object='libmonoruntime_la-mono-route.lo' libtool=yes @AMDEPBACKSLASH@
2325
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2326
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_la_CFLAGS) $(CFLAGS) -c -o libmonoruntime_la-mono-route.lo `test -f 'mono-route.c' || echo '$(srcdir)/'`mono-route.c
2327
2304
libmonoruntime_la-mono-wsq.lo: mono-wsq.c
2328
libmonoruntime_la-mono-wsq.lo: mono-wsq.c
2305
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_la_CFLAGS) $(CFLAGS) -MT libmonoruntime_la-mono-wsq.lo -MD -MP -MF $(DEPDIR)/libmonoruntime_la-mono-wsq.Tpo -c -o libmonoruntime_la-mono-wsq.lo `test -f 'mono-wsq.c' || echo '$(srcdir)/'`mono-wsq.c
2329
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntime_la_CFLAGS) $(CFLAGS) -MT libmonoruntime_la-mono-wsq.lo -MD -MP -MF $(DEPDIR)/libmonoruntime_la-mono-wsq.Tpo -c -o libmonoruntime_la-mono-wsq.lo `test -f 'mono-wsq.c' || echo '$(srcdir)/'`mono-wsq.c
2306
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntime_la-mono-wsq.Tpo $(DEPDIR)/libmonoruntime_la-mono-wsq.Plo
2330
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntime_la-mono-wsq.Tpo $(DEPDIR)/libmonoruntime_la-mono-wsq.Plo
Lines 2728-2733 libmonoruntimesgen_static_la-mono-perfco Link Here
2728
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2752
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2729
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_static_la_CFLAGS) $(CFLAGS) -c -o libmonoruntimesgen_static_la-mono-perfcounters.lo `test -f 'mono-perfcounters.c' || echo '$(srcdir)/'`mono-perfcounters.c
2753
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_static_la_CFLAGS) $(CFLAGS) -c -o libmonoruntimesgen_static_la-mono-perfcounters.lo `test -f 'mono-perfcounters.c' || echo '$(srcdir)/'`mono-perfcounters.c
2730
2754
2755
libmonoruntimesgen_static_la-mono-route.lo: mono-route.c
2756
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_static_la_CFLAGS) $(CFLAGS) -MT libmonoruntimesgen_static_la-mono-route.lo -MD -MP -MF $(DEPDIR)/libmonoruntimesgen_static_la-mono-route.Tpo -c -o libmonoruntimesgen_static_la-mono-route.lo `test -f 'mono-route.c' || echo '$(srcdir)/'`mono-route.c
2757
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntimesgen_static_la-mono-route.Tpo $(DEPDIR)/libmonoruntimesgen_static_la-mono-route.Plo
2758
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mono-route.c' object='libmonoruntimesgen_static_la-mono-route.lo' libtool=yes @AMDEPBACKSLASH@
2759
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2760
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_static_la_CFLAGS) $(CFLAGS) -c -o libmonoruntimesgen_static_la-mono-route.lo `test -f 'mono-route.c' || echo '$(srcdir)/'`mono-route.c
2761
2731
libmonoruntimesgen_static_la-mono-wsq.lo: mono-wsq.c
2762
libmonoruntimesgen_static_la-mono-wsq.lo: mono-wsq.c
2732
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_static_la_CFLAGS) $(CFLAGS) -MT libmonoruntimesgen_static_la-mono-wsq.lo -MD -MP -MF $(DEPDIR)/libmonoruntimesgen_static_la-mono-wsq.Tpo -c -o libmonoruntimesgen_static_la-mono-wsq.lo `test -f 'mono-wsq.c' || echo '$(srcdir)/'`mono-wsq.c
2763
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_static_la_CFLAGS) $(CFLAGS) -MT libmonoruntimesgen_static_la-mono-wsq.lo -MD -MP -MF $(DEPDIR)/libmonoruntimesgen_static_la-mono-wsq.Tpo -c -o libmonoruntimesgen_static_la-mono-wsq.lo `test -f 'mono-wsq.c' || echo '$(srcdir)/'`mono-wsq.c
2733
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntimesgen_static_la-mono-wsq.Tpo $(DEPDIR)/libmonoruntimesgen_static_la-mono-wsq.Plo
2764
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntimesgen_static_la-mono-wsq.Tpo $(DEPDIR)/libmonoruntimesgen_static_la-mono-wsq.Plo
Lines 3372-3377 libmonoruntimesgen_la-mono-perfcounters. Link Here
3372
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3403
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3373
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_la_CFLAGS) $(CFLAGS) -c -o libmonoruntimesgen_la-mono-perfcounters.lo `test -f 'mono-perfcounters.c' || echo '$(srcdir)/'`mono-perfcounters.c
3404
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_la_CFLAGS) $(CFLAGS) -c -o libmonoruntimesgen_la-mono-perfcounters.lo `test -f 'mono-perfcounters.c' || echo '$(srcdir)/'`mono-perfcounters.c
3374
3405
3406
libmonoruntimesgen_la-mono-route.lo: mono-route.c
3407
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_la_CFLAGS) $(CFLAGS) -MT libmonoruntimesgen_la-mono-route.lo -MD -MP -MF $(DEPDIR)/libmonoruntimesgen_la-mono-route.Tpo -c -o libmonoruntimesgen_la-mono-route.lo `test -f 'mono-route.c' || echo '$(srcdir)/'`mono-route.c
3408
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntimesgen_la-mono-route.Tpo $(DEPDIR)/libmonoruntimesgen_la-mono-route.Plo
3409
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mono-route.c' object='libmonoruntimesgen_la-mono-route.lo' libtool=yes @AMDEPBACKSLASH@
3410
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
3411
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_la_CFLAGS) $(CFLAGS) -c -o libmonoruntimesgen_la-mono-route.lo `test -f 'mono-route.c' || echo '$(srcdir)/'`mono-route.c
3412
3375
libmonoruntimesgen_la-mono-wsq.lo: mono-wsq.c
3413
libmonoruntimesgen_la-mono-wsq.lo: mono-wsq.c
3376
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_la_CFLAGS) $(CFLAGS) -MT libmonoruntimesgen_la-mono-wsq.lo -MD -MP -MF $(DEPDIR)/libmonoruntimesgen_la-mono-wsq.Tpo -c -o libmonoruntimesgen_la-mono-wsq.lo `test -f 'mono-wsq.c' || echo '$(srcdir)/'`mono-wsq.c
3414
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libmonoruntimesgen_la_CFLAGS) $(CFLAGS) -MT libmonoruntimesgen_la-mono-wsq.lo -MD -MP -MF $(DEPDIR)/libmonoruntimesgen_la-mono-wsq.Tpo -c -o libmonoruntimesgen_la-mono-wsq.lo `test -f 'mono-wsq.c' || echo '$(srcdir)/'`mono-wsq.c
3377
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntimesgen_la-mono-wsq.Tpo $(DEPDIR)/libmonoruntimesgen_la-mono-wsq.Plo
3415
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmonoruntimesgen_la-mono-wsq.Tpo $(DEPDIR)/libmonoruntimesgen_la-mono-wsq.Plo
(-)mono/metadata/icall-def.h (+3 lines)
Lines 443-448 ICALL(NDNS_1, "GetHostByAddr_internal(st Link Here
443
ICALL(NDNS_2, "GetHostByName_internal(string,string&,string[]&,string[]&)", ves_icall_System_Net_Dns_GetHostByName_internal)
443
ICALL(NDNS_2, "GetHostByName_internal(string,string&,string[]&,string[]&)", ves_icall_System_Net_Dns_GetHostByName_internal)
444
ICALL(NDNS_3, "GetHostName_internal(string&)", ves_icall_System_Net_Dns_GetHostName_internal)
444
ICALL(NDNS_3, "GetHostName_internal(string&)", ves_icall_System_Net_Dns_GetHostName_internal)
445
445
446
ICALL_TYPE(MAC_IFACE_PROPS, "System.Net.NetworkInformation.MacOsIPInterfaceProperties", MAC_IFACE_PROPS_1)
447
ICALL(MAC_IFACE_PROPS_1, "ParseRouteInfo_internal", ves_icall_System_Net_NetworkInformation_MacOsIPInterfaceProperties_ParseRouteInfo_internal)
448
446
ICALL_TYPE(SOCK, "System.Net.Sockets.Socket", SOCK_1)
449
ICALL_TYPE(SOCK, "System.Net.Sockets.Socket", SOCK_1)
447
ICALL(SOCK_1, "Accept_internal(intptr,int&,bool)", ves_icall_System_Net_Sockets_Socket_Accept_internal)
450
ICALL(SOCK_1, "Accept_internal(intptr,int&,bool)", ves_icall_System_Net_Sockets_Socket_Accept_internal)
448
ICALL(SOCK_2, "Available_internal(intptr,int&)", ves_icall_System_Net_Sockets_Socket_Available_internal)
451
ICALL(SOCK_2, "Available_internal(intptr,int&)", ves_icall_System_Net_Sockets_Socket_Available_internal)
(-)mono/metadata/icall.c (+1 lines)
Lines 45-50 Link Here
45
#include <mono/metadata/exception.h>
45
#include <mono/metadata/exception.h>
46
#include <mono/metadata/file-io.h>
46
#include <mono/metadata/file-io.h>
47
#include <mono/metadata/console-io.h>
47
#include <mono/metadata/console-io.h>
48
#include <mono/metadata/mono-route.h>
48
#include <mono/metadata/socket-io.h>
49
#include <mono/metadata/socket-io.h>
49
#include <mono/metadata/mono-endian.h>
50
#include <mono/metadata/mono-endian.h>
50
#include <mono/metadata/tokentype.h>
51
#include <mono/metadata/tokentype.h>
(-)mono/metadata/mono-route.c (+116 lines)
Line 0 Link Here
1
/*
2
 * mono-route.c: Read the network routing tables using sysctl(3) calls
3
 *               Required for Unix-like systems that don't have Linux's /proc/net/route
4
 *
5
 * Author:
6
 *   Ben Woods (woodsb02@gmail.com)
7
 */
8
9
#include <sys/socket.h>
10
#include <net/if.h>
11
#include <net/if_dl.h>
12
#include <net/route.h>
13
#include <netinet/in.h>
14
#include <sys/param.h>
15
#include <sys/sysctl.h>
16
#include <stdlib.h>
17
#include <string.h>
18
#include <mono/metadata/object.h>
19
#include <mono/metadata/mono-route.h>
20
21
extern MonoBoolean ves_icall_System_Net_NetworkInformation_MacOsIPInterfaceProperties_ParseRouteInfo_internal(MonoString *iface, MonoArray **gw_addr_list)
22
{
23
	size_t needed;
24
	in_addr_t in;
25
	int mib[6];
26
	int num_gws=0, gwnum=0;
27
	unsigned int ifindex = 0;
28
	char *buf, *next, *lim, *ifacename;
29
	struct rt_msghdr *rtm;
30
31
	MonoDomain *domain = mono_domain_get ();
32
33
	ifacename = mono_string_to_utf8(iface);
34
	if ((ifindex = if_nametoindex(ifacename)) == 0)
35
		return FALSE;
36
	g_free(ifacename);
37
38
	// MIB array defining data to read from sysctl
39
	mib[0] = CTL_NET;	// Networking
40
	mib[1] = PF_ROUTE;	// Routing messages
41
	mib[2] = 0;		// Protocol number (always zero)
42
	mib[3] = AF_INET;	// Address family (IPv4)
43
	mib[4] = NET_RT_DUMP;	// Dump routing table
44
	mib[5] = 0;		// 
45
46
	// First sysctl call with oldp set to NULL to determine size of available data
47
	if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), NULL, &needed, NULL, 0) < 0)
48
		return FALSE;
49
50
	// Allocate suffcient memory for available data based on the previous sysctl call
51
	if ((buf = malloc(needed)) == NULL)
52
		return FALSE;
53
54
	// Second sysctl call to retrieve data into appropriately sized buffer
55
	if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), buf, &needed, NULL, 0) < 0)
56
		return FALSE;
57
58
	lim = buf + needed;
59
	for (next = buf; next < lim; next += rtm->rtm_msglen) {
60
		rtm = (struct rt_msghdr *)next;
61
		if (rtm->rtm_version != RTM_VERSION)
62
			continue;
63
		if (rtm->rtm_index != ifindex)
64
			continue;
65
		if((in = gateway_from_rtm(rtm)) == 0)
66
			continue;
67
		num_gws++;
68
	}
69
70
	*gw_addr_list = mono_array_new(domain, mono_get_string_class (), num_gws);
71
72
	for (next = buf; next < lim; next += rtm->rtm_msglen) {
73
		rtm = (struct rt_msghdr *)next;
74
		if (rtm->rtm_version != RTM_VERSION)
75
			continue;
76
		if (rtm->rtm_index != ifindex)
77
			continue;
78
		if((in = gateway_from_rtm(rtm)) == 0)
79
			continue;
80
81
		MonoString *addr_string;
82
		char addr [16], *ptr;
83
84
		ptr = (char *) &in;
85
		snprintf(addr, 16, "%u.%u.%u.%u",
86
			 (unsigned char) ptr [0],
87
			 (unsigned char) ptr [1],
88
			 (unsigned char) ptr [2],
89
			 (unsigned char) ptr [3]);
90
91
		addr_string = mono_string_new (domain, addr);
92
		mono_array_setref (*gw_addr_list, gwnum, addr_string);
93
		gwnum++;
94
	}
95
	free(buf);
96
	return TRUE;
97
}
98
99
in_addr_t gateway_from_rtm(struct rt_msghdr *rtm)
100
{
101
	struct sockaddr *gw;
102
	unsigned int l;
103
104
	struct sockaddr *addr = (struct sockaddr *)(rtm + 1);
105
	l = roundup(addr->sa_len, sizeof(long)); \
106
	gw = (struct sockaddr *)((char *) addr + l); \
107
108
	if (rtm->rtm_addrs & RTA_GATEWAY) {
109
		if(gw->sa_family == AF_INET) {
110
			struct sockaddr_in *sockin = (struct sockaddr_in *)gw;
111
			return(sockin->sin_addr.s_addr);
112
		}
113
	}
114
115
	return 0;
116
}
(-)mono/metadata/mono-route.h (+13 lines)
Line 0 Link Here
1
#ifndef __MONO_ROUTE_H__
2
#define __MONO_ROUTE_H__
3
4
#include <sys/socket.h>
5
#include <net/route.h>
6
#include <mono/metadata/object-internals.h>
7
8
in_addr_t gateway_from_rtm (struct rt_msghdr *rtm) MONO_INTERNAL;
9
10
/* Category icalls */
11
extern MonoBoolean ves_icall_System_Net_NetworkInformation_MacOsIPInterfaceProperties_ParseRouteInfo_internal (MonoString *iface, MonoArray **gw_addr_list) MONO_INTERNAL;
12
13
#endif /* __MONO_ROUTE_H__ */
(-)msvc/libmonoruntime.vcxproj (-1 / +3 lines)
Lines 75-80 Link Here
75
    <ClCompile Include="..\mono\metadata\mono-hash.c" />
75
    <ClCompile Include="..\mono\metadata\mono-hash.c" />
76
    <ClCompile Include="..\mono\metadata\mono-mlist.c" />
76
    <ClCompile Include="..\mono\metadata\mono-mlist.c" />
77
    <ClCompile Include="..\mono\metadata\mono-perfcounters.c" />
77
    <ClCompile Include="..\mono\metadata\mono-perfcounters.c" />
78
    <ClCompile Include="..\mono\metadata\mono-route.c" />
78
    <ClCompile Include="..\mono\metadata\mono-wsq.c" />
79
    <ClCompile Include="..\mono\metadata\mono-wsq.c" />
79
    <ClCompile Include="..\mono\metadata\nacl-stub.c" />
80
    <ClCompile Include="..\mono\metadata\nacl-stub.c" />
80
    <ClCompile Include="..\mono\metadata\null-gc.c" />
81
    <ClCompile Include="..\mono\metadata\null-gc.c" />
Lines 172-177 Link Here
172
    <ClInclude Include="..\mono\metadata\mono-perfcounters-def.h" />
173
    <ClInclude Include="..\mono\metadata\mono-perfcounters-def.h" />
173
    <ClInclude Include="..\mono\metadata\mono-perfcounters.h" />
174
    <ClInclude Include="..\mono\metadata\mono-perfcounters.h" />
174
    <ClInclude Include="..\mono\metadata\mono-ptr-array.h" />
175
    <ClInclude Include="..\mono\metadata\mono-ptr-array.h" />
176
    <ClInclude Include="..\mono\metadata\mono-route.h" />
175
    <ClInclude Include="..\mono\metadata\mono-wsq.h" />
177
    <ClInclude Include="..\mono\metadata\mono-wsq.h" />
176
    <ClInclude Include="..\mono\metadata\normalization-tables.h" />
178
    <ClInclude Include="..\mono\metadata\normalization-tables.h" />
177
    <ClInclude Include="..\mono\metadata\number-formatter.h" />
179
    <ClInclude Include="..\mono\metadata\number-formatter.h" />
Lines 466-469 Link Here
466
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
468
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
467
  <ImportGroup Label="ExtensionTargets">
469
  <ImportGroup Label="ExtensionTargets">
468
  </ImportGroup>
470
  </ImportGroup>
469
</Project>
471
</Project>

Return to bug 194660