Re: Issues with Perdition 2.1 in FreeBSD
Egoitz Aurrekoetxea <[email protected]> Mon, 9 Mar 2015 10:57:28 +0100
| Newsgroups | gmane.mail.perdition.user |
|---|---|
| Message-ID | <[email protected]> |
--===============0571319006==
Content-Type: multipart/alternative; boundary="Apple-Mail=_56C06170-450F-4D0D-8DEB-A69E2F37DED1"
--Apple-Mail=_56C06170-450F-4D0D-8DEB-A69E2F37DED1
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8
Good morning,
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 :
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.
For continuing in the loop I assume it should be :=20
f (child < 0) {
VANESSA_LOGGER_DEBUG(
=
"__vanessa_socket_server_acceptv");
goto err;
}
if (!child) instead of < 0=E2=80=A6.
But anyway=E2=80=A6 Applied as it=E2=80=99s, I=E2=80=99ll keep you =
informed,
Best 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 7/3/2015, a las 12:23, Egoitz Aurrekoetxea <[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=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=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]>
>> # 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]>
>>=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>
--Apple-Mail=_56C06170-450F-4D0D-8DEB-A69E2F37DED1
Content-Type: multipart/mixed;
boundary="Apple-Mail=_D2770B8A-CC2D-41D8-90DA-A59A712CC94A"
--Apple-Mail=_D2770B8A-CC2D-41D8-90DA-A59A712CC94A
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,<div class=3D""><br class=3D""></div><div =
class=3D"">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""><br class=3D""></div><div =
class=3D""></div></body></html>=
--Apple-Mail=_D2770B8A-CC2D-41D8-90DA-A59A712CC94A
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=_D2770B8A-CC2D-41D8-90DA-A59A712CC94A
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"">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""><br class=3D""></div><div class=3D"">For continuing in the =
loop I assume it should be : </div><div class=3D""><br =
class=3D""></div><div class=3D""><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) </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"">
<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 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 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;" class=3D"">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"clear: both; text-align: left;"><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-family: Helvetica, Arial, sans-serif; =
font-weight: normal; font-size: 12px; color: rgb(0, 122, 196); =
line-height: 1.2;"><a id=3D"mailto" href=3D"mailto:[email protected]" =
class=3D"" style=3D"font-size: 12px; color: rgb(0, 122, 196); =
text-decoration: underline;"><label id=3D"label_email" =
class=3D"">[email protected]</label></a></div><div class=3D"lnksarenet" =
style=3D"font-family: Helvetica, Arial, sans-serif; font-weight: normal; =
font-size: 12px; color: rgb(0, 122, 196); line-height: 1.2;"><a =
href=3D"http://www.sarenet.es/" class=3D"" style=3D"font-size: 12px; =
color: rgb(0, 122, 196); 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; 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 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;" =
class=3D"">______________________________________________</span><br =
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;" class=3D""><span =
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;" class=3D"">Perdition-users mailing list</span><br =
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;" class=3D""><a =
href=3D"mailto:[email protected]" 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;" =
class=3D"">[email protected]</a><br 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;" class=3D""><a =
href=3D"http://lists.vergenet.net/listinfo/perdition-users" =
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;" =
class=3D"">http://lists.vergenet.net/listinfo/perdition-users</a></div></b=
lockquote></div><br class=3D""></div></body></html>=
--Apple-Mail=_D2770B8A-CC2D-41D8-90DA-A59A712CC94A--
--Apple-Mail=_56C06170-450F-4D0D-8DEB-A69E2F37DED1--
--===============0571319006==
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
--===============0571319006==--