laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/libosmo-netif/+/33326 )

Change subject: stream: Setup ofd in osmo_stream_cli_open
......................................................................

stream: Setup ofd in osmo_stream_cli_open

Don't reset the osmo_fd data in osmo_stream_cli_set_read_cb().
osmo_ss7_asp_restart() in libosmo-sccp calls
osmo_stream_cli_set_read_cb() which causes the fd to be set to -1.
osmo_stream_cli_open() which is called after that then doesn't close the
old fd and opening the new one fails.

osmo_fd priv_nr, callback and data are never modified in osmo_stream_cli
so simply use these values in osmo_stream_cli_open()

Change-Id: Id9b4db06d5ea1f29cbd1817cab3c71765ab30a53
---
M src/stream.c
1 file changed, 20 insertions(+), 6 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved




diff --git a/src/stream.c b/src/stream.c
index d52b7a0..b6ef92f 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -859,10 +859,6 @@
 {
        OSMO_ASSERT(cli->mode != OSMO_STREAM_MODE_OSMO_IO);
        cli->mode = OSMO_STREAM_MODE_OSMO_FD;
-       cli->ofd.fd = -1;
-       cli->ofd.priv_nr = 0;
-       cli->ofd.cb = osmo_stream_cli_fd_cb;
-       cli->ofd.data = cli;
        cli->read_cb = read_cb;
 }

@@ -926,7 +922,7 @@
                        osmo_stream_cli_reconnect(cli);
                return ret;
        }
-       osmo_fd_setup(&cli->ofd, ret, OSMO_FD_READ | OSMO_FD_WRITE, 
cli->ofd.cb, cli->ofd.data, cli->ofd.priv_nr);
+       osmo_fd_setup(&cli->ofd, ret, OSMO_FD_READ | OSMO_FD_WRITE, 
osmo_stream_cli_fd_cb, cli, 0);

        if (cli->flags & OSMO_STREAM_CLI_F_NODELAY) {
                ret = setsockopt_nodelay(cli->ofd.fd, cli->proto, 1);
@@ -1019,7 +1015,7 @@

        switch (cli->mode) {
        case OSMO_STREAM_MODE_OSMO_FD:
-               osmo_fd_setup(&cli->ofd, fd, OSMO_FD_READ | OSMO_FD_WRITE, 
cli->ofd.cb, cli->ofd.data, cli->ofd.priv_nr);
+               osmo_fd_setup(&cli->ofd, fd, OSMO_FD_READ | OSMO_FD_WRITE, 
osmo_stream_cli_fd_cb, cli, 0);
                if (osmo_fd_register(&cli->ofd) < 0)
                        goto error_close_socket;
                break;

--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/33326
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: Id9b4db06d5ea1f29cbd1817cab3c71765ab30a53
Gerrit-Change-Number: 33326
Gerrit-PatchSet: 1
Gerrit-Owner: daniel <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-MessageType: merged

Reply via email to