[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Trying to run a Mumble Server



Am 19.09.2013 02:06, schrieb Samuel Thibault:
Jens Mühlenhoff, le Thu 19 Sep 2013 01:55:24 +0200, a écrit :
is returning errno = 1073741865 which is ESPIPE?!

Err, no, it's 0x40000029, i.e. _HURD_ERRNO(41), i.e. EPROTOTYPE.

Yes of course, I mixed up hexadecimal and decimal, it's getting late here ;).


I think that translates to socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0)

Yes. SOCK_CLOEXEC is not currently supported, the TCP/IP stack thinks
the caller is inventing a new proto type numbered 4194305.  You would
get the same behavior on Linux when building the application against a
recent libc, but running it against an old kernel without SOCK_CLOEXEC
support.

Ok, so libc is reporting a feature the Hurd doesn't support.

I was wondering why the Qt code is using (fd != -1 || errno != EINVAL) to determine success?

Since errno is EPROTOTYPE it doesn't even try to call socket without SOCK_CLOEXEC which would be done on (errno == EINVAL).

--
Mit freundlichen Grüßen
Jens Mühlenhoff


Reply to: