Name

ne_session_create, ne_close_connection, ne_session_proxy, ne_session_destroy — set up HTTP sessions

Synopsis

#include <ne_session.h>

ne_session *ne_session_create(const char *scheme, const char *hostname, int port);

void ne_session_proxy(ne_session *session, const char *hostname, int port);

void ne_close_connection(ne_sesssion *session);

void ne_session_destroy(ne_session *session);

Description

An ne_session object represents an HTTP session, which groups a set of HTTP requests made to a certain server. Any requests made using the session can use a persistent connection, and share cached authentication credentials and other common attributes.

A new HTTP session is created using ne_session_create, giving the hostname and port of the server to use, along with the scheme used to contact the server (usually "http").

To enable SSL/TLS for the session, pass the string "https" as the scheme parameter, and either register a certificate verification function (see ne_ssl_set_verify) or load the appropriate CA certificate (see ne_ssl_load_ca, ne_ssl_load_default_ca).

If an HTTP proxy server should be used for the session, ne_session_proxy must be called giving the hostname and port on which to contact the proxy.

If it is known that the session will not be used for a significant period of time, ne_close_connection can be called to close the connection, if one remains open. Use of this function is entirely optional, but it must not be called if there is a request active using the session.

Once a session has been completed, ne_session_destroy must be called to destroy the resources associated with the session. Any subsequent use of the session pointer produces undefined behaviour.

Return Values

ne_session_create will return a pointer to a new session object (and never NULL).

Examples

Create and destroy a session:

ne_session *sess;
sess = ne_session_create("http", "host.example.com", 80);
/* ... use sess ... */
ne_session_destroy(sess);

See Also

ne_ssl_set_verify, ne_ssl_load_ca