arehbein has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/libosmo-netif/+/33195 )


Change subject: stream: Move some code in preparation of next commit
......................................................................

stream: Move some code in preparation of next commit

This avoids unnecessary static declarations.

Change-Id: Ic3f21967fe929b17327eb95739ace16c9734a151
---
M src/stream.c
1 file changed, 67 insertions(+), 57 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/95/33195/1

diff --git a/src/stream.c b/src/stream.c
index 6388928..c27e1aa 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -1373,6 +1373,62 @@
        link->flags |= OSMO_STREAM_SRV_F_RECONF;
 }

+#define OSMO_STREAM_SRV_F_FLUSH_DESTROY        (1 << 0)
+
+struct osmo_stream_srv {
+       struct osmo_stream_srv_link     *srv;
+       enum osmo_stream_mode mode;
+       union {
+               struct osmo_fd                  ofd;
+               struct osmo_io_fd               *iofd;
+       };
+       struct llist_head               tx_queue;
+       int (*closed_cb)(struct osmo_stream_srv *peer);
+       int (*read_cb)(struct osmo_stream_srv *peer);
+       int (*iofd_read_cb)(struct osmo_stream_srv *peer, struct msgb *msg);
+       void                            *data;
+       int                             flags;
+};
+
+static void stream_srv_iofd_read_cb(struct osmo_io_fd *iofd, int res, struct 
msgb *msg)
+{
+       struct osmo_stream_srv *conn = osmo_iofd_get_data(iofd);
+       LOGP(DLINP, LOGL_DEBUG, "message received (res=%d)\n", res);
+
+       if (conn->flags & OSMO_STREAM_SRV_F_FLUSH_DESTROY) {
+               LOGP(DLINP, LOGL_DEBUG, "Connection is being flushed and 
closed; ignoring received message\n");
+               msgb_free(msg);
+               return;
+       }
+
+       if (res <= 0) {
+               osmo_stream_srv_set_flush_and_destroy(conn);
+               if (osmo_iofd_txqueue_len(iofd) == 0)
+                       osmo_stream_srv_destroy(conn);
+       } else if (conn->iofd_read_cb) {
+               conn->iofd_read_cb(conn, msg); // TODO: Handle return value?
+       }
+
+       return;
+}
+
+static void stream_srv_iofd_write_cb(struct osmo_io_fd *iofd, int res, struct 
msgb *msg)
+{
+       struct osmo_stream_srv *conn = osmo_iofd_get_data(iofd);
+       LOGP(DLINP, LOGL_DEBUG, "connected write\n");
+
+       if (res == -1)
+               LOGP(DLINP, LOGL_ERROR, "error to send: %s\n", strerror(errno));
+
+       if (osmo_iofd_txqueue_len(iofd) == 0)
+               if (conn->flags & OSMO_STREAM_SRV_F_FLUSH_DESTROY)
+                       osmo_stream_srv_destroy(conn);
+}
+
+static struct osmo_io_ops srv_ioops = {
+       .read_cb = stream_srv_iofd_read_cb,
+       .write_cb = stream_srv_iofd_write_cb,
+};

 /*! \brief Set the socket type for the stream server link
  *  \param[in] link Stream Server Link to modify
@@ -1557,23 +1613,6 @@
        link->ofd.fd = -1;
 }

-#define OSMO_STREAM_SRV_F_FLUSH_DESTROY        (1 << 0)
-
-struct osmo_stream_srv {
-       struct osmo_stream_srv_link     *srv;
-       enum osmo_stream_mode mode;
-       union {
-               struct osmo_fd                  ofd;
-               struct osmo_io_fd               *iofd;
-       };
-       struct llist_head               tx_queue;
-       int (*closed_cb)(struct osmo_stream_srv *peer);
-       int (*read_cb)(struct osmo_stream_srv *peer);
-       int (*iofd_read_cb)(struct osmo_stream_srv *peer, struct msgb *msg);
-       void                            *data;
-       int                             flags;
-};
-
 static int osmo_stream_srv_read(struct osmo_stream_srv *conn)
 {
        int rc = 0;
@@ -1706,46 +1745,6 @@
        return conn;
 }

-static void stream_srv_iofd_read_cb(struct osmo_io_fd *iofd, int res, struct 
msgb *msg)
-{
-       struct osmo_stream_srv *conn = osmo_iofd_get_data(iofd);
-       LOGP(DLINP, LOGL_DEBUG, "message received (res=%d)\n", res);
-
-       if (conn->flags & OSMO_STREAM_SRV_F_FLUSH_DESTROY) {
-               LOGP(DLINP, LOGL_DEBUG, "Connection is being flushed and 
closed; ignoring received message\n");
-               msgb_free(msg);
-               return;
-       }
-
-       if (res <= 0) {
-               osmo_stream_srv_set_flush_and_destroy(conn);
-               if (osmo_iofd_txqueue_len(iofd) == 0)
-                       osmo_stream_srv_destroy(conn);
-       } else if (conn->iofd_read_cb) {
-               conn->iofd_read_cb(conn, msg); // TODO: Handle return value?
-       }
-
-       return;
-}
-
-static void stream_srv_iofd_write_cb(struct osmo_io_fd *iofd, int res, struct 
msgb *msg)
-{
-       struct osmo_stream_srv *conn = osmo_iofd_get_data(iofd);
-       LOGP(DLINP, LOGL_DEBUG, "connected write\n");
-
-       if (res == -1)
-               LOGP(DLINP, LOGL_ERROR, "error to send: %s\n", strerror(errno));
-
-       if (osmo_iofd_txqueue_len(iofd) == 0)
-               if (conn->flags & OSMO_STREAM_SRV_F_FLUSH_DESTROY)
-                       osmo_stream_srv_destroy(conn);
-}
-
-static struct osmo_io_ops srv_ioops = {
-       .read_cb = stream_srv_iofd_read_cb,
-       .write_cb = stream_srv_iofd_write_cb,
-};
-
 struct osmo_stream_srv *
 osmo_stream_srv_create_iofd(void *ctx, const char *name,
        struct osmo_stream_srv_link *link, int fd,

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

Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: Ic3f21967fe929b17327eb95739ace16c9734a151
Gerrit-Change-Number: 33195
Gerrit-PatchSet: 1
Gerrit-Owner: arehbein <arehb...@sysmocom.de>
Gerrit-MessageType: newchange

Reply via email to