From 4f9cc281d5f12ff1fdebc733b641c5e25cb460f9 Mon Sep 17 00:00:00 2001 From: attilamolnar Date: Wed, 3 Oct 2012 19:53:46 +0200 Subject: Fix (d)host starting with ':' for some IPv6 clients --- src/users.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/users.cpp b/src/users.cpp index 29c670a66..eeb80ccc9 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -230,12 +230,18 @@ LocalUser::LocalUser(int myfd, irc::sockets::sockaddrs* client, irc::sockets::so /* * Initialize host and dhost here to the user's IP. * It is important to do this before calling SetClientIP() - * as that can pass execution to modules that expect these + * as that passes execution to modules that expect these * fields to be valid. + * + * We cannot call GetIPString() now as that will access + * client_sa, and that's only initialized after the first + * SetClientIP() call. */ int port; irc::sockets::satoap(*client, host, port); + if (host[0] == ':') + host.insert(0, 1, '0'); dhost = host; SetClientIP(*client); } -- cgit v1.2.3