]>
Commit | Line | Data |
---|---|---|
0dfe343b JB |
1 | --- apr-httpd-2.0.49/network_io/unix/sockets.c.orig 2004-02-13 10:33:51.000000000 +0100 |
2 | +++ apr-httpd-2.0.49/network_io/unix/sockets.c 2004-04-18 22:49:53.089901496 +0200 | |
3 | @@ -372,7 +372,36 @@ | |
4 | set_socket_vars(*sock, APR_INET, SOCK_STREAM, 0); | |
5 | (*sock)->timeout = -1; | |
6 | } | |
7 | - (*sock)->local_port_unknown = (*sock)->local_interface_unknown = 1; | |
8 | +/* (*sock)->local_port_unknown = (*sock)->local_interface_unknown = 1; */ | |
9 | + if (1) | |
10 | + { | |
11 | + /* fixup socket's peer information. | |
12 | + we need it for the muxmpm. enrico weigelt, metux ITS | |
13 | + <weigelt@metux.de> | |
14 | + */ | |
15 | + /* XXX next line looks bogus w.r.t. AF_INET6 support */ | |
16 | + | |
17 | + /* adjust remote address */ | |
18 | + (*sock)->remote_addr->salen = sizeof((*sock)->remote_addr->sa); | |
19 | + getpeername( | |
20 | + *thesock, | |
21 | + (struct sockaddr*)&((*sock)->remote_addr->sa), | |
22 | + &((*sock)->remote_addr->salen) | |
23 | + ); | |
24 | + (*sock)->remote_addr->port = ntohs((*sock)->remote_addr->sa.sin.sin_port); | |
25 | + | |
26 | + /* XXX assumes sin_port and sin6_port at same offset */ | |
27 | + | |
28 | + /* adjust local address */ | |
29 | + getsockname( | |
30 | + *thesock, | |
31 | + (struct sockaddr*)&((*sock)->local_addr->sa), | |
32 | + &((*sock)->local_addr->salen) | |
33 | + ); | |
34 | + (*sock)->local_addr->port = ntohs((*sock)->local_addr->sa.sin.sin_port); | |
35 | + (*sock)->local_port_unknown = (*sock)->local_interface_unknown = 0; | |
36 | + } | |
37 | + | |
38 | (*sock)->remote_addr_unknown = 1; | |
39 | (*sock)->socketdes = *thesock; | |
40 | return APR_SUCCESS; |