From bba77edecd025ec1191538228d6987d5b9773218 Mon Sep 17 00:00:00 2001 From: Alexey Khromov Date: Tue, 25 Jun 2024 23:42:52 +0300 Subject: [PATCH] mFix ipv6 --- source/bforce/sess_answ.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source/bforce/sess_answ.c b/source/bforce/sess_answ.c index f6cb2d5..4d24efe 100644 --- a/source/bforce/sess_answ.c +++ b/source/bforce/sess_answ.c @@ -22,7 +22,12 @@ int answ_system(e_session type, char *connstr, int inetd) { TIO oldtio; - struct sockaddr_storage client; + union { + struct sockaddr a; + struct sockaddr_in in; + struct sockaddr_in6 in6; + } client; + //struct sockaddr_storage client; int clientlen = sizeof(client); char clienthost[NI_MAXHOST]; char clientport[NI_MAXSERV]; @@ -79,7 +84,9 @@ int answ_system(e_session type, char *connstr, int inetd) state.connstr = (char*)xstrcpy(connstr); else { - clientres = getnameinfo( (struct sockaddr*)&client, clientlen, + if(getpeername(0, &client.a, &clientlen)) + log("sess_answ: can't detrmine socket client"); + clientres = getnameinfo( &client.a, clientlen, clienthost, sizeof(clienthost), clientport, sizeof(clientport), NI_NUMERICHOST | NI_NUMERICSERV); if ( clientres == 0 )