From 2e65636deaee0deea8a41b248f284ce329d6e9b0 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Fri, 15 Oct 2004 09:05:13 +0000 Subject: [PATCH] Created smb_netaddr_type() to convert an e-mail address string (e.g. "user@addr") into an SMB net_type (or NET_NONE for local e-mail). --- src/smblib/smblib.h | 1 + src/smblib/smbstr.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/smblib/smblib.h b/src/smblib/smblib.h index cb48302933..b5a66bc536 100644 --- a/src/smblib/smblib.h +++ b/src/smblib/smblib.h @@ -205,6 +205,7 @@ SMBEXPORT ushort SMBCALL smb_hfieldtypelookup(const char*); SMBEXPORT char* SMBCALL smb_dfieldtype(ushort type); SMBEXPORT char* SMBCALL smb_faddrtoa(fidoaddr_t* addr, char* outstr); SMBEXPORT char* SMBCALL smb_netaddr(net_t* net); +SMBEXPORT ushort SMBCALL smb_netaddr_type(const char* str); SMBEXPORT char* SMBCALL smb_zonestr(short zone, char* outstr); SMBEXPORT char* SMBCALL smb_hashsource(smbmsg_t* msg, int source); SMBEXPORT char* SMBCALL smb_hashsourcetype(uchar type); diff --git a/src/smblib/smbstr.c b/src/smblib/smbstr.c index eb8679c75c..1abc34d42c 100644 --- a/src/smblib/smbstr.c +++ b/src/smblib/smbstr.c @@ -261,3 +261,30 @@ char* SMBCALL smb_netaddr(net_t* net) return(smb_faddrtoa((fidoaddr_t*)net->addr,NULL)); return(net->addr); } + +/****************************************************************************/ +/* Returns net_type for passing e-mail address (i.e. "user@addr") */ +/****************************************************************************/ +ushort SMBCALL smb_netaddr_type(const char* str) +{ + char* p; + char* tp; + + if((p=strchr(str,'@'))==NULL) + return(NET_NONE); + + p++; + if(isalpha(*p) && strchr(p,'.')==NULL) + return(NET_QWK); + + for(tp=p;*tp;tp++) { + if(!isdigit(*tp) && *tp!=':' && *tp!='/' && *tp!='.') + break; + } + if(isdigit(*p) && *tp) + return(NET_FIDO); + if(isalnum(*p)) + return(NET_INTERNET); + + return(NET_UNKNOWN); +} -- GitLab