1 |
opfer 08/10/03 18:52:08 |
2 |
|
3 |
Added: erlang-12.2.4-inet_drv.patch |
4 |
Log: |
5 |
fix severe runtime issues with get_tcp function, taken from upstream as reported in bug 239173 by Oscar Hellström <oscar AT oscarh DOT net> |
6 |
(Portage version: 2.1.4.4) |
7 |
|
8 |
Revision Changes Path |
9 |
1.1 dev-lang/erlang/files/erlang-12.2.4-inet_drv.patch |
10 |
|
11 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-lang/erlang/files/erlang-12.2.4-inet_drv.patch?rev=1.1&view=markup |
12 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-lang/erlang/files/erlang-12.2.4-inet_drv.patch?rev=1.1&content-type=text/plain |
13 |
|
14 |
Index: erlang-12.2.4-inet_drv.patch |
15 |
=================================================================== |
16 |
--- otp_src_R12B-4.orig/erts/emulator/drivers/common/inet_drv.c 2008-09-01 05:51:18.000000000 -0700 |
17 |
+++ otp_src_R12B-4/erts/emulator/drivers/common/inet_drv.c 2008-09-30 10:38:06.000000000 -0700 |
18 |
@@ -7239,19 +7239,18 @@ |
19 |
buf, &len) == NULL) |
20 |
return ctl_error(EINVAL, rbuf, rsize); |
21 |
|
22 |
- sock_select(INETP(desc), FD_CONNECT, 1); |
23 |
code = sock_connect(desc->inet.s, |
24 |
(struct sockaddr*) &desc->inet.remote, len); |
25 |
if ((code == SOCKET_ERROR) && |
26 |
((sock_errno() == ERRNO_BLOCK) || /* Winsock2 */ |
27 |
(sock_errno() == EINPROGRESS))) { /* Unix & OSE!! */ |
28 |
desc->inet.state = TCP_STATE_CONNECTING; |
29 |
+ sock_select(INETP(desc), FD_CONNECT, 1); |
30 |
if (timeout != INET_INFINITY) |
31 |
driver_set_timer(desc->inet.port, timeout); |
32 |
enq_async(INETP(desc), tbuf, INET_REQ_CONNECT); |
33 |
} |
34 |
else if (code == 0) { /* ok we are connected */ |
35 |
- sock_select(INETP(desc), FD_CONNECT, 0); |
36 |
desc->inet.state = TCP_STATE_CONNECTED; |
37 |
if (desc->inet.active) |
38 |
sock_select(INETP(desc), (FD_READ|FD_CLOSE), 1); |
39 |
@@ -7259,7 +7258,6 @@ |
40 |
async_ok(INETP(desc)); |
41 |
} |
42 |
else { |
43 |
- sock_select(INETP(desc), FD_CONNECT, 0); |
44 |
return ctl_error(sock_errno(), rbuf, rsize); |
45 |
} |
46 |
return ctl_reply(INET_REP_OK, tbuf, 2, rbuf, rsize); |