patch-2.4.22 linux-2.4.22/net/irda/ircomm/ircomm_param.c

Next file: linux-2.4.22/net/irda/ircomm/ircomm_tty.c
Previous file: linux-2.4.22/net/irda/crc.c
Back to the patch index
Back to the overall index

diff -urN linux-2.4.21/net/irda/ircomm/ircomm_param.c linux-2.4.22/net/irda/ircomm/ircomm_param.c
@@ -219,9 +219,16 @@
 
 	/* 
 	 * Now the line is ready for some communication. Check if we are a
-         * server, and send over some initial parameters 
+         * server, and send over some initial parameters.
+	 * Client do it in ircomm_tty_state_setup().
+	 * Note : we may get called from ircomm_tty_getvalue_confirm(),
+	 * therefore before we even have open any socket. And self->client
+	 * is initialised to TRUE only later. So, we check if the link is
+	 * really initialised. - Jean II
 	 */
-	if (!self->client && (self->settings.service_type != IRCOMM_3_WIRE_RAW))
+	if ((self->max_header_size != IRCOMM_TTY_HDR_UNINITIALISED) &&
+	    (!self->client) &&
+	    (self->settings.service_type != IRCOMM_3_WIRE_RAW))
 	{
 		/* Init connection */
 		ircomm_tty_send_initial_parameters(self);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)