mirror of https://gerrit.osmocom.org/libosmocore
osmo_io: Log error message in case call-backs incompatible with mode
Change-Id: I50ba6a76c0144f249d67488874a6c4edf01ec6f2
This commit is contained in:
parent
04e6f6e3da
commit
09ab041b42
|
@ -36,6 +36,10 @@ extern const struct value_string osmo_io_backend_names[];
|
|||
static inline const char *osmo_io_backend_name(enum osmo_io_backend val)
|
||||
{ return get_value_string(osmo_io_backend_names, val); }
|
||||
|
||||
extern const struct value_string osmo_iofd_mode_names[];
|
||||
static inline const char *osmo_iofd_mode_name(enum osmo_io_fd_mode val)
|
||||
{ return get_value_string(osmo_iofd_mode_names, val); }
|
||||
|
||||
struct osmo_io_ops {
|
||||
/* mode OSMO_IO_FD_MODE_READ_WRITE: */
|
||||
struct {
|
||||
|
|
|
@ -264,6 +264,7 @@ osmo_iofd_get_name;
|
|||
osmo_iofd_set_name;
|
||||
osmo_iofd_get_priv_nr;
|
||||
osmo_iofd_init;
|
||||
osmo_iofd_mode_names;
|
||||
osmo_iofd_ops;
|
||||
osmo_iofd_register;
|
||||
osmo_iofd_sendto_msgb;
|
||||
|
|
|
@ -51,6 +51,13 @@ const struct value_string osmo_io_backend_names[] = {
|
|||
{ 0, NULL }
|
||||
};
|
||||
|
||||
const struct value_string osmo_iofd_mode_names[] = {
|
||||
{ OSMO_IO_FD_MODE_READ_WRITE, "read/write" },
|
||||
{ OSMO_IO_FD_MODE_RECVFROM_SENDTO, "recvfrom/sendto" },
|
||||
{ OSMO_IO_FD_MODE_RECVMSG_SENDMSG, "recvmsg/sendmsg" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static enum osmo_io_backend g_io_backend;
|
||||
|
||||
/* Used by some tests, can't be static */
|
||||
|
@ -619,8 +626,11 @@ struct osmo_io_fd *osmo_iofd_setup(const void *ctx, int fd, const char *name, en
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if (ioops && !check_mode_callback_compat(mode, ioops))
|
||||
if (ioops && !check_mode_callback_compat(mode, ioops)) {
|
||||
LOGP(DLIO, LOGL_ERROR, "iofd(%s): rejecting call-backs incompatible with mode %s\n",
|
||||
name ? name : "unknown", osmo_iofd_mode_name(mode));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
iofd = talloc_zero(ctx, struct osmo_io_fd);
|
||||
if (!iofd)
|
||||
|
@ -868,8 +878,11 @@ void osmo_iofd_set_name(struct osmo_io_fd *iofd, const char *name)
|
|||
* \param[in] ioops osmo_io_ops structure to be set */
|
||||
int osmo_iofd_set_ioops(struct osmo_io_fd *iofd, const struct osmo_io_ops *ioops)
|
||||
{
|
||||
if (!check_mode_callback_compat(iofd->mode, ioops))
|
||||
if (!check_mode_callback_compat(iofd->mode, ioops)) {
|
||||
LOGPIO(iofd, LOGL_ERROR, "rejecting call-backs incompatible with mode %s\n",
|
||||
osmo_iofd_mode_name(iofd->mode));
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
iofd->io_ops = *ioops;
|
||||
|
||||
|
|
Loading…
Reference in New Issue