X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fnat%2Fgnunet-helper-nat-server.c;h=8c3df749d161314aea51e0aa0107df1bd863cdd9;hb=2105059516320800eaa8fff1196b58f29a50ba7c;hp=71057beec1d2717fff5fbce45eca54fde5026a56;hpb=b2f1bcafa32963ef1bbb9c00ea7b75c933c2016e;p=oweals%2Fgnunet.git diff --git a/src/nat/gnunet-helper-nat-server.c b/src/nat/gnunet-helper-nat-server.c index 71057beec..8c3df749d 100644 --- a/src/nat/gnunet-helper-nat-server.c +++ b/src/nat/gnunet-helper-nat-server.c @@ -1,6 +1,6 @@ /* This file is part of GNUnet. - (C) 2010 Christian Grothoff (and other contributing authors) + Copyright (C) 2010 GNUnet e.V. GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** @@ -372,6 +372,9 @@ process_icmp_response () /* different type than what we want */ return; } + /* grab source IP of 1st IP header */ + source_ip.s_addr = ip_pkt.src_ip; + /* skip 2nd IP header */ memcpy (&ip_pkt, &buf[off], sizeof (struct ip_header)); off += sizeof (struct ip_header); @@ -408,7 +411,6 @@ process_icmp_response () return; } - source_ip.s_addr = ip_pkt.src_ip; if (port == 0) fprintf (stdout, "%s\n", inet_ntop (AF_INET, &source_ip, buf, sizeof (buf))); @@ -461,7 +463,9 @@ make_udp_socket (const struct in_addr *my_ip) ret = socket (AF_INET, SOCK_DGRAM, 0); if (-1 == ret) { - fprintf (stderr, "Error opening UDP socket: %s\n", strerror (errno)); + fprintf (stderr, + "Error opening UDP socket: %s\n", + strerror (errno)); return -1; } memset (&addr, 0, sizeof (addr)); @@ -472,9 +476,13 @@ make_udp_socket (const struct in_addr *my_ip) addr.sin_addr = *my_ip; addr.sin_port = htons (NAT_TRAV_PORT); - if (0 != bind (ret, &addr, sizeof (addr))) + if (0 != bind (ret, + (struct sockaddr *) &addr, + sizeof (addr))) { - fprintf (stderr, "Error binding UDP socket to port %u: %s\n", NAT_TRAV_PORT, + fprintf (stderr, + "Error binding UDP socket to port %u: %s\n", + NAT_TRAV_PORT, strerror (errno)); (void) close (ret); return -1;