diff --git a/src/io.c b/src/io.c index c7dc6232..387036f7 100644 --- a/src/io.c +++ b/src/io.c @@ -484,13 +484,16 @@ nc_read_msg_poll_io(struct nc_session *session, int io_timeout, struct ly_in **m /* read msg */ ret = nc_read_msg_io(session, io_timeout, 1, &buf, &buf_len); - if (ret > 0) { - ret = 1; - } /* SESSION IO UNLOCK */ nc_session_io_unlock(session, __func__); + if (ret > 0) { + ret = 1; + } else { + return ret; + } + /* create input */ if (ly_in_new_memory(buf, msg)) { free(buf); diff --git a/src/server_config.c b/src/server_config.c index 40aff5e3..0ed2ded1 100644 --- a/src/server_config.c +++ b/src/server_config.c @@ -4303,6 +4303,7 @@ nc_server_config_listen_all_endpoints(const struct lyd_node *node) struct lyd_node *n, *iter; struct nc_endpt *endpt; struct nc_bind *bind; + struct lyd_meta *m; NC_CHECK_ERR_RET(strcmp(LYD_NAME(node), "netconf-server"), ERR(NULL, "Unexpected node \"%s\" encountered, expected \"netconf-server\".", LYD_NAME(node)), 1); @@ -4314,6 +4315,11 @@ nc_server_config_listen_all_endpoints(const struct lyd_node *node) if (n) { /* go over all the endpoints */ LY_LIST_FOR(lyd_child(n), iter) { + if ((m = lyd_find_meta(iter->meta, NULL, "yang:operation"))) { + if (!strcmp(lyd_get_meta_value(m), "delete")) { + continue; + } + } /* get the endpoint and bind structs from the node */ NC_CHECK_RET(nc_server_config_get_endpt(iter, &endpt, &bind));