aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-nat-server-windows.c
diff options
context:
space:
mode:
authorNathan S. Evans <evans@in.tum.de>2010-08-18 14:10:54 +0000
committerNathan S. Evans <evans@in.tum.de>2010-08-18 14:10:54 +0000
commit63cef8ff47df8dd65d417d2ab84344fb678d3e6e (patch)
tree7efefe4d0c827065da2d43ad0fd9827d0f42c535 /src/transport/gnunet-nat-server-windows.c
parent9f6fdb87514a283813f240d2439851d72e24a44d (diff)
downloadgnunet-63cef8ff47df8dd65d417d2ab84344fb678d3e6e.tar.gz
gnunet-63cef8ff47df8dd65d417d2ab84344fb678d3e6e.zip
windoze sucks
Diffstat (limited to 'src/transport/gnunet-nat-server-windows.c')
-rw-r--r--src/transport/gnunet-nat-server-windows.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/transport/gnunet-nat-server-windows.c b/src/transport/gnunet-nat-server-windows.c
index 6f2529ebb..a093d341e 100644
--- a/src/transport/gnunet-nat-server-windows.c
+++ b/src/transport/gnunet-nat-server-windows.c
@@ -139,6 +139,26 @@ calc_checksum(const uint16_t *data,
139 return sum; 139 return sum;
140} 140}
141 141
142#if WIN32
143/**
144 * @param af address family
145 * @param cp the address to print
146 * @param buf where to write the address result
147 */
148static int inet_pton (int af, const char *cp, void *buf)
149{
150 int ret;
151 int ssize;
152
153 ssize = sizeof(buf);
154 ret = WSAStringToAddress (cp, af, NULL, (LPSOCKADDR)buf, &ssize);
155
156 if (retval == 0)
157 return 1;
158 else
159 return 0;
160}
161#endif
142 162
143static void 163static void
144make_echo (const struct in_addr *src_ip, 164make_echo (const struct in_addr *src_ip,
@@ -292,12 +312,19 @@ process_icmp_response ()
292 else if (have_udp) 312 else if (have_udp)
293 { 313 {
294 memcpy(&udp_pkt, &buf[off], sizeof(udp_pkt)); 314 memcpy(&udp_pkt, &buf[off], sizeof(udp_pkt));
315
316#ifdef WIN32
317 DWORD ssize = sizeof(buf);
318 WSAAddressToString((LPSOCKADDR)&sip, sizeof(sip), NULL, buf, &ssize);
319 fprintf (stdout, "%s:%d\n", buf, ntohl(udp_pkt.length));
320#else
295 fprintf (stdout, 321 fprintf (stdout,
296 "%s:%d\n", 322 "%s:%d\n",
297 inet_ntop (AF_INET, 323 inet_ntop (AF_INET,
298 &sip, 324 &sip,
299 buf, 325 buf,
300 sizeof (buf)), ntohl(udp_pkt.length)); 326 sizeof (buf)), ntohl(udp_pkt.length));
327#endif
301 } 328 }
302 else 329 else
303 { 330 {
@@ -406,6 +433,7 @@ main (int argc, char *const *argv)
406 "This program must be started with our (internal NAT) IP as the only argument.\n"); 433 "This program must be started with our (internal NAT) IP as the only argument.\n");
407 return 1; 434 return 1;
408 } 435 }
436
409 if (1 != inet_pton (AF_INET, argv[1], &external)) 437 if (1 != inet_pton (AF_INET, argv[1], &external))
410 { 438 {
411 fprintf (stderr, 439 fprintf (stderr,
@@ -413,6 +441,7 @@ main (int argc, char *const *argv)
413 strerror (errno)); 441 strerror (errno));
414 return 1; 442 return 1;
415 } 443 }
444
416 if (1 != inet_pton (AF_INET, DUMMY_IP, &dummy)) abort (); 445 if (1 != inet_pton (AF_INET, DUMMY_IP, &dummy)) abort ();
417 while (1) 446 while (1)
418 { 447 {