diff options
| author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2008-07-22 13:54:29 +0000 |
|---|---|---|
| committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2008-07-22 13:54:29 +0000 |
| commit | af60f4b1d4d38fb12b2be5600c128c87fe7b4945 (patch) | |
| tree | 36787d7fbe59b3ed8f28dd88926da418c9c4d641 | |
| parent | 0b91efcd6abf8375d4f9e6ead6621b468f3c6fc1 (diff) | |
2008-07-22 Samuel Thibault <samuel.thibault@ens-lyon.org>
* socket.c (S_socket_send): Release a reader reference instead of a
writer reference when the destination is given.
| -rw-r--r-- | pflocal/ChangeLog | 2 | ||||
| -rw-r--r-- | pflocal/socket.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/pflocal/ChangeLog b/pflocal/ChangeLog index 6c3b1d14..696b9adb 100644 --- a/pflocal/ChangeLog +++ b/pflocal/ChangeLog @@ -3,6 +3,8 @@ * pf.c (S_socket_fabricate_address): Drop one reference from addr since we only take the send right. * socket.c (S_socket_name): Likewise. + (S_socket_send): Release a reader reference instead of a writer + reference when the destination is given. 2007-11-13 Thomas Schwinge <tschwinge@gnu.org> diff --git a/pflocal/socket.c b/pflocal/socket.c index a2cd242b..06777cab 100644 --- a/pflocal/socket.c +++ b/pflocal/socket.c @@ -323,7 +323,10 @@ S_socket_send (struct sock_user *user, struct addr *dest_addr, int flags, source_addr, data, data_len, control, control_len, ports, num_ports, amount); - pipe_release_writer (pipe); + if (dest_sock) + pipe_release_reader (pipe); + else + pipe_release_writer (pipe); } if (err) |
