Re: Issues with Perdition 2.1 in FreeBSD
Egoitz Aurrekoetxea <[email protected]> Mon, 23 Mar 2015 09:53:05 +0100
| Newsgroups | gmane.mail.perdition.user |
|---|---|
| Message-ID | <[email protected]> |
--===============0577091289== Content-Type: multipart/alternative; boundary="Apple-Mail=_B470BB84-2CD2-4654-B171-DC20FD277046" --Apple-Mail=_B470BB84-2CD2-4654-B171-DC20FD277046 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Good morning list! :) The patch you provided by you has done the trick=E2=80=A6=20 I hadn=E2=80=99t looked at 640 and 641 after patching = vanessa_socket_server.c=E2=80=A6. Rebuilding machines with this patch :) :) Thank you so much!!! Regards! Egoitz Aurrekoetxea Departamento de sistemas 944 209 470 Parque Tecnol=C3=B3gico. Edificio 103 48170 Zamudio (Bizkaia) [email protected] <mailto:[email protected]> www.sarenet.es <http://www.sarenet.es/> Antes de imprimir este correo electr=C3=B3nico piense si es necesario = hacerlo. > El 9/3/2015, a las 10:57, Egoitz Aurrekoetxea <[email protected]> = escribi=C3=B3: >=20 > Good morning, >=20 > Applied the following patch (your=E2=80=99s one gave me error of = malformed patch) obtained from diff-ing hg current version of = vanessa_socket_server.c and the version I=E2=80=99m running without my = patch : >=20 > <parche_vanesasocket.patch> >=20 > Although If I seen correctly (have looked slightly fast but=E2=80=A6 = well anyway) child is going to be 0 not a negative value and so=E2=80=A6 = is not going to continue in the loop=E2=80=A6. >=20 > For continuing in the loop I assume it should be :=20 >=20 > f (child < 0) { > VANESSA_LOGGER_DEBUG( > = "__vanessa_socket_server_acceptv"); > goto err; > } >=20 > if (!child) instead of < 0=E2=80=A6. >=20 > But anyway=E2=80=A6 Applied as it=E2=80=99s, I=E2=80=99ll keep you = informed, >=20 > Best regards, >=20 >=20 >=20 > Egoitz Aurrekoetxea > Departamento de sistemas > 944 209 470 > Parque Tecnol=C3=B3gico. Edificio 103 > 48170 Zamudio (Bizkaia) > [email protected] <mailto:[email protected]> > www.sarenet.es <http://www.sarenet.es/> > Antes de imprimir este correo electr=C3=B3nico piense si es necesario = hacerlo. >=20 >> El 7/3/2015, a las 12:23, Egoitz Aurrekoetxea <[email protected] = <mailto:[email protected]>> escribi=C3=B3: >>=20 >> Good morning, >>=20 >> Answering below and in black :) >>=20 >>=20 >> Egoitz Aurrekoetxea >> Departamento de sistemas >> 944 209 470 >> Parque Tecnol=C3=B3gico. Edificio 103 >> 48170 Zamudio (Bizkaia) >> [email protected] <mailto:[email protected]> >> www.sarenet.es <http://www.sarenet.es/> >> Antes de imprimir este correo electr=C3=B3nico piense si es necesario = hacerlo. >>=20 >>> El 7/3/2015, a las 6:36, Simon Horman <[email protected] = <mailto:[email protected]>> escribi=C3=B3: >>>=20 >>> On Fri, Mar 06, 2015 at 02:50:58PM +0100, Egoitz Aurrekoetxea wrote: >>>> cat /usr/include/errno.h | grep 53 >>>> #define ECONNABORTED 53 /* Software caused = connection abort */ >>>>=20 >>>> That=E2=80=99s it :) >>>=20 >>> Thanks. The reason that I ask is that the numeric value of error = numbers >>> may vary between different systems. For example on x86_64 Linux >>> ECONNABORTED is 103. >>=20 >> Yep I supposed that was the matter, I have checked this too previous = to asking in this list, to modify appropriately the code in case you = have developed this code for Glibc perhaps=E2=80=A6 >>=20 >> Should say the wrote patch has done something positive and has done = what was expected, take a look please :=20 >>=20 >> Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: Falla accept con el error >> Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: 53 >> Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: Falla accept con el error >> Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: 35 >> Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: TENEMOS UN EAGAIN >> Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_acceptv: EGOITZ STATUS -----> 0 >>=20 >> it=E2=80=99s does not die later... >>=20 >> At least seems that saying the code : "in case you have not been able = to fork (because accept has failed with a concreted errno and so you = have not forked) go to poll again the set of fds and when see some fd=20 >> status changed loop again". I=E2=80=99m not very used to work with = sockets in C but I assume perhaps the only disadvantage of doing this, = is that in case no fd changes in the set suddenly (due to no any kind of = traffic) it=20 >> will get the actual established connections stalled because it=E2=80=99= s not entering the accept and fork loop meanwhile something changes in = some fd of the set. This is not in my case a big problem, because I have = very=20 >> constant traffic 24*7. Please (for learning) correct me if I=E2=80=99m = wrong. >>=20 >>>=20 >>> I am wondering if you could try either the current hg tree >>> of vanessa socket. >>>=20 >>> http://hg.vergenet.net/vanessa/vanessa_socket/ = <http://hg.vergenet.net/vanessa/vanessa_socket/> >>>=20 >>> Or the following patch on top of 0.0.12. Unfortunately its = changelog does >>> not seem to accurately describe everything that it does. >>=20 >> Sure I will!! :), although it has to be on Monday, I=E2=80=99ll try = not to make changes on the servers during weekend, mainly when the patch = has done some positive work :) No problem with the changelog :) don=E2=80=99= t worry :) >>=20 >> I will write you at Monday evening CET timezone for telling you how = has it gone=E2=80=A6. because as said before too=E2=80=A6 it=E2=80=99s = not easy or possible (at least don=E2=80=99t know how) to reproduce the = issue and the patch=E2=80=99s behavior=E2=80=A6 >>=20 >> As always Simon, a pleasure and thank you so much :) :) >>=20 >> Regards, >>=20 >>>=20 >>> http://hg.vergenet.net/vanessa/vanessa_socket/rev/86186acdf27e = <http://hg.vergenet.net/vanessa/vanessa_socket/rev/86186acdf27e> >>>=20 >>> # HG changeset patch >>> # User Simon Horman <[email protected] <mailto:[email protected]>> >>> # Date 1305777845 -32400 >>> # Node ID 86186acdf27ef7dca5f927448c1a07126f491caa >>> # Parent f09d51ca6e578d74b99da38f0ddf563e44e32af5 >>> Use freeaddrinfo() in on success in vanessa_socket_server_bind() >>>=20 >>> This resolves a memory leak >>>=20 >>> Signed-off-by: Simon Horman <[email protected] = <mailto:[email protected]>> >>>=20 >>> --- a/libvanessa_socket/vanessa_socket_server.c Tue Oct 06 = 16:17:48 2009 +1100 >>> +++ b/libvanessa_socket/vanessa_socket_server.c Thu May 19 = 13:04:05 2011 +0900 >>> @@ -110,6 +110,7 @@ >>> goto err_close; >>> continue; >>> } >>> + freeaddrinfo(res); >>> return s; >>> } while ((res =3D res->ai_next)); >>>=20 >>> @@ -353,7 +354,7 @@ >>> const unsigned int = maximum_connections, >>> struct sockaddr *return_from,=20 >>> struct sockaddr *return_to, >>> - vanessa_socket_flag_t flag) >>> + vanessa_socket_flag_t flag, long = opt) >>> { >>> unsigned int addrlen; >>> pid_t child =3D 0; >>> @@ -370,7 +371,8 @@ >>> if(errno =3D=3D EINTR || errno =3D=3D = ECONNABORTED) { >>> continue; /* Ignore EINTR and = ECONNABORTED */ >>>=20 >>> 0K . } >>> - if (errno =3D=3D EAGAIN || errno =3D=3D = EWOULDBLOCK) >>> + if (opt & O_NONBLOCK && >>> + (errno =3D=3D EAGAIN || errno =3D=3D = EWOULDBLOCK)) >>> return -1; /* Don't log EAGAIN or = EWOULDBLOCK */ >>> VANESSA_LOGGER_DEBUG_ERRNO("accept"); >>> return(-1); >>> @@ -447,12 +449,19 @@ >>> { >>> pid_t child; >>> int g; >>> + long opt; >>> + >>> + opt =3D fcntl(listen_socket, F_GETFL, NULL); >>> + if (opt < 0) { >>> + VANESSA_LOGGER_DEBUG_ERRNO("fcntl: F_GETFL"); >>> + return -1; >>> + } >>>=20 >>> while (1) { >>> child =3D __vanessa_socket_server_accept(&g, = listen_socket, NULL, >>> = maximum_connections,=20 >>> return_from, = return_to,=20 >>> - flag); >>> + flag, opt); >>> if (child < 0) { >>> = VANESSA_LOGGER_DEBUG("__vanessa_socket_server_accept"); >>> return -1; >>> @@ -527,14 +536,14 @@ >>> listen_socketv, >>> = maximum_connections, >>> return_from, = return_to, >>> - flag); >>> + flag, opt); >>> if (child < 0) { >>> - if (errno =3D=3D EAGAIN || errno =3D=3D EWOULDBLOCK) >>> - status =3D 0; >>> - else { >>> + status =3D -1; >>> + if (errno =3D=3D EAGAIN || errno =3D=3D EWOULDBLOCK) { >>> .+ if (opt & O_NONBLOCK) >>> + status =3D 0; >>> + } else >>> = VANESSA_LOGGER_DEBUG("__vanessa_socket_server_accept"); >>> - status =3D -1; >>> - } >>> } >>>=20 >>> if (!(opt & O_NONBLOCK) && child && >>> @@ -607,6 +616,8 @@ >>> maximum_connections,=20 >>> return_from, return_to, = flag); >>> if (child < 0) { >>> + if (errno =3D=3D EAGAIN || errno =3D=3D = EWOULDBLOCK) >>> + continue; >>> VANESSA_LOGGER_DEBUG( >>> = "__vanessa_socket_server_acceptv"); >>> goto err; >>>=20 >>> 15.5K=3D0.2s >>>=20 >>> 2015-03-07 14:35:50 (15.5 KB/s) - written to stdout [2509] >>>=20 >>=20 >> ______________________________________________ >> Perdition-users mailing list >> [email protected] <mailto:[email protected]> >> http://lists.vergenet.net/listinfo/perdition-users = <http://lists.vergenet.net/listinfo/perdition-users> > ______________________________________________ > Perdition-users mailing list > [email protected] <mailto:[email protected]> > http://lists.vergenet.net/listinfo/perdition-users = <http://lists.vergenet.net/listinfo/perdition-users> --Apple-Mail=_B470BB84-2CD2-4654-B171-DC20FD277046 Content-Type: multipart/mixed; boundary="Apple-Mail=_9690214D-E3E6-461A-B255-02FF99F4C2EF" --Apple-Mail=_9690214D-E3E6-461A-B255-02FF99F4C2EF Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html = charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D"">Good morning list! :)<div class=3D""><br class=3D""></div><div = class=3D"">The patch you provided by you has done the = trick=E2=80=A6 </div></body></html>= --Apple-Mail=_9690214D-E3E6-461A-B255-02FF99F4C2EF Content-Disposition: attachment; filename=parche_vanesasocket.patch Content-Type: application/octet-stream; name="parche_vanesasocket.patch" Content-Transfer-Encoding: 7bit --- vanessa_socket_server.c 2010-06-22 09:21:37.000000000 +0200 +++ vanessa_socket_server.c 2015-03-09 09:46:09.000000000 +0100 @@ -121,6 +121,7 @@ goto err_close; continue; } + freeaddrinfo(res); return s; } while ((res = res->ai_next)); @@ -374,7 +375,7 @@ const unsigned int maximum_connections, struct sockaddr *return_from, struct sockaddr *return_to, - vanessa_socket_flag_t flag) + vanessa_socket_flag_t flag, long opt) { unsigned int addrlen; pid_t child = 0; @@ -388,11 +389,12 @@ addrlen = sizeof(from); *g = accept(listen_socket, (struct sockaddr *) &from, &addrlen); if (*g < 0) { - if(errno == EINTR || errno == ECONNABORTED) { - continue; /* Ignore EINTR and ECONNABORTED */ - } - if (errno == EAGAIN || errno == EWOULDBLOCK) + if (opt & O_NONBLOCK && + (errno == EAGAIN || errno == EWOULDBLOCK)) return -1; /* Don't log EAGAIN or EWOULDBLOCK */ + if (errno == EINTR || errno == ECONNABORTED || + errno == EAGAIN || errno == EWOULDBLOCK) + continue; /* Ignore */ VANESSA_LOGGER_DEBUG_ERRNO("accept"); return(-1); } @@ -468,12 +470,19 @@ { pid_t child; int g; + long opt; + + opt = fcntl(listen_socket, F_GETFL, NULL); + if (opt < 0) { + VANESSA_LOGGER_DEBUG_ERRNO("fcntl: F_GETFL"); + return -1; + } while (1) { child = __vanessa_socket_server_accept(&g, listen_socket, NULL, maximum_connections, return_from, return_to, - flag); + flag, opt); if (child < 0) { VANESSA_LOGGER_DEBUG("__vanessa_socket_server_accept"); return -1; @@ -548,14 +557,14 @@ listen_socketv, maximum_connections, return_from, return_to, - flag); + flag, opt); if (child < 0) { - if (errno == EAGAIN || errno == EWOULDBLOCK) - status = 0; - else { + status = -1; + if (errno == EAGAIN || errno == EWOULDBLOCK) { + if (opt & O_NONBLOCK) + status = 0; + } else VANESSA_LOGGER_DEBUG("__vanessa_socket_server_accept"); - status = -1; - } } if (!(opt & O_NONBLOCK) && child && @@ -628,6 +637,8 @@ maximum_connections, return_from, return_to, flag); if (child < 0) { + if (errno == EAGAIN || errno == EWOULDBLOCK) + continue; VANESSA_LOGGER_DEBUG( "__vanessa_socket_server_acceptv"); goto err; --Apple-Mail=_9690214D-E3E6-461A-B255-02FF99F4C2EF Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html = charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D""><div class=3D""></div><div class=3D""><br class=3D""></div><div= class=3D"">I hadn=E2=80=99t looked at 640 and 641 after patching = vanessa_socket_server.c=E2=80=A6.</div><div class=3D""><br = class=3D""></div><div class=3D"">Rebuilding machines with this patch :) = :)</div><div class=3D""><br class=3D""></div><div class=3D"">Thank you = so much!!!</div><div class=3D""><br class=3D""></div><div = class=3D"">Regards!</div><div class=3D""><div class=3D""> <style class=3D""> body { font-family:Helvetica, Arial, sans-serif; font-size:12px; color:#333; } .moz-signature { color:#333!important; } .firmasarenet { font-family:Helvetica, Arial, sans-serif; text-align:left; color:#333333; } .titulosarenet { font-family:Helvetica, Arial, sans-serif; font-weight:bold; font-size:12px; color:#333333; } .textosarenet { font-family:Helvetica, Arial, sans-serif; font-weight:bold; font-size:12px; color:#333333; } .dptosarenet { } .imgsarenet { margin:0px 0px 10px 0px } .imgsarenet img { } .lnksarenet { color:#007AC4!important; font-size:12px; line-height:1.2; text-decoration:underline; } .firmasarenet a { color:#007ac4!important } .imprimirsarenet { font-family:Helvetica, Arial, sans-serif; font-weight:normal; font-size:10px; line-height:1.2; color:#006600 } </style> <br class=3D""> <br class=3D""> <div style=3D"clear:both; text-align:left;" class=3D"firmasarenet"> <div style=3D"margin:0 0 10px 0" class=3D"imgsarenet"><img = src=3D"http://www.sarenet.es/estaticos/LogoSarenetEmails.png?13022013" = alt=3D"sarenet" class=3D""></div> <div style=3D"font-family:Helvetica, Arial, sans-serif; = font-weight:bold; font-size:14px; color:#333333" = class=3D"titulosarenet"><strong class=3D"">Egoitz = Aurrekoetxea</strong></div> <div style=3D"font-family:Helvetica, Arial, sans-serif; = font-weight:normal; font-size:12px; color:#333333" = class=3D"dptosarenet">Departamento de sistemas</div> <div style=3D"font-family:Helvetica, Arial, sans-serif; = font-weight:normal; font-size:12px; color:#333333" = class=3D"textosarenet">944 209 470<br class=3D"">Parque Tecnol=C3=B3gico. = Edificio 103<br class=3D"">48170 Zamudio (Bizkaia)</div> <div style=3D"font-family:Helvetica, Arial, sans-serif; = font-weight:normal; font-size:12px; color:#007AC4; line-height:1.2" = class=3D"lnksarenet"><a id=3D"mailto" style=3D" font-size:12px; = color:#007AC4; text-decoration:underline;" = href=3D"mailto:[email protected]" class=3D""><label id=3D"label_email" = class=3D"">[email protected]</label></a></div> <div style=3D"font-family:Helvetica, Arial, sans-serif; = font-weight:normal; font-size:12px; color:#007AC4; line-height:1.2" = class=3D"lnksarenet"><a href=3D"http://www.sarenet.es" style=3D" = font-size:12px; color:#007AC4; text-decoration:underline;" = class=3D"">www.sarenet.es</a></div> <br class=3D""> <div style=3D"font-family:Helvetica, Arial, sans-serif; = font-weight:normal; font-size:10px; color:#A0C361" = class=3D"imprimirsarenet">Antes de imprimir este correo electr=C3=B3nico = piense si es necesario hacerlo.</div> </div> </div> <br class=3D""><div><blockquote type=3D"cite" class=3D""><div = class=3D"">El 9/3/2015, a las 10:57, Egoitz Aurrekoetxea <<a = href=3D"mailto:[email protected]" class=3D"">[email protected]</a>> = escribi=C3=B3:</div><br class=3D"Apple-interchange-newline"><div = class=3D""><span style=3D"color: rgb(51, 51, 51); font-family: = Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: = none;" class=3D"">Good morning,</span><div class=3D"" style=3D"color: = rgb(51, 51, 51); font-family: Helvetica, Arial, sans-serif; font-size: = 12px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br = class=3D""></div><div class=3D"" style=3D"color: rgb(51, 51, 51); = font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Applied the = following patch (your=E2=80=99s one gave me error of malformed patch) = obtained from diff-ing hg current version of vanessa_socket_server.c and = the version I=E2=80=99m running without my patch :</div><div class=3D"" = style=3D"color: rgb(51, 51, 51); font-family: Helvetica, Arial, = sans-serif; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"><br class=3D""></div><div class=3D"" = style=3D"color: rgb(51, 51, 51); font-family: Helvetica, Arial, = sans-serif; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"></div><span = id=3D"cid:C4007A06-59B6-4191-8AAB-D78D80A530EA"><parche_vanesasocket.pa= tch></span><div class=3D"" style=3D"color: rgb(51, 51, 51); = font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"></div><div = class=3D"" style=3D"color: rgb(51, 51, 51); font-family: Helvetica, = Arial, sans-serif; font-size: 12px; font-style: normal; font-variant: = normal; font-weight: normal; letter-spacing: normal; line-height: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;"><br class=3D""></div><div class=3D""= style=3D"color: rgb(51, 51, 51); font-family: Helvetica, Arial, = sans-serif; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;">Although If I seen correctly (have = looked slightly fast but=E2=80=A6 well anyway) child is going to be 0 = not a negative value and so=E2=80=A6 is not going to continue in the = loop=E2=80=A6.</div><div class=3D"" style=3D"color: rgb(51, 51, 51); = font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br = class=3D""></div><div class=3D"" style=3D"color: rgb(51, 51, 51); = font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">For continuing = in the loop I assume it should be : </div><div class=3D"" = style=3D"color: rgb(51, 51, 51); font-family: Helvetica, Arial, = sans-serif; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"><br class=3D""></div><div class=3D"" = style=3D"color: rgb(51, 51, 51); font-family: Helvetica, Arial, = sans-serif; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"><div class=3D"">f (child < 0) = {</div><div class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> = </span>VANESSA_LOGGER_DEBUG(</div><div class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>"__vanessa_socket_server_acceptv");</div><div = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>goto err;</div><div class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>}</div><div class=3D""><br class=3D""></div><div class=3D""><b = class=3D"">if (!child)<span = class=3D"Apple-converted-space"> </span></b>instead of < = 0=E2=80=A6.</div><div class=3D""><br class=3D""></div><div class=3D"">But = anyway=E2=80=A6 Applied as it=E2=80=99s, I=E2=80=99ll keep you = informed,</div><div class=3D""><br class=3D""></div><div class=3D"">Best = regards,</div><div class=3D""><br class=3D""><br class=3D""><div = class=3D"firmasarenet" style=3D"font-family: Helvetica, Arial, = sans-serif; text-align: left; color: rgb(51, 51, 51); clear: both;"><div = class=3D"imgsarenet" style=3D"margin: 0px 0px 10px;"><img = src=3D"http://www.sarenet.es/estaticos/LogoSarenetEmails.png?13022013" = alt=3D"sarenet" class=3D""></div><div class=3D"titulosarenet" = style=3D"font-family: Helvetica, Arial, sans-serif; font-weight: bold; = font-size: 14px; color: rgb(51, 51, 51);"><strong class=3D"">Egoitz = Aurrekoetxea</strong></div><div class=3D"dptosarenet" = style=3D"font-family: Helvetica, Arial, sans-serif; font-weight: normal; = font-size: 12px; color: rgb(51, 51, 51);">Departamento de = sistemas</div><div class=3D"textosarenet" style=3D"font-family: = Helvetica, Arial, sans-serif; font-weight: normal; font-size: 12px; = color: rgb(51, 51, 51);">944 209 470<br class=3D"">Parque Tecnol=C3=B3gico= . Edificio 103<br class=3D"">48170 Zamudio (Bizkaia)</div><div = class=3D"lnksarenet" style=3D"font-size: 12px; line-height: 1.2; = text-decoration: underline; color: rgb(0, 122, 196) !important; = font-family: Helvetica, Arial, sans-serif; font-weight: normal;"><a = id=3D"mailto" href=3D"mailto:[email protected]" class=3D"" style=3D"color:= rgb(0, 122, 196) !important; font-size: 12px; text-decoration: = underline;"><label id=3D"label_email" = class=3D"">[email protected]</label></a></div><div class=3D"lnksarenet" = style=3D"font-size: 12px; line-height: 1.2; text-decoration: underline; = color: rgb(0, 122, 196) !important; font-family: Helvetica, Arial, = sans-serif; font-weight: normal;"><a href=3D"http://www.sarenet.es/" = class=3D"" style=3D"color: rgb(0, 122, 196) !important; font-size: 12px; = text-decoration: underline;">www.sarenet.es</a></div><br class=3D""><div = class=3D"imprimirsarenet" style=3D"font-family: Helvetica, Arial, = sans-serif; font-weight: normal; font-size: 10px; line-height: 1.2; = color: rgb(160, 195, 97);">Antes de imprimir este correo electr=C3=B3nico = piense si es necesario hacerlo.</div></div></div><br class=3D""><div = class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">El = 7/3/2015, a las 12:23, Egoitz Aurrekoetxea <<a = href=3D"mailto:[email protected]" class=3D"">[email protected]</a>> = escribi=C3=B3:</div><br class=3D"Apple-interchange-newline"><div = class=3D""><span class=3D"" style=3D"font-family: Helvetica; font-size: = 12px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;">Good morning,</span><div class=3D"" = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;"><br class=3D""></div><div class=3D""= style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;">Answering below and in black :)<br = class=3D""><div apple-content-edited=3D"true" class=3D""><br = class=3D""><div class=3D"firmasarenet" style=3D"font-family: Helvetica, = Arial, sans-serif; text-align: left; color: rgb(51, 51, 51); clear: = both;"><div class=3D"imgsarenet" style=3D"margin: 0px 0px 10px;"><img = src=3D"http://www.sarenet.es/estaticos/LogoSarenetEmails.png?13022013" = alt=3D"sarenet" class=3D""></div><div class=3D"titulosarenet" = style=3D"font-family: Helvetica, Arial, sans-serif; font-weight: bold; = font-size: 14px; color: rgb(51, 51, 51);"><strong class=3D"">Egoitz = Aurrekoetxea</strong></div><div class=3D"dptosarenet" = style=3D"font-family: Helvetica, Arial, sans-serif; font-weight: normal; = font-size: 12px; color: rgb(51, 51, 51);">Departamento de = sistemas</div><div class=3D"textosarenet" style=3D"font-family: = Helvetica, Arial, sans-serif; font-weight: normal; font-size: 12px; = color: rgb(51, 51, 51);">944 209 470<br class=3D"">Parque Tecnol=C3=B3gico= . Edificio 103<br class=3D"">48170 Zamudio (Bizkaia)</div><div = class=3D"lnksarenet" style=3D"font-size: 12px; line-height: 1.2; = text-decoration: underline; color: rgb(0, 122, 196) !important; = font-family: Helvetica, Arial, sans-serif; font-weight: normal;"><a = id=3D"mailto" href=3D"mailto:[email protected]" class=3D"" style=3D"color:= rgb(0, 122, 196) !important; font-size: 12px; text-decoration: = underline;"><label id=3D"label_email" = class=3D"">[email protected]</label></a></div><div class=3D"lnksarenet" = style=3D"font-size: 12px; line-height: 1.2; text-decoration: underline; = color: rgb(0, 122, 196) !important; font-family: Helvetica, Arial, = sans-serif; font-weight: normal;"><a href=3D"http://www.sarenet.es/" = class=3D"" style=3D"color: rgb(0, 122, 196) !important; font-size: 12px; = text-decoration: underline;">www.sarenet.es</a></div><br class=3D""><div = class=3D"imprimirsarenet" style=3D"font-family: Helvetica, Arial, = sans-serif; font-weight: normal; font-size: 10px; line-height: 1.2; = color: rgb(160, 195, 97);">Antes de imprimir este correo electr=C3=B3nico = piense si es necesario hacerlo.</div></div></div><br class=3D""><div = class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">El = 7/3/2015, a las 6:36, Simon Horman <<a = href=3D"mailto:[email protected]" class=3D"">[email protected]</a>> = escribi=C3=B3:</div><br class=3D"Apple-interchange-newline"><div = class=3D"">On Fri, Mar 06, 2015 at 02:50:58PM +0100, Egoitz Aurrekoetxea = wrote:<br class=3D""><blockquote type=3D"cite" class=3D"">cat = /usr/include/errno.h | grep 53<br class=3D"">#define<span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>ECONNABORTED<span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span>53<span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span>/* Software caused connection abort */<br class=3D""><br = class=3D"">That=E2=80=99s it :)<br class=3D""></blockquote><br = class=3D"">Thanks. The reason that I ask is that the numeric value of = error numbers<br class=3D"">may vary between different systems. For = example on x86_64 Linux<br class=3D"">ECONNABORTED is 103.<br = class=3D""></div></blockquote><div class=3D""><br class=3D""></div><div = class=3D"">Yep I supposed that was the matter, I have checked this too = previous to asking in this list, to modify appropriately the code in = case you have developed this code for Glibc perhaps=E2=80=A6</div><div = class=3D""><br class=3D""></div><div class=3D"">Should say the wrote = patch has done something positive and has done what was expected, take a = look please : </div><div class=3D""><br class=3D""></div><div = class=3D""><div class=3D"" style=3D"margin: 0px; font-size: 10px; = font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, = 0, 0);">Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: Falla accept con el error</div><div = class=3D"" style=3D"margin: 0px; font-size: 10px; font-family: Monaco; = color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">Mar 6 = 19:43:09 perdition.imap4[16640]: __vanessa_socket_server_accept: = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= </div><div class=3D"" style=3D"margin: 0px; font-size: 10px; = font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, = 0, 0);">Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: 53</div><div class=3D"" style=3D"margin: = 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); = background-color: rgb(0, 0, 0);">Mar 6 19:43:09 = perdition.imap4[16640]: __vanessa_socket_server_accept: = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= </div><div class=3D"" style=3D"margin: 0px; font-size: 10px; = font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, = 0, 0);">Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: Falla accept con el error</div><div = class=3D"" style=3D"margin: 0px; font-size: 10px; font-family: Monaco; = color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">Mar 6 = 19:43:09 perdition.imap4[16640]: __vanessa_socket_server_accept: = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= </div><div class=3D"" style=3D"margin: 0px; font-size: 10px; = font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, = 0, 0);">Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: 35</div><div class=3D"" style=3D"margin: = 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); = background-color: rgb(0, 0, 0);">Mar 6 19:43:09 = perdition.imap4[16640]: __vanessa_socket_server_accept: = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= </div><div class=3D"" style=3D"margin: 0px; font-size: 10px; = font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, = 0, 0);">Mar 6 19:43:09 perdition.imap4[16640]: = __vanessa_socket_server_accept: TENEMOS UN EAGAIN</div><div class=3D"" = style=3D"margin: 0px; font-size: 10px; font-family: Monaco; color: = rgb(245, 245, 245); background-color: rgb(0, 0, 0);">Mar 6 = 19:43:09 perdition.imap4[16640]: __vanessa_socket_server_acceptv: EGOITZ = STATUS -----> 0</div><div class=3D""><br class=3D""></div><div = class=3D"">it=E2=80=99s does not die later...</div><div class=3D""><br = class=3D""></div></div><div class=3D"">At least seems that saying the = code : "in case you have not been able to fork (because accept has = failed with a concreted errno and so you have not forked) go to poll = again the set of fds and when see some fd </div><div = class=3D"">status changed loop again". I=E2=80=99m not very used to work = with sockets in C but I assume perhaps the only disadvantage of doing = this, is that in case no fd changes in the set suddenly (due to no any = kind of traffic) it </div><div class=3D"">will get the actual = established connections stalled because it=E2=80=99s not entering the = accept and fork loop meanwhile something changes in some fd of the set. = This is not in my case a big problem, because I have = very </div><div class=3D"">constant traffic 24*7. Please (for = learning) correct me if I=E2=80=99m wrong.</div><br class=3D""><blockquote= type=3D"cite" class=3D""><div class=3D""><br class=3D"">I am wondering = if you could try either the current hg tree<br class=3D"">of vanessa = socket.<br class=3D""><br class=3D""><a = href=3D"http://hg.vergenet.net/vanessa/vanessa_socket/" = class=3D"">http://hg.vergenet.net/vanessa/vanessa_socket/</a><br = class=3D""><br class=3D"">Or the following patch on top of 0.0.12. = Unfortunately its changelog does<br class=3D"">not seem to = accurately describe everything that it does.<br = class=3D""></div></blockquote><div class=3D""><br class=3D""></div><div = class=3D"">Sure I will!! :), although it has to be on Monday, I=E2=80=99ll= try not to make changes on the servers during weekend, mainly when the = patch has done some positive work :) No problem with the changelog :) = don=E2=80=99t worry :)</div><div class=3D""><br class=3D""></div><div = class=3D"">I will write you at Monday evening CET timezone for telling = you how has it gone=E2=80=A6. because as said before too=E2=80=A6 it=E2=80= =99s not easy or possible (at least don=E2=80=99t know how) to reproduce = the issue and the patch=E2=80=99s behavior=E2=80=A6</div><div = class=3D""><br class=3D""></div><div class=3D"">As always Simon, a = pleasure and thank you so much :) :)</div><div class=3D""><br = class=3D""></div><div class=3D"">Regards,</div><br class=3D""><blockquote = type=3D"cite" class=3D""><div class=3D""><br class=3D""><a = href=3D"http://hg.vergenet.net/vanessa/vanessa_socket/rev/86186acdf27e" = class=3D"">http://hg.vergenet.net/vanessa/vanessa_socket/rev/86186acdf27e<= /a><br class=3D""><br class=3D""># HG changeset patch<br class=3D""># = User Simon Horman <<a href=3D"mailto:[email protected]" = class=3D"">[email protected]</a>><br class=3D""># Date 1305777845 = -32400<br class=3D""># Node ID = 86186acdf27ef7dca5f927448c1a07126f491caa<br class=3D""># Parent = f09d51ca6e578d74b99da38f0ddf563e44e32af5<br class=3D"">Use = freeaddrinfo() in on success in vanessa_socket_server_bind()<br = class=3D""><br class=3D"">This resolves a memory leak<br class=3D""><br = class=3D"">Signed-off-by: Simon Horman <<a = href=3D"mailto:[email protected]" = class=3D"">[email protected]</a>><br class=3D""><br class=3D"">--- = a/libvanessa_socket/vanessa_socket_server.c<span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>Tue Oct 06 16:17:48 2009 +1100<br = class=3D"">+++ b/libvanessa_socket/vanessa_socket_server.c<span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>Thu May = 19 13:04:05 2011 +0900<br class=3D"">@@ -110,6 +110,7 @@<br = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>goto err_close;<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>continue;<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>}<br = class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>freeaddrinfo(res);<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>return s;<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>} while = ((res =3D res->ai_next));<br class=3D""><br class=3D"">@@ -353,7 = +354,7 @@<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>  = ;const unsigned int maximum_connections,<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>  = ;struct sockaddr *return_from,<span = class=3D"Apple-converted-space"> </span><br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>  = ;struct sockaddr *return_to,<br class=3D"">-<span class=3D"Apple-tab-span"= style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>  = ;vanessa_socket_flag_t flag)<br class=3D"">+<span class=3D"Apple-tab-span"= style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>  = ;vanessa_socket_flag_t flag, long opt)<br class=3D"">{<br class=3D""><span= class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>unsigned = int addrlen;<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>pid_t child =3D 0;<br class=3D"">@@= -370,7 +371,8 @@<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>if(errno =3D=3D EINTR || errno =3D=3D= ECONNABORTED) {<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>continue; /* Ignore EINTR = and ECONNABORTED */<br class=3D""><br = class=3D""> 0K .<span = class=3D"Apple-converted-space"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>}<br = class=3D"">-<span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>if (errno =3D=3D EAGAIN || errno =3D=3D EWOULDBLOCK)<br = class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>if (opt & O_NONBLOCK &&<br class=3D"">+<span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span> (errno =3D=3D= EAGAIN || errno =3D=3D EWOULDBLOCK))<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>return = -1; /* Don't log EAGAIN or EWOULDBLOCK */<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>VANESSA_LOGGER_DEBUG_ERRNO("accept");<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>return(-1);<br class=3D"">@@ -447,12 +449,19 @@<br class=3D"">{<br = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>pid_t child;<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>int g;<br class=3D"">+<span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>long = opt;<br class=3D"">+<br class=3D"">+<span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>opt =3D fcntl(listen_socket, = F_GETFL, NULL);<br class=3D"">+<span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>if (opt < 0) {<br = class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>VANESSA_LOGGER_DEBUG_ERRNO("fcntl: F_GETFL");<br class=3D"">+<span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>return = -1;<br class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span>}<br class=3D""><br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>while (1) = {<br class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span>child =3D __vanessa_socket_server_accept(&g, = listen_socket, NULL,<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>  = ; maximum_connections,<span = class=3D"Apple-converted-space"> </span><br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>  = ; return_from, return_to,<span = class=3D"Apple-converted-space"> </span><br class=3D"">-<span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>  = ; flag);<br class=3D"">+<span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>  = ; flag, opt);<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>if (child < 0) {<br = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>VANESSA_LOGGER_DEBUG("__vanessa_socket_server_accept");<br = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>return -1;<br class=3D"">@@ -527,14 +536,14 @@<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>listen_socketv,<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>maximum_connections,<br = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>return_from, return_to,<br class=3D"">-<span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>flag);<br = class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>flag, opt);<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>if (child < 0) {<br = class=3D"">-<span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>if (errno =3D=3D EAGAIN || errno =3D=3D EWOULDBLOCK)<br = class=3D"">-<span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>status =3D 0;<br class=3D"">-<span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>else {<br class=3D"">+<span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>status =3D = -1;<br class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span>if (errno =3D=3D EAGAIN || errno =3D=3D EWOULDBLOCK) {<br = class=3D"">.+<span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>if (opt & O_NONBLOCK)<br class=3D"">+<span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>status =3D = 0;<br class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span>} else<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> = </span>VANESSA_LOGGER_DEBUG("__vanessa_socket_server_accept");<br = class=3D"">-<span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>status =3D -1;<br class=3D"">-<span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>}<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>}<br = class=3D""><br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>if (!(opt & O_NONBLOCK) = && child &&<br class=3D"">@@ -607,6 +616,8 @@<br = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>maximum_connections,<span = class=3D"Apple-converted-space"> </span><br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>return_from, return_to, flag);<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>if (child = < 0) {<br class=3D"">+<span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>if (errno =3D=3D EAGAIN || errno = =3D=3D EWOULDBLOCK)<br class=3D"">+<span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>continue;<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>VANESSA_LOGGER_DEBUG(<br class=3D""><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> = </span>"__vanessa_socket_server_acceptv");<br class=3D""><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span>goto = err;<br class=3D""><br = class=3D""> &nb= sp;  = ; &= nbsp; &nb= sp; 15.5K=3D0.2s<br class=3D""><br = class=3D"">2015-03-07 14:35:50 (15.5 KB/s) - written to stdout [2509]<br = class=3D""><br class=3D""></div></blockquote></div><br = class=3D""></div><span class=3D"" style=3D"font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; = float: none; display: inline = !important;">______________________________________________</span><br = class=3D"" style=3D"font-family: Helvetica; font-size: 12px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class=3D""= style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">Perdition-users mailing list</span><br class=3D"" = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;"><a = href=3D"mailto:[email protected]" class=3D"" = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: = 0px;">[email protected]</a><br class=3D"" style=3D"font-family:= Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"><a = href=3D"http://lists.vergenet.net/listinfo/perdition-users" class=3D"" = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: = 0px;">http://lists.vergenet.net/listinfo/perdition-users</a></div></blockq= uote></div><br class=3D""></div><span style=3D"color: rgb(51, 51, 51); = font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; line-height: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline = !important; float: none;" = class=3D"">______________________________________________</span><br = style=3D"color: rgb(51, 51, 51); font-family: Helvetica, Arial, = sans-serif; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;" class=3D""><span style=3D"color: = rgb(51, 51, 51); font-family: Helvetica, Arial, sans-serif; font-size: = 12px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; = display: inline !important; float: none;" class=3D"">Perdition-users = mailing list</span><br style=3D"color: rgb(51, 51, 51); font-family: = Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" class=3D""><a = href=3D"mailto:[email protected]" style=3D"font-family: = Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;" = class=3D"">[email protected]</a><br style=3D"color: rgb(51, = 51, 51); font-family: Helvetica, Arial, sans-serif; font-size: 12px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" = class=3D""><a href=3D"http://lists.vergenet.net/listinfo/perdition-users" = style=3D"font-family: Helvetica, Arial, sans-serif; font-size: 12px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" = class=3D"">http://lists.vergenet.net/listinfo/perdition-users</a></div></b= lockquote></div><br class=3D""></div></body></html>= --Apple-Mail=_9690214D-E3E6-461A-B255-02FF99F4C2EF-- --Apple-Mail=_B470BB84-2CD2-4654-B171-DC20FD277046-- --===============0577091289== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ______________________________________________ Perdition-users mailing list [email protected] http://lists.vergenet.net/listinfo/perdition-users --===============0577091289==--