diff --git a/xtrn/sbl/sbbslist.c b/xtrn/sbl/sbbslist.c index 7c2c31b3feaef32b4727017a8dd3e70cf1ff2f35..3265cde1f9e2a18449c4018db0d5a91298d70cff 100644 --- a/xtrn/sbl/sbbslist.c +++ b/xtrn/sbl/sbbslist.c @@ -209,6 +209,7 @@ if(bbs.verified && bbs.userverified[0]) ,timestr(&bbs.verified),bbs.userverified); } +#if 0 /* old way */ u_long resolve_ip(char *addr) { HOSTENT* host; @@ -221,6 +222,25 @@ u_long resolve_ip(char *addr) } return(*((ulong*)host->h_addr_list[0])); } +#else +u_long resolve_ip(char *addr) +{ + HOSTENT* host; + char* p; + + if(*addr==0) + return(INADDR_NONE); + + for(p=addr;*p;p++) + if(*p!='.' && !isdigit(*p)) + break; + if(!(*p)) + return(inet_addr(addr)); + if((host=gethostbyname(addr))==NULL) + return(INADDR_NONE); + return(*((ulong*)host->h_addr_list[0])); +} +#endif int telnet_negotiate(SOCKET sock, uchar* buf, int rd, int max_rd) { @@ -428,7 +448,7 @@ int main(int argc, char **argv) ulong total_systems; ulong total_attempts=0; ulong total_verified=0; - FILE *in,*shrt,*lng,*html; + FILE *in,*shrt,*lng,*html,*mail; FILE* ibbs; ulong ip_list[1000]; ulong ip_total=0; @@ -479,6 +499,10 @@ int main(int argc, char **argv) printf("error opening/creating sbbsimsg.lst\n"); return(1); } + if((mail=fopen("sysop.lst","w"))==NULL) { + printf("error opening/creating sysop.lst\n"); + return(1); } + fprintf(shrt,"Synchronet BBS List exported from Vertrauen on %s\r\n" "=======================================================" "\r\n\r\n" @@ -610,7 +634,9 @@ int main(int argc, char **argv) ip_addr=resolve_ip(telnet_addr); printf("\n"); - if(i && ip_addr!=0) { + if(i) { + if(ip_addr==0 || ip_addr==INADDR_NONE) + continue; /* bad hostname/IP, ignore */ for(ip=0;ip<ip_total;ip++) if(ip_addr==ip_list[ip]) break; @@ -663,7 +689,7 @@ int main(int argc, char **argv) ,total_attempts,total_systems,telnet_addr,telnet_port); // ip_addr=resolve_ip(telnet_addr); /* already done above */ - if(!ip_addr) + if(!ip_addr || ip_addr==INADDR_NONE) strcpy(verify_result,"bad hostname"); else { @@ -820,6 +846,7 @@ int main(int argc, char **argv) fprintf(html,"Online since: %s<BR>\n",unixtodstr(bbs.birth,tmp)); if(bbs.sysop_email[0]) { + fprintf(mail,"%s\n",bbs.sysop_email); sprintf(sysop_email,"<A HREF=mailto:%s>%s</A>",bbs.sysop_email,bbs.sysop[0]); sysop=sysop_email; } else