From: w00t Date: Mon, 27 Oct 2008 22:19:43 +0000 (+0000) Subject: Merge commit 'danieldg/out-12' X-Git-Tag: v2.0.23~2379 X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=50234923b292122bb19296952b947d55b1760c62;p=user%2Fhenk%2Fcode%2Finspircd.git Merge commit 'danieldg/out-12' git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10732 e03df62e-2008-0410-955e-edbf42e46eb7 --- diff --git a/.inspircd.inc b/.inspircd.inc index b0933f07d..b09ffb386 100644 --- a/.inspircd.inc +++ b/.inspircd.inc @@ -180,17 +180,14 @@ sub valdebugunattended my $pid = fork; if ($pid == 0) { POSIX::setsid(); + umask 022; + open STDERR, '>', "$valgrindlogpath/valdebug.$$" or die $!; umask 066; open STDIN, '/dev/null' or die $!; open STDOUT, '>', "$valgrindlogpath/out.$$" or die $!; - open STDERR, '>', "$valgrindlogpath/err.$$" or die $!; - umask 022; - exec "valgrind -v --tool=memcheck --leak-check=yes --num-callers=10 --time-stamp=yes --log-file=$valgrindlogpath/valdebug.\%p $binpath/$executable -nofork -debug -nolog"; + exec "valgrind -v --tool=memcheck --leak-check=yes --num-callers=10 --time-stamp=yes --log-fd=2 $binpath/$executable -nofork -debug -nolog"; exit 1; } - # Sleep 5 seconds to give valgrind time to initialize before chmodding the logdir for apache access. - sleep(5); - system("chmod 644 $valgrindlogpath/valdebug.*"); } sub screenvaldebug diff --git a/src/listensocket.cpp b/src/listensocket.cpp index 961156ae6..313396ed7 100644 --- a/src/listensocket.cpp +++ b/src/listensocket.cpp @@ -128,6 +128,10 @@ void ListenSocketBase::AcceptInternal() if (this->family == AF_INET6) { inet_ntop(AF_INET6, &((const sockaddr_in6*)client)->sin6_addr, buf, sizeof(buf)); + if (!strncmp(buf, "::ffff:", 7)) + { + memmove(buf, buf+7, sizeof(buf)-7); + } socklen_t raddrsz = sizeof(sockaddr_in6); if (getsockname(incomingSockfd, (sockaddr*) raddr, &raddrsz) == 0) inet_ntop(AF_INET6, &((const sockaddr_in6*)raddr)->sin6_addr, target, sizeof(target));