libnetconf2  4.6.6
NETCONF server and client library in C.
session.h
Go to the documentation of this file.
1 
17 #ifndef NC_SESSION_H_
18 #define NC_SESSION_H_
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #include "netconf.h"
25 
26 #ifdef NC_ENABLED_SSH_TLS
27 
31 typedef enum {
36 
40 typedef enum {
47 
51 typedef enum {
60 
61 #endif /* NC_ENABLED_SSH_TLS */
62 
66 typedef enum {
70 
74 typedef enum {
81 
85 typedef enum {
86  NC_TI_NONE = 0,
87  NC_TI_FD,
90 #ifdef NC_ENABLED_SSH_TLS
93  NC_TI_TLS
94 #endif /* NC_ENABLED_SSH_TLS */
96 
100 typedef enum {
105 
109 typedef enum {
110  NC_CH_FIRST_LISTED = 0, // default
114 
118 struct nc_session;
119 
126 NC_STATUS nc_session_get_status(const struct nc_session *session);
127 
134 NC_SESSION_TERM_REASON nc_session_get_term_reason(const struct nc_session *session);
135 
142 uint32_t nc_session_get_killed_by(const struct nc_session *session);
143 
150 uint32_t nc_session_get_id(const struct nc_session *session);
151 
158 int nc_session_get_version(const struct nc_session *session);
159 
166 NC_TRANSPORT_IMPL nc_session_get_ti(const struct nc_session *session);
167 
174 const char *nc_session_get_username(const struct nc_session *session);
175 
182 const char *nc_session_get_host(const struct nc_session *session);
183 
190 uint16_t nc_session_get_port(const struct nc_session *session);
191 
192 #ifdef NC_ENABLED_SSH_TLS
193 
200 const char *nc_session_ssh_get_protocol_string(const struct nc_session *session);
201 
209 const char *nc_session_ssh_get_banner(const struct nc_session *session);
210 
211 #endif
212 
219 const char *nc_session_get_path(const struct nc_session *session);
220 
227 const struct ly_ctx *nc_session_get_ctx(const struct nc_session *session);
228 
235 const char * const *nc_session_get_cpblts(const struct nc_session *session);
236 
244 const char *nc_session_cpblt(const struct nc_session *session, const char *capab);
245 
252 void nc_session_set_data(struct nc_session *session, void *data);
253 
260 void *nc_session_get_data(const struct nc_session *session);
261 
268 int nc_session_is_callhome(const struct nc_session *session);
269 
280 void nc_session_free(struct nc_session *session, void (*data_free)(void *));
281 
287 const char *nc_yang_module_dir(void);
288 
289 #ifdef __cplusplus
290 }
291 #endif
292 
293 #endif /* NC_SESSION_H_ */
NC_SESSION_TERM_REASON
Enumeration of reasons of the NETCONF session termination as defined in RFC 6470.
Definition: netconf.h:55
libnetconf2's general public functions and structures definitions.
int nc_session_is_callhome(const struct nc_session *session)
Learn whether a session was created using Call Home or not.
NC_TLS_CTN_MAPTYPE
Enumeration of cert-to-name mapping types.
Definition: session.h:51
@ NC_TLS_CTN_SAN_ANY
Definition: session.h:57
@ NC_TLS_CTN_SAN_IP_ADDRESS
Definition: session.h:56
@ NC_TLS_CTN_SAN_RFC822_NAME
Definition: session.h:54
@ NC_TLS_CTN_SPECIFIED
Definition: session.h:53
@ NC_TLS_CTN_SAN_DNS_NAME
Definition: session.h:55
@ NC_TLS_CTN_UNKNOWN
Definition: session.h:52
@ NC_TLS_CTN_COMMON_NAME
Definition: session.h:58
NC_STATUS
Enumeration of possible session statuses.
Definition: session.h:74
@ NC_STATUS_INVALID
Definition: session.h:78
@ NC_STATUS_RUNNING
Definition: session.h:79
@ NC_STATUS_ERR
Definition: session.h:75
@ NC_STATUS_STARTING
Definition: session.h:76
@ NC_STATUS_CLOSING
Definition: session.h:77
NC_SSH_KNOWNHOSTS_MODE
Enumeration of host key checking and known_hosts entry adding modes.
Definition: session.h:40
@ NC_SSH_KNOWNHOSTS_STRICT
Definition: session.h:42
@ NC_SSH_KNOWNHOSTS_ASK
Definition: session.h:41
@ NC_SSH_KNOWNHOSTS_ACCEPT_NEW
Definition: session.h:43
@ NC_SSH_KNOWNHOSTS_ACCEPT
Definition: session.h:44
@ NC_SSH_KNOWNHOSTS_SKIP
Definition: session.h:45
NC_PROT_VERSION
Enumeration of the supported NETCONF protocol versions.
Definition: session.h:66
@ NC_PROT_VERSION_10
Definition: session.h:67
@ NC_PROT_VERSION_11
Definition: session.h:68
const char *const * nc_session_get_cpblts(const struct nc_session *session)
Get session capabilities.
void nc_session_free(struct nc_session *session, void(*data_free)(void *))
Free the NETCONF session object.
NC_CH_START_WITH
Enumeration of Call Home client priority policy.
Definition: session.h:109
@ NC_CH_LAST_CONNECTED
Definition: session.h:111
@ NC_CH_FIRST_LISTED
Definition: session.h:110
@ NC_CH_RANDOM
Definition: session.h:112
const char * nc_session_cpblt(const struct nc_session *session, const char *capab)
Check capability presence in a session.
const struct ly_ctx * nc_session_get_ctx(const struct nc_session *session)
Get session context.
NC_STATUS nc_session_get_status(const struct nc_session *session)
Get session status.
NC_SESSION_TERM_REASON nc_session_get_term_reason(const struct nc_session *session)
Get session termination reason.
const char * nc_session_get_path(const struct nc_session *session)
Get session path (unix socket only).
NC_CH_CONN_TYPE
Enumeration of Call Home connection types.
Definition: session.h:100
@ NC_CH_PERSIST
Definition: session.h:102
@ NC_CH_PERIOD
Definition: session.h:103
@ NC_CH_CT_NOT_SET
Definition: session.h:101
const char * nc_session_get_host(const struct nc_session *session)
Get session host.
NC_TRANSPORT_IMPL
Enumeration of transport implementations (ways how libnetconf implements NETCONF transport protocol)
Definition: session.h:85
@ NC_TI_UNIX
Definition: session.h:89
@ NC_TI_FD
Definition: session.h:87
@ NC_TI_TLS
Definition: session.h:93
@ NC_TI_NONE
Definition: session.h:86
@ NC_TI_SSH
Definition: session.h:91
const char * nc_session_ssh_get_protocol_string(const struct nc_session *session)
Get the SSH protocol identification string sent by the peer.
void * nc_session_get_data(const struct nc_session *session)
Get the data assigned to a session.
int nc_session_get_version(const struct nc_session *session)
Get session NETCONF version.
NC_SSH_AUTH_TYPE
Enumeration of NETCONF SSH authentication methods.
Definition: session.h:31
@ NC_SSH_AUTH_INTERACTIVE
Definition: session.h:34
@ NC_SSH_AUTH_PASSWORD
Definition: session.h:33
@ NC_SSH_AUTH_PUBLICKEY
Definition: session.h:32
const char * nc_session_get_username(const struct nc_session *session)
Get session username.
void nc_session_set_data(struct nc_session *session, void *data)
Assign arbitrary data to a session.
uint16_t nc_session_get_port(const struct nc_session *session)
Get session port.
const char * nc_session_ssh_get_banner(const struct nc_session *session)
Get the SSH banner sent by the peer.
const char * nc_yang_module_dir(void)
Get the directory with internal libnetconf2 YANG modules.
NC_TRANSPORT_IMPL nc_session_get_ti(const struct nc_session *session)
Get session transport used.
uint32_t nc_session_get_id(const struct nc_session *session)
Get session ID.
uint32_t nc_session_get_killed_by(const struct nc_session *session)
Get session killer session ID.