diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2024-04-16 19:11:58 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2024-04-18 10:55:13 +0200 |
commit | 05ff552f25cde5d84f428421bd4d2d64fae0bc9d (patch) | |
tree | 2106b0a857960293a5231e049eeb88b4f61c78cb /include/osmocom | |
parent | 01f33ec93fa355f9cd1016610d7fe92cde5aaa2d (diff) |
stream_{cli,srv}: Add 'res' param to read_cb2pespin/stream
Notify user about read errors, similar to what is supported in the
earlier ofd cb backend of osmo_stream_cli/srv:
https://osmocom.org/issues/6405#note-15
Related: OS#6405
Fixes: 5fec34a9f20c3b8769373d1b28ae2062e5e2bdd6
Fixes: 0245cf5e07855abea72693272c55b50b5a93aff4
Change-Id: I395c75ff1e9904757ce1d767a9ac2f779593c4c8
Diffstat (limited to 'include/osmocom')
-rw-r--r-- | include/osmocom/netif/stream.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/include/osmocom/netif/stream.h b/include/osmocom/netif/stream.h index 398b277..3c4ec7e 100644 --- a/include/osmocom/netif/stream.h +++ b/include/osmocom/netif/stream.h @@ -102,7 +102,14 @@ struct osmo_stream_srv; typedef int (*osmo_stream_srv_read_cb_t)(struct osmo_stream_srv *conn); typedef int (*osmo_stream_srv_closed_cb_t)(struct osmo_stream_srv *conn); -typedef int (*osmo_stream_srv_read_cb2_t)(struct osmo_stream_srv *conn, struct msgb *msg); + +/*! Completion call-back function when something was read from from the stream client socket. + * \param[in] conn Stream Server that got receive event. + * \param[in] res return value of the read()/recvmsg()/... call, or -errno in case of error. + * \param[in] msg message buffer containing the read data. Ownership is transferred to the + * call-back, and it must make sure to msgb_free() it eventually! */ +typedef int (*osmo_stream_srv_read_cb2_t)(struct osmo_stream_srv *conn, int res, struct msgb *msg); + typedef int (*osmo_stream_srv_segmentation_cb_t)(struct msgb *msg); struct osmo_stream_srv *osmo_stream_srv_create(void *ctx, struct osmo_stream_srv_link *link, int fd, @@ -172,7 +179,14 @@ struct osmo_stream_cli; typedef int (*osmo_stream_cli_connect_cb_t)(struct osmo_stream_cli *cli); typedef int (*osmo_stream_cli_disconnect_cb_t)(struct osmo_stream_cli *cli); typedef int (*osmo_stream_cli_read_cb_t)(struct osmo_stream_cli *cli); -typedef int (*osmo_stream_cli_read_cb2_t)(struct osmo_stream_cli *cli, struct msgb *msg); + +/*! Completion call-back function when something was read from from the stream client socket. + * \param[in] cli Stream Client that got receive event. + * \param[in] res return value of the read()/recvmsg()/... call, or -errno in case of error. + * \param[in] msg message buffer containing the read data. Ownership is transferred to the + * call-back, and it must make sure to msgb_free() it eventually! */ +typedef int (*osmo_stream_cli_read_cb2_t)(struct osmo_stream_cli *cli, int res, struct msgb *msg); + typedef int (*osmo_stream_cli_segmentation_cb_t)(struct msgb *msg); void osmo_stream_cli_set_name(struct osmo_stream_cli *cli, const char *name); |