When checking if a socket we got from the parent is suitable for a listener,
we just checked that the path matched sockname.tmp, however this is
unsuitable for abns sockets, where we don't have to create a temporary
file and rename it later.
To detect that, check that the first character of the sun_path is 0 for
both, and if so, that &sun_path[1] is the same too.
This should be backported to 1.8.
after_sockname++;
if (!strcmp(after_sockname, ".tmp"))
break;
- }
+ /* abns sockets sun_path starts with a \0 */
+ } else if (un1->sun_path[0] == 0
+ && un2->sun_path[0] == 0
+ && !memcmp(&un1->sun_path[1], &un2->sun_path[1],
+ sizeof(un1->sun_path) - 1))
+ break;
}
xfer_sock = xfer_sock->next;
}