diff -Naur GNUnet/src/server/identity.c GNUnet-20020717/src/server/identity.c --- GNUnet/src/server/identity.c Mon Jun 17 04:06:37 2002 +++ GNUnet-20020717/src/server/identity.c Mon Jun 17 19:22:44 2002 @@ -360,6 +360,7 @@ IPString ipStringDbg; #endif int retval; + struct hostent *ip; /* for the lookup of the IP in gnunet.conf */ identity->protocol = htons(UDP_PROTOCOL_NUMBER); retval = SYSERR; @@ -371,10 +372,30 @@ else retval = getAddressFromHostname(identity); } else { - inet_aton(ipString,&sockInfo); - memcpy(&identity->senderIP,((struct in_addr*)&sockInfo), - sizeof(struct in_addr)); - retval = OK; + /* + * inet_aton(ipString,&sockInfo); + * memcpy(&identity->senderIP,((struct in_addr*)&sockInfo), + * sizeof(struct in_addr)); + * retval = OK; + */ + ip = gethostbyname (ipString); + if (ip == NULL) { + fprintf (stderr, "Couldn't resolve '%s' (h_errno=%d)", + ipString, h_errno); + retval = SYSERR; + } + else { + assert (ip->h_addrtype == AF_INET, + "getAddress: h_addrtype is not AF_INET!?"); + memcpy (&identity->senderIP, + &((struct in_addr*) ip->h_addr_list[0])->s_addr, + sizeof(struct in_addr)); +#if PRINT_HELO + print ("Resolved '%s' to '%s'\n", ipString, + inet_ntoa (identity->senderIP)); +#endif + retval = OK; + } } if (retval == OK) { if (SYSERR == checkIP(identity->senderIP))