patch-2.1.68 linux/net/rose/af_rose.c

Next file: linux/net/rose/rose_dev.c
Previous file: linux/net/protocols.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.67/linux/net/rose/af_rose.c linux/net/rose/af_rose.c
@@ -548,6 +548,8 @@
 
 	sock_init_data(sock, sk);
 	
+	skb_queue_head_init(&rose->ack_queue);
+
 	sock->ops    = &rose_proto_ops;
 	sk->protocol = protocol;
 	sk->mtu      = ROSE_MTU;	/* 253 */
@@ -555,8 +557,6 @@
 	init_timer(&rose->timer);
 	init_timer(&rose->idletimer);
 
-	skb_queue_head_init(&rose->frag_queue);
-
 	rose->t1   = sysctl_rose_call_request_timeout;
 	rose->t2   = sysctl_rose_reset_request_timeout;
 	rose->t3   = sysctl_rose_clear_request_timeout;
@@ -583,6 +583,8 @@
 
 	sock_init_data(NULL, sk);
 
+	skb_queue_head_init(&rose->ack_queue);
+
 	sk->type     = osk->type;
 	sk->socket   = osk->socket;
 	sk->priority = osk->priority;
@@ -598,8 +600,6 @@
 	init_timer(&rose->timer);
 	init_timer(&rose->idletimer);
 
-	skb_queue_head_init(&rose->frag_queue);
-
 	rose->t1      = osk->protinfo.rose->t1;
 	rose->t2      = osk->protinfo.rose->t2;
 	rose->t3      = osk->protinfo.rose->t3;
@@ -1068,7 +1068,9 @@
 		return -ENOTCONN;
 	}
 
-	rose_output(sk, skb);	/* Shove it onto the queue */
+	skb_queue_tail(&sk->write_queue, skb);	/* Shove it onto the queue */
+
+	rose_kick(sk);
 
 	return len;
 }
@@ -1210,7 +1212,7 @@
 			return 0;
 		}
 
-		case SIOCRSL2CALL:
+		case SIOCRSSL2CALL:
 			if (!suser()) return -EPERM;
 			if (ax25cmp(&rose_callsign, &null_ax25_address) != 0)
 				ax25_listen_release(&rose_callsign, NULL);
@@ -1218,6 +1220,11 @@
 				return -EFAULT;
 			if (ax25cmp(&rose_callsign, &null_ax25_address) != 0)
 				ax25_listen_register(&rose_callsign, NULL);
+			return 0;
+
+		case SIOCRSGL2CALL:
+			if (copy_to_user((void *)arg, &rose_callsign, sizeof(ax25_address)))
+				return -EFAULT;
 			return 0;
 
 		case SIOCRSACCEPT:

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov