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&nbsp;</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 &lt;<a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a>&gt; =
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">&lt;parche_vanesasocket.pa=
tch&gt;</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 :&nbsp;</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 &lt; 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">&nbsp;</span></b>instead of &lt; =
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 &lt;<a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a>&gt; =
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 &lt;<a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a>&gt; =
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 :&nbsp;</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&nbsp; 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&nbsp; 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&nbsp; 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&nbsp; 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&nbsp; 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&nbsp; 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&nbsp; 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&nbsp; 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&nbsp; 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&nbsp; 6 =
19:43:09 perdition.imap4[16640]: __vanessa_socket_server_acceptv: EGOITZ =
STATUS -----&gt; 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&nbsp;</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&nbsp;</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&nbsp;</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. =
&nbsp;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 &lt;<a href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>&gt;<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 &lt;<a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>&gt;<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-&gt;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">&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;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">&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;struct sockaddr *return_from,<span =
class=3D"Apple-converted-space">&nbsp;</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">&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;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">&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;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">&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;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 =
&nbsp;and ECONNABORTED */<br class=3D""><br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;0K .<span =
class=3D"Apple-converted-space">&nbsp;</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 &amp; O_NONBLOCK &amp;&amp;<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">&nbsp;</span>&nbsp;&nbsp;&nbsp;(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 &lt; 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(&amp;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">&nbsp;</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">&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;maximum_connections,<span =
class=3D"Apple-converted-space">&nbsp;</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">&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;return_from, return_to,<span =
class=3D"Apple-converted-space">&nbsp;</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">&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;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">&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;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 &lt; 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 &lt; 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 &amp; 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 &amp; O_NONBLOCK) =
&amp;&amp; child &amp;&amp;<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">&nbsp;</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 =
&lt; 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"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;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==--