diff --git a/src/smblib/smbdefs.h b/src/smblib/smbdefs.h index 062cf66ae4be31d64dbba1be6e4ae16cd648c197..84d57555556fec52130a0f6eb2ba98183ff3dfa2 100644 --- a/src/smblib/smbdefs.h +++ b/src/smblib/smbdefs.h @@ -189,7 +189,8 @@ #define SENDERIPADDR 0x07 /* for tracing */ #define SENDERHOSTNAME 0x08 /* for tracing */ #define SENDERPROTOCOL 0x09 /* for tracing */ -#define SENDERPORT 0x0a /* for tracing */ +#define SENDERPORT_BIN 0x0a /* deprecated */ +#define SENDERPORT 0x0b /* for tracing */ #define AUTHOR 0x10 #define AUTHORAGENT 0x11 diff --git a/src/smblib/smbstr.c b/src/smblib/smbstr.c index 091355a79982e1fcbda70d4f02c73c6fe7308fa2..a2939bb0d88086919be40e7e3c74a20487c66ea6 100644 --- a/src/smblib/smbstr.c +++ b/src/smblib/smbstr.c @@ -54,6 +54,7 @@ char* SMBCALL smb_hfieldtype(ushort type) case SENDERIPADDR: return("SenderIpAddr"); case SENDERHOSTNAME: return("SenderHostName"); case SENDERPROTOCOL: return("SenderProtocol"); + case SENDERPORT_BIN return("SenderPortBin"); case SENDERPORT: return("SenderPort"); case REPLYTO: return("Reply-To"); /* RFC-compliant */ @@ -76,6 +77,7 @@ char* SMBCALL smb_hfieldtype(ushort type) case SMB_EXPIRATION: return("Expiration"); case SMB_PRIORITY: return("Priority"); case SMB_COST: return("Cost"); + case FORWARDED: return("Forwarded"); /* All X-FTN-* are RFC-compliant */ case FIDOCTRL: return("X-FTN-Kludge"); @@ -166,11 +168,13 @@ char* SMBCALL smb_hashsource(smbmsg_t* msg, int source) /****************************************************************************/ /* Converts when_t.zone into ASCII format */ /****************************************************************************/ -char* SMBCALL smb_zonestr(short zone, char* outstr) +char* SMBCALL smb_zonestr(short zone, char* str) { char* plus; - static char str[32]; + static char buf[32]; + if(str==NULL) + str=buf; switch((ushort)zone) { case 0: return("UTC"); case AST: return("AST"); @@ -229,31 +233,27 @@ char* SMBCALL smb_zonestr(short zone, char* outstr) plus=""; sprintf(str,"UTC%s%d:%02u", plus, zone/60, zone<0 ? (-zone)%60 : zone%60); - if(outstr==NULL) - return(str); - strcpy(outstr,str); - return(outstr); + return(str); } /****************************************************************************/ /* Returns an ASCII string for FidoNet address 'addr' */ /****************************************************************************/ -char* SMBCALL smb_faddrtoa(fidoaddr_t* addr, char* outstr) +char* SMBCALL smb_faddrtoa(fidoaddr_t* addr, char* str) { - static char str[64]; + static char buf[64]; char point[25]; if(addr==NULL) return("0:0/0"); + if(str==NULL) + str=buf; sprintf(str,"%hu:%hu/%hu",addr->zone,addr->net,addr->node); if(addr->point) { sprintf(point,".%hu",addr->point); strcat(str,point); } - if(outstr==NULL) - return(str); - strcpy(outstr,str); - return(outstr); + return(str); } /****************************************************************************/