ne_set_useragent
3
ne_set_useragent
ne_set_persist
ne_set_read_timeout
ne_set_expect100
common settings for HTTP sessions
#include <ne_session.h>
void ne_set_useragent
ne_session *session
const char *product
void ne_set_persist
ne_session *session
int flag
void ne_set_read_timeout
ne_session *session
int timeout
void ne_set_expect100
ne_session *session
int flag
Description
The User-Agent request header is used
to identify the software which generated the request for statistical
or debugging purposes. neon does not send a
User-Agent header unless a call is made to the
ne_set_useragent.
ne_set_useragent must be passed a product string
conforming to RFC2616's product token grammar; of the form
"Product/Version".
By default neon will use a persistent connection
whenever possible. For specific applications, or for debugging
purposes, it is sometimes useful to disable persistent connections.
The ne_set_persist function will disable
persistent connections if passed a flag
parameter of 0, and will enable them
otherwise.
When neon reads from a socket, by default the read
operation will time out after 60 seconds, and the request will fail
giving an NE_TIMEOUT error. To configure this
timeout interval, call ne_set_read_timeout giving
the desired number of seconds as the timeout
parameter.
An extension introduced in the HTTP/1.1 specification
was the use of the Expect: 100-continue header.
This header allows an HTTP client to be informed of the expected
response status before the request message body is sent: a useful
optimisation for situations where a large message body is to be sent.
The ne_set_expect100 function can be used to
enable this feature by passing the flag
parameter as any non-zero integer.
Unfortunately, if this header is sent to a server which
is not fully compliant with the HTTP/1.1 specification, a deadlock
occurs resulting in a temporarily "hung" connection. neon will
recover gracefully from this situation, but only after a 15 second
timeout. It is highly recommended that this option is not enabled
unless it is known that the server in use correctly implements
Expect: 100-continue support.
Examples
Set a user-agent string:
&egsess;
ne_set_useragent(sess, "MyApplication/2.1");
Disable use of persistent connections:
ne_session *sess = ne_session_create(...);
ne_set_persist(sess, 0);
Set a 30 second read timeout:
&egsess;
ne_set_read_timeout(sess, 30);