diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 580c63efe601d9213f61a88daf477b107ffecc85..b9e893f5a2adcb2bff4708702ba5aa0daa73d4dc 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -2445,6 +2445,8 @@ bool sbbs_t::init() errormsg(WHERE,ERR_CREATE,"duplicate socket handle",client_socket); return(false); } +#else + client_socket_dup = client_socket; #endif addr_len=sizeof(addr); @@ -2739,7 +2741,7 @@ sbbs_t::~sbbs_t() // if(!cfg.node_num) // rmdir(cfg.temp_dir); - if(client_socket_dup!=INVALID_SOCKET) + if(client_socket_dup!=INVALID_SOCKET && client_socket_dup!=client_socket) closesocket(client_socket_dup); /* close duplicate handle */ if(cfg.node_num>0) @@ -3033,6 +3035,10 @@ int sbbs_t::mv(char *src, char *dest, char copy) void sbbs_t::hangup(void) { + if(client_socket_dup!=INVALID_SOCKET && client_socket_dup!=client_socket) + closesocket(client_socket_dup); + client_socket_dup=INVALID_SOCKET; + if(client_socket!=INVALID_SOCKET) { mswait(1000); /* Give socket output buffer time to flush */ riosync(0); @@ -3040,10 +3046,6 @@ void sbbs_t::hangup(void) close_socket(client_socket); client_socket=INVALID_SOCKET; } - if(client_socket_dup!=INVALID_SOCKET) { - closesocket(client_socket_dup); - client_socket_dup=INVALID_SOCKET; - } sem_post(&outbuf.sem); online=0; } diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp index ad0559cc23ec255cbf07ae97346b181c20351a02..bc277f55c41e1eac63f02030eea9c95a6a65d551 100644 --- a/src/sbbs3/xtrn.cpp +++ b/src/sbbs3/xtrn.cpp @@ -2009,11 +2009,7 @@ char* sbbs_t::cmdstr(char *instr, char *fpath, char *fspec, char *outstr) strcat(cmd,cfg.temp_dir); break; case 'H': /* Port Handle or Hardware Flow Control */ -#if defined(__unix__) - strcat(cmd,ultoa(client_socket,str,10)); -#else strcat(cmd,ultoa(client_socket_dup,str,10)); -#endif break; case 'I': /* IP address */ strcat(cmd,cid); diff --git a/src/sbbs3/xtrn_sec.cpp b/src/sbbs3/xtrn_sec.cpp index 883b42091fd696b924b2bd588780bef541cbdf0e..449feb376e5d20ab43b2aae6c7bda14ff034a620 100644 --- a/src/sbbs3/xtrn_sec.cpp +++ b/src/sbbs3/xtrn_sec.cpp @@ -411,15 +411,7 @@ void sbbs_t::xtrndat(char *name, char *dropdir, uchar type, ulong tleft ,cfg.temp_dir ,cfg.sys_id ,cfg.node_misc - #if defined(__OS2__) - ,rio_handle - #elif defined(_WIN32) ,misc&IO_INTS ? INVALID_SOCKET : client_socket_dup - #elif defined(__unix__) - ,misc&IO_INTS ? INVALID_SOCKET : client_socket - #else - ,-1 - #endif ); lfexpand(str,misc); write(file,str,strlen(str));