From d604206f4c99915072560aa418bfdc4186dcdcc9 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Mon, 24 Dec 2007 22:55:08 +0000
Subject: [PATCH] Tuck away addrlen from accept() for later use by
 gethostbyaddr()

---
 src/sbbs3/mailsrvr.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index 6f6d0b8b0f..db6e2089a8 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++;
-- 
GitLab