= nng_http_server_stop(3http)
//
// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
// copy of which should be located in the distribution where this
// file was obtained (LICENSE.txt).  A copy of the license may also be
// found online at https://opensource.org/licenses/MIT.
//

== NAME

nng_http_server_stop - stop HTTP server

== SYNOPSIS

[source, c]
----
#include <nng/nng.h>
#include <nng/supplemental/http/http.h>

void nng_http_server_stop(nng_http_server *server);
----

== DESCRIPTION

The `nng_http_server_stop()` undoes the effect of
`<<nng_http_server_start.3http#,nng_http_server_start()>>`.

Each call by
`<<nng_http_server_start.3http#,nng_http_server_start()>>` acts as reference
count, and should be matched by a call to `nng_http_server_stop()`.
When the reference count drops to zero, then the server is actually stopped,
and existing open connections to it are closed.

This function does not wait for the connections to close.

NOTE: Once the server instance is actually stopped, it cannot be started again,
and any future calls to `<<nng_http_server_hold.3http#,nng_http_server_hold()>>`
will return a new instance of the server.
It is expected that the caller will follow this function call with a call to
`<<nng_http_server_release.3http#,nng_http_server_release()>>`.


== RETURN VALUES

None.

== ERRORS

None.

== SEE ALSO

[.text-left]
<<nng_http_server_hold.3http#,nng_http_server_hold(3http)>>,
<<nng_http_server_release.3http#,nng_http_server_release(3http)>>,
<<nng_http_server_start.3http#,nng_http_server_start(3http)>>,
<<nng.7#,nng(7)>>
