libnetconf2  4.6.6
NETCONF server and client library in C.
session_server_ch.h
Go to the documentation of this file.
1 
16 #ifndef NC_SESSION_SERVER_CH_H_
17 #define NC_SESSION_SERVER_CH_H_
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 #include <libyang/libyang.h>
24 #include <stdint.h>
25 #include <time.h>
26 
27 #include "netconf.h"
28 #include "session.h"
29 
30 #ifdef NC_ENABLED_SSH_TLS
31 
56 int nc_server_ch_is_client(const char *name);
57 
65 int nc_server_ch_client_is_endpt(const char *client_name, const char *endpt_name);
66 
74 typedef const struct ly_ctx *(*nc_server_ch_session_acquire_ctx_cb)(void *cb_data);
75 
81 typedef void (*nc_server_ch_session_release_ctx_cb)(void *cb_data);
82 
92 typedef int (*nc_server_ch_new_session_cb)(const char *client_name, struct nc_session *new_session, void *user_data);
93 
103 typedef void (*nc_server_ch_new_session_fail_cb)(const char *client_name, const char *endpt_name, uint8_t max_attempts,
104  uint8_t cur_attempt, void *user_data);
105 
121 int nc_connect_ch_client_dispatch(const char *client_name, nc_server_ch_session_acquire_ctx_cb acquire_ctx_cb,
122  nc_server_ch_session_release_ctx_cb release_ctx_cb, void *ctx_cb_data, nc_server_ch_new_session_cb new_session_cb,
123  void *new_session_cb_data);
124 
137  nc_server_ch_session_release_ctx_cb release_ctx_cb, void *ctx_cb_data, nc_server_ch_new_session_cb new_session_cb,
138  void *new_session_cb_data);
139 
147  void *new_session_fail_cb_data);
148 
151 #endif /* NC_ENABLED_SSH_TLS */
152 
153 #ifdef __cplusplus
154 }
155 #endif
156 
157 #endif /* NC_SESSION_SERVER_CH_H_ */
void nc_server_ch_set_new_session_fail_cb(nc_server_ch_new_session_fail_cb new_session_fail_cb, void *new_session_fail_cb_data)
Set callback for failure of a new CH session creation.
void(* nc_server_ch_new_session_fail_cb)(const char *client_name, const char *endpt_name, uint8_t max_attempts, uint8_t cur_attempt, void *user_data)
Callback for failures when creating new Call Home sessions.
int nc_server_ch_client_is_endpt(const char *client_name, const char *endpt_name)
Check if an endpoint of a Call Home client exists.
const struct ly_ctx *(* nc_server_ch_session_acquire_ctx_cb)(void *cb_data)
Callback for getting a locked context for new Call Home sessions.
int nc_connect_ch_client_dispatch(const char *client_name, nc_server_ch_session_acquire_ctx_cb acquire_ctx_cb, nc_server_ch_session_release_ctx_cb release_ctx_cb, void *ctx_cb_data, nc_server_ch_new_session_cb new_session_cb, void *new_session_cb_data)
Dispatch a thread connecting to a listening NETCONF client and creating Call Home sessions.
int(* nc_server_ch_new_session_cb)(const char *client_name, struct nc_session *new_session, void *user_data)
Callback for new Call Home sessions.
void nc_server_ch_set_dispatch_data(nc_server_ch_session_acquire_ctx_cb acquire_ctx_cb, nc_server_ch_session_release_ctx_cb release_ctx_cb, void *ctx_cb_data, nc_server_ch_new_session_cb new_session_cb, void *new_session_cb_data)
Set callbacks and their data for Call Home threads.
void(* nc_server_ch_session_release_ctx_cb)(void *cb_data)
Callback for releasing a locked context for Call Home sessions.
int nc_server_ch_is_client(const char *name)
Check if a Call Home client exists.
libnetconf2's general public functions and structures definitions.
libnetconf2 session manipulation