diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index daa324699640ae28301de35cb01dab12df034d30..516bc70fda8645f26bd25bd8721eaf55da300ae1 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -481,9 +481,14 @@ static void sockmsgtxt(SOCKET socket, smbmsg_t* msg, char* msgtxt, char* fromadd static u_long resolve_ip(char *addr) { HOSTENT* host; + char* p; - if(isdigit(addr[0]) && strchr(addr,'.')) + for(p=addr;*p;p++) + if(*p!='.' && !isdigit(*p)) + break; + if(!(*p)) return(inet_addr(addr)); + if ((host=gethostbyname(addr))==NULL) { lprintf("0000 !ERROR resolving host name: %s",addr); return(0);