This documentation is for version v1.3.0 of NNG, but the latest released version is v1.8.0. see the documentation for v1.8.0 for the most up-to-date information.

SYNOPSIS

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

int nng_http_server_hold(nng_http_server **serverp, const nng_url *url);

DESCRIPTION

The nng_http_server_hold() acquires an instance of an HTTP server suitable for use in serving the URL identified by url, and stores a pointer to it at the location pointed to by serverp.

This function first looks to see if an existing HTTP server instance exists, that is suitable for this. If so, it increments the reference count on it and uses that. Otherwise, it will attempt to create a new server instance with an initial reference count of one (1).

The server instance is not started, and can have additional configuration applied to it before it is later started with nng_http_server_start().

The URL matching logic in determining servers is unable to distinguish between different aliases for the same local IP address. This may create problems when using URLs for virtual hosting. It is recommended to use canonical IP addresses or names in the url to avoid confusion.

RETURN VALUES

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

ERRORS

NNG_ENOMEM

Insufficient free memory exists.

NNG_ENOTSUP

HTTP not supported.