linux - connect() with unix-domain socket and full backlog -
when listening backlog full stream unix-domain sockets, connect(2)
fails on systems econnrefused. preferable return eagain.
the reasoning is highly useful able distinguish between 2 cases of dead socket (node exists in filesystem, no process listening anymore) , case of full backlog. ran problem when porting linux software has code clean dead sockets, it's security vulnerability if code can tricked deleting sockets spamming them fill backlog.
only linux returns eagain; aix, solaris , darwin follow bsd behaviour (just tested on each).
posix doesn't list eagain possible return code connect() (link), there may compliance issue here.
what's best route change in line linux? go , file bug report oracle, apple, freebsd pr, , fight out on mailing lists of each organisation. or should pester in standards body (austin group)? advisable try , change here, though advantage clear?
Comments
Post a Comment