---
name: "ne_set_read_timeout"
section: "3"
platform: "linux"
package: "libneon27-dev"
version: "0.34.2-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ne_set_useragent"
---

# ne\_set\_read\_timeout(3)

common properties for HTTP sessions

Part of [ne\_set\_useragent(3)](/ne_set_useragent/3.md).

## NAME

ne\_set\_useragent, ne\_set\_read\_timeout, ne\_set\_connect\_timeout, ne\_get\_scheme, ne\_get\_server\_hostport - common properties for HTTP sessions

## SYNOPSIS

```
#include <ne_session.h>
```

**void ne\_set\_useragent(ne\_session \****session***, const char \****product***);**

**void ne\_set\_read\_timeout(ne\_session \****session***, int** *timeout***);**

**void ne\_set\_connect\_timeout(ne\_session \****session***, int** *timeout***);**

**const char \*ne\_get\_scheme(ne\_sesssion \****session***);**

**const char \*ne\_get\_server\_hostport(ne\_sesssion \****session***);**

## 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".

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.

When a connection is being established to a server, normally only the system's TCP timeout handling will apply. To configure a specific (and probably shorter) timeout, the **ne\_set\_connect\_timeout** can be used, giving the desired number of seconds as the *timeout* parameter. If 0 is passed, then the default behaviour of using the system TCP timeout will be used.

The scheme used to initially create the session will be returned by **ne\_get\_scheme**.

The hostport pair with which the session is associated will be returned by the **ne\_get\_server\_hostport**; for example www.example.com:8080. Note that the :port will be omitted if the default port for the scheme is used.

## EXAMPLES

Set a user-agent string:

```
ne_session *sess = ne_session_create(...);
ne_set_useragent(sess, "MyApplication/2.1");
```

Set a 30 second read timeout:

```
ne_session *sess = ne_session_create(...);
ne_set_read_timeout(sess, 30);
```

## SEE ALSO

ne\_session\_create, ne\_set\_session\_flag.

## COPYRIGHT

Copyright © 2001-2024 Joe Orton\
