libnetconf2 3.7.1
NETCONF server and client library in C.
Loading...
Searching...
No Matches
session.h
Go to the documentation of this file.
1
17#ifndef NC_SESSION_H_
18#define NC_SESSION_H_
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#include "netconf.h"
25
26#ifdef NC_ENABLED_SSH_TLS
27
36
47
60
70
71#endif /* NC_ENABLED_SSH_TLS */
72
83
87typedef enum {
89 NC_TI_FD,
92#ifdef NC_ENABLED_SSH_TLS
96#endif /* NC_ENABLED_SSH_TLS */
98
107
116
120struct nc_session;
121
128NC_STATUS nc_session_get_status(const struct nc_session *session);
129
136NC_SESSION_TERM_REASON nc_session_get_term_reason(const struct nc_session *session);
137
144uint32_t nc_session_get_killed_by(const struct nc_session *session);
145
152uint32_t nc_session_get_id(const struct nc_session *session);
153
160int nc_session_get_version(const struct nc_session *session);
161
168NC_TRANSPORT_IMPL nc_session_get_ti(const struct nc_session *session);
169
176const char *nc_session_get_username(const struct nc_session *session);
177
184const char *nc_session_get_host(const struct nc_session *session);
185
192uint16_t nc_session_get_port(const struct nc_session *session);
193
194#ifdef NC_ENABLED_SSH_TLS
195
202const char *nc_session_ssh_get_banner(const struct nc_session *session);
203
204#endif
205
212const char *nc_session_get_path(const struct nc_session *session);
213
220const struct ly_ctx *nc_session_get_ctx(const struct nc_session *session);
221
228void nc_session_set_data(struct nc_session *session, void *data);
229
236void *nc_session_get_data(const struct nc_session *session);
237
244int nc_session_is_callhome(const struct nc_session *session);
245
252void nc_session_free(struct nc_session *session, void (*data_free)(void *));
253
254#ifdef __cplusplus
255}
256#endif
257
258#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:76
@ NC_STATUS_INVALID
Definition session.h:80
@ NC_STATUS_RUNNING
Definition session.h:81
@ NC_STATUS_ERR
Definition session.h:77
@ NC_STATUS_STARTING
Definition session.h:78
@ NC_STATUS_CLOSING
Definition session.h:79
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
void * nc_session_get_data(const struct nc_session *session)
Get the data assigned to a session.
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:111
@ NC_CH_LAST_CONNECTED
Definition session.h:113
@ NC_CH_FIRST_LISTED
Definition session.h:112
@ NC_CH_RANDOM
Definition session.h:114
NC_STATUS nc_session_get_status(const struct nc_session *session)
Get session status.
const char * nc_session_get_path(const struct nc_session *session)
Get session path (unix socket only).
NC_SESSION_TERM_REASON nc_session_get_term_reason(const struct nc_session *session)
Get session termination reason.
NC_CH_CONN_TYPE
Enumeration of Call Home connection types.
Definition session.h:102
@ NC_CH_PERSIST
Definition session.h:104
@ NC_CH_PERIOD
Definition session.h:105
@ NC_CH_CT_NOT_SET
Definition session.h:103
const struct ly_ctx * nc_session_get_ctx(const struct nc_session *session)
Get session context.
const char * nc_session_get_username(const struct nc_session *session)
Get session username.
NC_TLS_VERSION
Enumeration of TLS versions.
Definition session.h:64
@ NC_TLS_VERSION_10
Definition session.h:65
@ NC_TLS_VERSION_11
Definition session.h:66
@ NC_TLS_VERSION_13
Definition session.h:68
@ NC_TLS_VERSION_12
Definition session.h:67
NC_TRANSPORT_IMPL
Enumeration of transport implementations (ways how libnetconf implements NETCONF transport protocol)
Definition session.h:87
@ NC_TI_UNIX
Definition session.h:91
@ NC_TI_FD
Definition session.h:89
@ NC_TI_TLS
Definition session.h:95
@ NC_TI_NONE
Definition session.h:88
@ NC_TI_SSH
Definition session.h:93
const char * nc_session_get_host(const struct nc_session *session)
Get session host.
const char * nc_session_ssh_get_banner(const struct nc_session *session)
Get the SSH banner sent by the peer.
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
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.
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.