> On Feb 21, 2016, at 5:24 PM, David Flater <d...@flaterco.com> wrote: > > On 02/21/2016 11:58 AM, Manfred Antar wrote: >> Same error in syslog CANT_GET_SOCKET. > > Please test this patch against the xttpd of xtide-2.15. > > DWF > > Index: xttpd.cc > =================================================================== > --- xttpd.cc (revision 6265) > +++ xttpd.cc (working copy) > @@ -258,7 +258,21 @@ > Global::xperror ("setsockopt"); > } > } > - bool bound = (bind(s,(sockaddr *)&addr,sizeof(addr))==0); > + > + // 2016-02-21 Manfred Antar reported "bind: Invalid argument" occurring on > + // FreeBSD and OS X as a regression from 2.14 when trying to bind port > + // 8080, with or without an explicit address. The only change that should > + // have been visible to bind is that the size argument got bigger. The > + // FreeBSD man page for bind states that EINVAL can be raised if "the > + // addrlen argument is not a valid length for the address family." I guess > + // this means that apps making use of sockaddr_storage are supposed to lie > + // about the length. The linux man page similarly states that EINVAL can > + // be raised if "the addrlen is wrong" but the problem does not reproduce > + // with my libc. > + const socklen_t addrlen (addr.ss_family==AF_INET6 ? sizeof(sockaddr_in6) > + : sizeof(sockaddr_in)); > + > + bool bound = (bind(s,(sockaddr *)&addr,addrlen)==0); > int yerrno = errno; > if (!bound && addr.ss_family == AF_INET6) { > > @@ -288,7 +302,7 @@ > > for (unsigned magic=4; !bound && magic>0; --magic) { > ((sockaddr_in6 *)&addr)->sin6_scope_id = magic; > - bound = (bind(s,(sockaddr *)&addr,sizeof(addr))==0); > + bound = (bind(s,(sockaddr *)&addr,addrlen)==0); > } > } > // Report the error from the first failure so that it won't be obscured by
That works here on FreeBSD-current amd64 and also on OS X El Capitan. Thanks !!!!!! _______________________________________________ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"