Das hat nix mit getpeername zu tun. Denke das ist der System-Call getpeername(), der hier - warum auch immer - fehlgeschlagen ist. Eigentlich sollte dazu auch ein Fehlercode da sein, der aussagt, was genau nicht geklappt hat.
Wenn man sich die Sourcen mal ansieht, findet man diese Stelle:
Code: Alles auswählen
if (getpeername(ctrl, (struct sockaddr *)&peer, &plen) < 0) {
syslog(LOG_WARNING, "could not getpeername");
close(ctrl);
return -1;
}
Von den Fehlern, die die Manpage zu getpeername() auflistet könnte ich mir
- ENOBUFS: Insufficient resources in the system
- ENOTCONN: The socket is not connected
vorstellen. Denke, der letztere dürfte es wohl sein. Wie gesagt, leider gibt inetd an der Stelle errno oder vergleichbares nicht mit aus, drum kann man nur rätseln, was genau schiefgelaufen ist...