nanomsg next generation NNG  
Home GitHub Documentation

This documentation is for version v1.1.0 of nng, but the latest released version is v1.3.2. see the documentation for v1.3.2 for the most up-to-date information.


#include <nng/nng.h>
#include <nng/supplemental/tls/tls.h>

typedef enum nng_tls_mode {
} nng_tls_mode;

int nng_tls_config_alloc(nng_tls_config **cfgp, nng_tls_mode mode);


The nng_tls_config_alloc() function creates a newly initialized Transport Layer Security) configuration object, and stores a pointer to it in the value pointed to by cfgp.

This object is initialized for use when acting as either a client (NNG_TLS_MODE_CLIENT) or as a server (NNG_TLS_MODE_SERVER), depending on the value of mode.

A TLS object can be further modified by functions that set the security keys used, peer certificates, protocol policies, and so forth.

A single TLS configuration object can be used with multiple TLS streams or services. The underlying system uses reference counting to ensure that object is not inadvertently freed while in use.

A configuration object created with nng_tls_config_alloc() starts with a reference count of one. The reference count may be incremented using nng_tls_config_hold() and may be decremented with nng_tls_config_free().

Also note that a TLS configuration object becomes “read-only” after it is first used with a service. After this points, attempts to apply further changes to the configuration will result in NNG_EBUSY.


This function returns 0 on success, and non-zero otherwise.



Insufficient memory is available.


An invalid mode was specified.

NNG Reference Manual vv1.1.0 © 2019 Staysail Systems, Inc, © 2018 Capitar IT Group BV
This document is supplied under the MIT License.
nanomsg™ and nng™ are trademarks of Garrett D'Amore.