From 31d46bf88bef2c75cd7e3da2eb4db74892c859ad Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 8 May 2008 00:32:10 +0000 Subject: [PATCH] Fixes to smb_netaddr_type(): 1. Wasn't detecting FTN addresses correctly (would return NET_INTERNET, always) 2. Wouldn't detect name@<ip_address> as an Internet address (NET_UNKNOWN) --- src/smblib/smbstr.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/smblib/smbstr.c b/src/smblib/smbstr.c index 202bd9c230..36d052f508 100644 --- a/src/smblib/smbstr.c +++ b/src/smblib/smbstr.c @@ -315,6 +315,8 @@ ushort SMBCALL smb_netaddr_type(const char* str) { char* p; char* tp; + char* firstdot; + char* lastdot; if((p=strchr(str,'@'))==NULL) return(NET_NONE); @@ -324,14 +326,17 @@ ushort SMBCALL smb_netaddr_type(const char* str) if(*p==0) return(NET_UNKNOWN); - if(isalpha(*p) && strchr(p,'.')==NULL) + firstdot=strchr(p,'.'); + lastdot=strrchr(p,'.'); + + if(isalpha(*p) && firstdot==NULL) return(NET_QWK); for(tp=p;*tp;tp++) { if(!isdigit(*tp) && *tp!=':' && *tp!='/' && *tp!='.') break; } - if(isdigit(*p) && *tp) + if(isdigit(*p) && *tp==0 && firstdot==lastdot) return(NET_FIDO); if(isalnum(*p)) return(NET_INTERNET); -- GitLab