[PATCH] ipa: Set the BSC_FD_WRITE in ipa_client_conn_open

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Holger Hans Peter Freyther holger at freyther.de
Fri Dec 12 16:45:10 UTC 2014


From: Holger Hans Peter Freyther <holger at moiji-mobile.com>

When the link is being created BSC_FD_WRITE and BSC_FD_READ are
being ored into the flag. When the socket connects the first time
the ipa_client_fd_cb function is called and the link->state is
moved from connecting to connect.

In case the connection drops and ipa_client_conn_open is called
again the BSC_FD_WRITE flag might not be set. This means that after
the socket is connected, ipa_client_fd_cb will not be called. This
means that the updown_cb will not be called until after the first
write or read on the socket. It might even lead to missing some
data.

When re-connecting set the write flag again.
---
 src/input/ipa.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/input/ipa.c b/src/input/ipa.c
index e2da6f4..1ddf802 100644
--- a/src/input/ipa.c
+++ b/src/input/ipa.c
@@ -218,6 +218,7 @@ int ipa_client_conn_open(struct ipa_client_conn *link)
 			return ret;
 	}
 	link->ofd->fd = ret;
+	link->ofd->when |= BSC_FD_WRITE;
 	if (osmo_fd_register(link->ofd) < 0) {
 		close(ret);
 		link->ofd->fd = -1;
-- 
2.1.3




More information about the OpenBSC mailing list