Date: Fri, 4 Feb 2000 17:11:00 +0200
From: Craig Schlenter <craig@qualica.com>
Me again ...
The socket seems to have been in TCP_CLOSE. The following patch works for
me with no immediately obvious bad side effects:
Ok, can you try this patch instead? It's the fix we'd like to
use and what I intend to send off to Linus.
--- vanilla/linux/net/socket.c Wed Jan 26 09:40:08 2000
+++ linux/net/socket.c Fri Feb 4 17:14:15 2000
@@ -929,7 +929,7 @@
goto out_release;
if (upeer_sockaddr) {
- if(newsock->ops->getname(newsock, (struct sockaddr *)address, &len, 1)<0) {
+ if(newsock->ops->getname(newsock, (struct sockaddr *)address, &len, 2)<0) {
err = -ECONNABORTED;
goto out_release;
}
--- vanilla/linux/net/ipv4/af_inet.c Sat Jan 22 11:54:57 2000
+++ linux/net/ipv4/af_inet.c Fri Feb 4 13:04:06 2000
@@ -5,7 +5,7 @@
*
* PF_INET protocol family socket handler.
*
- * Version: $Id: af_inet.c,v 1.104 2000/01/18 08:24:14 davem Exp $
+ * Version: $Id: af_inet.c,v 1.106 2000/02/04 21:04:06 davem Exp $
*
* Authors: Ross Biro, <bir7@leland.Stanford.Edu>
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
@@ -675,7 +675,9 @@
sin->sin_family = AF_INET;
if (peer) {
- if (!sk->dport)
+ if (!sk->dport)
+ return -ENOTCONN;
+ if (((1<<sk->state)&(TCPF_CLOSE|TCPF_SYN_SENT)) && peer == 1)
return -ENOTCONN;
sin->sin_port = sk->dport;
sin->sin_addr.s_addr = sk->daddr;
--- vanilla/linux/net/ipv6/af_inet6.c Sat Jan 22 11:54:58 2000
+++ linux/net/ipv6/af_inet6.c Fri Feb 4 13:04:08 2000
@@ -7,7 +7,7 @@
*
* Adapted from linux/net/ipv4/af_inet.c
*
- * $Id: af_inet6.c,v 1.52 2000/01/18 08:24:21 davem Exp $
+ * $Id: af_inet6.c,v 1.53 2000/02/04 21:04:08 davem Exp $
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -340,6 +340,8 @@
sin->sin6_flowinfo = 0;
if (peer) {
if (!sk->dport)
+ return -ENOTCONN;
+ if (((1<<sk->state)&(TCPF_CLOSE|TCPF_SYN_SENT)) && peer == 1)
return -ENOTCONN;
sin->sin6_port = sk->dport;
memcpy(&sin->sin6_addr, &sk->net_pinfo.af_inet6.daddr,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Mon Feb 07 2000 - 21:00:12 EST