Index of Section 3 Manual Pages
| Interix / SUA | ne_set_expect100.3 | Interix / SUA |
NE_SET_USERAGENT(3) neon API reference NE_SET_USERAGENT(3)
NAME
ne_set_useragent, ne_set_persist, ne_set_read_timeout,
ne_set_expect100 - common settings for HTTP sessions
SYNOPSIS
#include
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 conform-
ing to RFC2616's product token grammar; of the form "Prod-
uct/Version".
By default neon will use a persistent connection whenever
possible. For specific applications, or for debugging pur-
poses, it is sometimes useful to disable persistent con-
nections. The ne_set_persist function will disable persis-
tent connections if passed a flag parameter of 0, and will
enable them otherwise.
When neon reads from a socket, by default the read opera-
tion 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 num-
ber 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 re-
sponse 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.
Warning
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-con-
tinue support.
EXAMPLES
Set a user-agent string:
ne_session *sess = ne_session_create(...);
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:
ne_session *sess = ne_session_create(...);
ne_set_read_timeout(sess, 30);
AUTHOR
Joe Orton .
neon 0.24.7 5 July 2004 NE_SET_USERAGENT(3)