Loading...
Searching...
No Matches
session_client.h File Reference

libnetconf2 session client manipulation More...

`#include <libyang/libyang.h>`
`#include "messages_client.h"`
`#include "netconf.h"`
`#include "session.h"`
`#include <libssh/libssh.h>`
Include dependency graph for session_client.h:

Go to the source code of this file.

## Typedefs

typedef void(* | nc_client_monitoring_clb) (struct nc_session *session, void *user_data)
| Callback for monitoring client sessions.
typedef void(* | nc_notif_dispatch_clb) (struct nc_session *session, const struct lyd_node *envp, const struct lyd_node *op, void *user_data)
| Callback for receiving notifications in a separate thread.

## Functions

void | nc_client_destroy (void)
| Destroy all libssh and/or libssl/libcrypto dynamic memory and the client options, for both SSH and TLS, and for Call Home too.
void | nc_client_enable_tcp_keepalives (int enable)
| Enable or disable TCP keepalives. Only affects new sessions.
ly_module_imp_clb | nc_client_get_schema_callback (void **user_data)
| Get callback function used to get missing schemas.
const char * | nc_client_get_schema_searchpath (void)
| Get schema searchpath that was set by nc_client_set_schema_searchpath().
void * | nc_client_get_thread_context (void)
| Get thread-specific client context for sharing with some other thread using nc_client_set_thread_context().
int | nc_client_init (void)
| Initialize client for establishing connections.
int | nc_client_monitoring_thread_start (nc_client_monitoring_clb monitoring_clb, void *user_data, void(*free_data)(void *))
| Start a thread that monitors client sessions.
void | nc_client_monitoring_thread_stop (void)
| Stop the client session monitoring thread.
void | nc_client_session_set_not_strict (struct nc_session *session)
| Make a session not strict when sending RPCs and receiving RPC replies. In other words, it will silently skip unknown nodes without an error.
void | nc_client_set_new_session_context_autofill (int enabled)
| Enable/disable loading of all the YANG modules supported by the server when a new session is created. If disabled, it is expected that users update the context themselves and load the YANG modules that are planned to be used. Otherwise even basic RPCs may fail to be sent!
int | nc_client_set_new_session_context_schema_mount (struct nc_session *session)
| Set client session context to support schema-mount, if possible.
int | nc_client_set_schema_callback (ly_module_imp_clb clb, void *user_data)
| Set callback function to get missing schemas.
int | nc_client_set_schema_searchpath (const char *path)
| Set location where libnetconf tries to search for YANG/YIN schemas.
void | nc_client_set_tcp_keepalives (uint16_t idle_time, uint16_t max_probes, uint16_t probe_interval)
| Set TCP keepalive options.
void | nc_client_set_thread_context (void *context)
| Use the provided thread-specific client's context in the current thread.
int | nc_client_ssh_add_keypair (const char *pub_key, const char *priv_key)
| Add an SSH public and private key pair to be used for client authentication.
int | nc_client_ssh_del_keypair (int idx)
| Remove an SSH public and private key pair that was used for client authentication.
void | nc_client_ssh_get_auth_interactive_clb (char *(**auth_interactive)(const char *auth_name, const char *instruction, const char *prompt, int echo, void *priv), void **priv)
| Get currently set SSH interactive authentication callback and its private data previously set by nc_client_ssh_set_auth_interactive_clb().
void | nc_client_ssh_get_auth_password_clb (char *(**auth_password)(const char *username, const char *hostname, void *priv), void **priv)
| Get currently set SSH password authentication callback and its private data previously set by nc_client_ssh_set_auth_password_clb().
int16_t | nc_client_ssh_get_auth_pref (NC_SSH_AUTH_TYPE auth_type)
| Get SSH authentication method preference.
void | nc_client_ssh_get_auth_privkey_passphrase_clb (char *(**auth_privkey_passphrase)(const char *privkey_path, void *priv), void **priv)
| Get currently set SSH publickey authentication encrypted private key passphrase callback and its private data previously set by nc_client_ssh_set_auth_privkey_passphrase_clb().
int | nc_client_ssh_get_keypair (int idx, const char **pub_key, const char **priv_key)
| Get a specific keypair set to be used for client authentication.
int | nc_client_ssh_get_keypair_count (void)
| Get the number of public an private key pairs set to be used for client authentication.
const char * | nc_client_ssh_get_username (void)
| Get client SSH username used for authentication.
void | nc_client_ssh_set_auth_interactive_clb (char *(*auth_interactive)(const char *auth_name, const char *instruction, const char *prompt, int echo, void *priv), void *priv)
| Set SSH interactive authentication callback.
void | nc_client_ssh_set_auth_password_clb (char *(*auth_password)(const char *username, const char *hostname, void *priv), void *priv)
| Set SSH password authentication callback.
void | nc_client_ssh_set_auth_pref (NC_SSH_AUTH_TYPE auth_type, int16_t pref)
| Set SSH authentication method preference.
void | nc_client_ssh_set_auth_privkey_passphrase_clb (char *(*auth_privkey_passphrase)(const char *privkey_path, void *priv), void *priv)
| Set SSH publickey authentication encrypted private key passphrase callback.
void | nc_client_ssh_set_knownhosts_mode (NC_SSH_KNOWNHOSTS_MODE mode)
| Set the behaviour of checking the host key and adding/reading entries to/from the known_hosts file.
int | nc_client_ssh_set_knownhosts_path (const char *path)
| Set the path to the known_hosts file.
int | nc_client_ssh_set_username (const char *username)
| Set client SSH username used for authentication.
void | nc_client_tls_get_cert_key_paths (const char **client_cert, const char **client_key)
| Get client authentication identity - a certificate and a private key.
void | nc_client_tls_get_crl_paths (const char **crl_file, const char **crl_dir)
| Deprecated.
void | nc_client_tls_get_trusted_ca_paths (const char **ca_file, const char **ca_dir)
| Get client trusted CA certificates paths.
int | nc_client_tls_set_cert_key_paths (const char *client_cert, const char *client_key)
| Set client authentication identity - a certificate and a private key.
int | nc_client_tls_set_crl_paths (const char *crl_file, const char *crl_dir)
| Deprecated.
int | nc_client_tls_set_trusted_ca_paths (const char *ca_file, const char *ca_dir)
| Set client trusted CA certificates paths.
struct nc_session * | nc_connect_inout (int fdin, int fdout, struct ly_ctx *ctx)
| Connect to the NETCONF server via proviaded input/output file descriptors.
struct nc_session * | nc_connect_libssh (ssh_session ssh_session, struct ly_ctx *ctx)
| Connect to the NETCONF server using the provided SSH (libssh) session.
struct nc_session * | nc_connect_libssl (void *tls, struct ly_ctx *ctx)
| Deprecated. Should not be needed.
struct nc_session * | nc_connect_ssh (const char *host, uint16_t port, struct ly_ctx *ctx)
| Connect to the NETCONF server using SSH transport (via libssh).
struct nc_session * | nc_connect_ssh_channel (struct nc_session *session, struct ly_ctx *ctx)
| Create another NETCONF session on existing SSH session using separated SSH channel.
struct nc_session * | nc_connect_tls (const char *host, uint16_t port, struct ly_ctx *ctx)
| Connect to the NETCONF server using TLS transport (via libssl)
struct nc_session * | nc_connect_unix (const char *address, struct ly_ctx *ctx)
| Connect to the NETCONF server via unix socket.
NC_MSG_TYPE | nc_recv_notif (struct nc_session *session, int timeout, struct lyd_node **envp, struct lyd_node **op)
| Receive NETCONF Notification.
int | nc_recv_notif_dispatch (struct nc_session *session, nc_notif_dispatch_clb notif_clb)
| Receive NETCONF Notifications in a separate thread until the session is terminated or <notificationComplete> is received.
int | nc_recv_notif_dispatch_data (struct nc_session *session, nc_notif_dispatch_clb notif_clb, void *user_data, void(*free_data)(void *))
| Receive NETCONF Notifications in a separate thread until the session is terminated or <notificationComplete> is received. Similar to nc_recv_notif_dispatch() but allows to set arbitrary user data that can be freed as well.
NC_MSG_TYPE | nc_recv_reply (struct nc_session *session, struct nc_rpc *rpc, uint64_t msgid, int timeout, struct lyd_node **envp, struct lyd_node **op)
| Receive NETCONF RPC reply.
NC_MSG_TYPE | nc_send_rpc (struct nc_session *session, struct nc_rpc *rpc, int timeout, uint64_t *msgid)
| Send NETCONF RPC message via the session.
const char * | nc_session_cpblt (const struct nc_session *session, const char *capab)
| Check capability presence in a session.
const char *const * | nc_session_get_cpblts (const struct nc_session *session)
| Get session capabilities.
int | nc_session_ntf_thread_running (const struct nc_session *session)
| Check whether the session has a notification thread running.

## Detailed Description

libnetconf2 session client manipulation

Author
  Michal Vasko mvask.nosp@m.o@ce.nosp@m.snet..nosp@m.cz

Copyright
  Copyright (c) 2015 - 2021 CESNET, z.s.p.o.

This source code is licensed under BSD 3-Clause License (the "License"). You may not use this file except in compliance with the License. You may obtain a copy of the License at

    https://opensource.org/licenses/BSD-3-Clause

Definition in file session_client.h.