diff --git a/apps/backend/backend_client.c b/apps/backend/backend_client.c index 33b0830c..ec150d25 100644 --- a/apps/backend/backend_client.c +++ b/apps/backend/backend_client.c @@ -193,12 +193,18 @@ backend_monitoring_state_get(clicon_handle h, cprintf(cb, ""); cprintf(cb, "%u", ce->ce_id); if (ce->ce_transport == NULL){ +#ifdef NOTYET // XXX: too strict, race conditions in clixon_snmp clicon_err(OE_XML, 0, "Mandatory element transport missing"); goto done; +#else + cprintf(cb, "cl:netconf", + CLIXON_LIB_PREFIX, CLIXON_LIB_NS); +#endif } - cprintf(cb, "%s", - CLIXON_LIB_PREFIX, CLIXON_LIB_NS, - ce->ce_transport); + else + cprintf(cb, "%s", + CLIXON_LIB_PREFIX, CLIXON_LIB_NS, + ce->ce_transport); cprintf(cb, "%s", ce->ce_username); if (ce->ce_source_host) cprintf(cb, "%s", ce->ce_source_host); diff --git a/lib/clixon/clixon_data.h b/lib/clixon/clixon_data.h index e7678a02..8ac95d19 100644 --- a/lib/clixon/clixon_data.h +++ b/lib/clixon/clixon_data.h @@ -135,6 +135,7 @@ int clicon_argv_set(clicon_handle h, char *argv0, int argc, char **argv); /*! Set and get (client/backend) session id */ int clicon_session_id_set(clicon_handle h, uint32_t id); int clicon_session_id_get(clicon_handle h, uint32_t *id); +int clicon_session_id_del(clicon_handle h); /* If set, quit startup directly after upgrade */ int clicon_quit_upgrade_get(clicon_handle h); diff --git a/lib/src/clixon_data.c b/lib/src/clixon_data.c index 437507e7..ac5c5527 100644 --- a/lib/src/clixon_data.c +++ b/lib/src/clixon_data.c @@ -828,6 +828,16 @@ clicon_session_id_get(clicon_handle h, return 0; } +/*! Delete session id + */ +int +clicon_session_id_del(clicon_handle h) +{ + clicon_hash_t *cdat = clicon_data(h); + + return clicon_hash_del(cdat, (char*)"session-id"); +} + /*! Set session id * @param[in] h Clicon handle * @param[in] id Session id diff --git a/lib/src/clixon_proto_client.c b/lib/src/clixon_proto_client.c index 1045807a..2927c5d8 100644 --- a/lib/src/clixon_proto_client.c +++ b/lib/src/clixon_proto_client.c @@ -223,7 +223,9 @@ clicon_rpc_msg(clicon_handle h, goto done; } /* To disable this restart, unset PROTO_RESTART_RECONNECT */ + clicon_session_id_del(h); clicon_log(LOG_WARNING, "The backend was probably restarted and the client has reconnected to the backend. Any locks or candidate edits are lost."); + } #else clicon_err(OE_PROTO, ESHUTDOWN, "Unexpected close of CLICON_SOCK. Clixon backend daemon may have crashed.");