libnetconf2  1.1.48
NETCONF library for clients and servers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
session_client.h File Reference

libnetconf2 session client manipulation More...

#include <libyang/libyang.h>
#include <libssh/libssh.h>
#include <openssl/ssl.h>
#include "session.h"
#include "netconf.h"
#include "messages_client.h"

Go to the source code of this file.

Functions

int nc_client_set_schema_searchpath (const char *path)
 Set location where libnetconf tries to search for YANG/YIN schemas. More...
 
const char * nc_client_get_schema_searchpath (void)
 Get schema searchpath that was set by nc_client_set_schema_searchpath(). More...
 
int nc_client_set_schema_callback (ly_module_imp_clb clb, void *user_data)
 Set callback function to get missing schemas. More...
 
ly_module_imp_clb nc_client_get_schema_callback (void **user_data)
 Get callback function used to get missing schemas. More...
 
void nc_client_set_thread_context (void *context)
 Use the provided thread-specific client's context in the current thread. More...
 
void * nc_client_get_thread_context (void)
 Get thread-specific client context for sharing with some other thread using nc_client_set_thread_context(). More...
 
void nc_client_init (void)
 Initialize libssh and/or libssl/libcrypto for use in the client. More...
 
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. More...
 
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. More...
 
struct nc_session * nc_connect_unix (const char *address, struct ly_ctx *ctx)
 Connect to the NETCONF server via unix socket. More...
 
void nc_client_ssh_set_auth_hostkey_check_clb (int(*auth_hostkey_check)(const char *hostname, ssh_session session, void *priv), void *priv)
 Set SSH authentication hostkey check (knownhosts) callback. More...
 
void nc_client_ssh_get_auth_hostkey_check_clb (int(**auth_hostkey_check)(const char *hostname, ssh_session session, void *priv), void **priv)
 Get currently set SSH authentication hostkey check (knownhosts) callback and its private data previously set by nc_client_ssh_set_auth_hostkey_check_clb(). More...
 
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. More...
 
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(). More...
 
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. More...
 
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(). More...
 
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. More...
 
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(). More...
 
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. More...
 
int nc_client_ssh_del_keypair (int idx)
 Remove an SSH public and private key pair that was used for client authentication. More...
 
int nc_client_ssh_get_keypair_count (void)
 Get the number of public an private key pairs set to be used for client authentication. More...
 
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. More...
 
void nc_client_ssh_set_auth_pref (NC_SSH_AUTH_TYPE auth_type, int16_t pref)
 Set SSH authentication method preference. More...
 
int16_t nc_client_ssh_get_auth_pref (NC_SSH_AUTH_TYPE auth_type)
 Get SSH authentication method preference. More...
 
int nc_client_ssh_set_username (const char *username)
 Set client SSH username used for authentication. More...
 
const char * nc_client_ssh_get_username (void)
 Get client SSH username used for authentication. More...
 
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). More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
int nc_client_tls_set_trusted_ca_paths (const char *ca_file, const char *ca_dir)
 Set client trusted CA certificates paths. More...
 
void nc_client_tls_get_trusted_ca_paths (const char **ca_file, const char **ca_dir)
 Get client trusted CA certificates paths. More...
 
int nc_client_tls_set_crl_paths (const char *crl_file, const char *crl_dir)
 Set client Certificate Revocation List paths. More...
 
void nc_client_tls_get_crl_paths (const char **crl_file, const char **crl_dir)
 Get client Certificate Revocation List paths. More...
 
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) More...
 
struct nc_session * nc_connect_libssl (SSL *tls, struct ly_ctx *ctx)
 Connect to the NETCONF server using the provided TLS (libssl) session. More...
 
const char *const * nc_session_get_cpblts (const struct nc_session *session)
 Get session capabilities. More...
 
const char * nc_session_cpblt (const struct nc_session *session, const char *capab)
 Check capability presence in a session. More...
 
int nc_session_ntf_thread_running (const struct nc_session *session)
 Check whether the session has a notification thread running. More...
 
NC_MSG_TYPE nc_recv_reply (struct nc_session *session, struct nc_rpc *rpc, uint64_t msgid, int timeout, int parseroptions, struct nc_reply **reply)
 Receive NETCONF RPC reply. More...
 
NC_MSG_TYPE nc_recv_notif (struct nc_session *session, int timeout, struct nc_notif **notif)
 Receive NETCONF Notification. More...
 
int nc_recv_notif_dispatch (struct nc_session *session, void(*notif_clb)(struct nc_session *session, const struct nc_notif *notif))
 Receive NETCONF Notifications in a separate thread until the session is terminated or <notificationComplete> is received. More...
 
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. More...
 
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. More...
 

Detailed Description

libnetconf2 session client manipulation

Author
Michal Vasko mvask.nosp@m.o@ce.nosp@m.snet..nosp@m.cz Copyright (c) 2015 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.