Return server port in GetPort rather than the arbitrary client port

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11576 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
danieldg 2009-09-01 15:07:19 +00:00
parent 5f4095e595
commit b796d975cf

View File

@ -37,6 +37,12 @@ void UserManager::AddUser(InspIRCd* Instance, int socket, int port, bool iscache
New->SetFd(socket);
memcpy(&New->ip, ip, sizeof(*ip));
// change the port number of their stored sockaddr to be the server port rather than the client port
if (New->ip.sa.sa_family == AF_INET6)
New->ip.in6.sin6_port = port;
else
New->ip.in4.sin_port = port;
/* Give each of the modules an attempt to hook the user for I/O */
FOREACH_MOD_I(Instance, I_OnHookUserIO, OnHookUserIO(New, targetip));