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); 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.

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-continue support. 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);
Joe Orton <neon@webdav.org>.