mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 02:59:01 -04:00
Add comments on Daniel's work
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10780 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
ab65273f9f
commit
622a6b263a
@ -134,6 +134,18 @@ void ListenSocketBase::AcceptInternal()
|
||||
else
|
||||
ServerInstance->Logs->Log("SOCKET", DEBUG, "Can't get peername: %s", strerror(errno));
|
||||
|
||||
/*
|
||||
* This case is the be all and end all patch to catch and nuke 4in6
|
||||
* instead of special-casing shit all over the place and wreaking merry
|
||||
* havoc with crap, instead, we just recreate sockaddr and strip ::ffff: prefix
|
||||
* if it's a 4in6 IP.
|
||||
*
|
||||
* This is, of course, much improved over the older way of handling this
|
||||
* (pretend it doesn't exist + hack around it -- yes, both were done!)
|
||||
*
|
||||
* Big, big thanks to danieldg for his work on this.
|
||||
* -- w00t
|
||||
*/
|
||||
static const unsigned char prefix4in6[12] = { 0,0,0,0, 0,0,0,0, 0,0,0xFF,0xFF };
|
||||
if (!memcmp(prefix4in6, &((const sockaddr_in6*)client)->sin6_addr, 12))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user