diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 6f6d0b8b0fbbb7d3e8c07dc61af75ffcd28ccceb..db6e2089a808073e3f20716a0e3ffe386038cf2e 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -108,6 +108,7 @@ struct mailproc { typedef struct { SOCKET socket; SOCKADDR_IN client_addr; + socklen_t client_addr_len; } smtp_t,pop3_t; static int lprintf(int level, char *fmt, ...) @@ -709,7 +710,7 @@ static void pop3_thread(void* arg) host=NULL; else host=gethostbyaddr((char *)&pop3.client_addr.sin_addr - ,sizeof(pop3.client_addr.sin_addr),AF_INET); + ,pop3.client_addr_len,AF_INET); if(host!=NULL && host->h_name!=NULL) SAFECOPY(host_name,host->h_name); @@ -1984,7 +1985,7 @@ static void smtp_thread(void* arg) host=NULL; else host=gethostbyaddr ((char *)&smtp.client_addr.sin_addr - ,sizeof(smtp.client_addr.sin_addr),AF_INET); + ,smtp.client_addr_len,AF_INET); if(host!=NULL && host->h_name!=NULL) SAFECOPY(host_name,host->h_name); @@ -4494,6 +4495,7 @@ void DLLCALL mail_server(void* arg) smtp->socket=client_socket; smtp->client_addr=client_addr; + smtp->client_addr_len=client_addr_len; _beginthread (smtp_thread, 0, smtp); served++; } @@ -4562,6 +4564,7 @@ void DLLCALL mail_server(void* arg) pop3->socket=client_socket; pop3->client_addr=client_addr; + pop3->client_addr_len=client_addr_len; _beginthread (pop3_thread, 0, pop3); served++;