1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_useragent</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refresphdr.html" title="ne_get_response_header"><link rel="next" href="refreqflags.html" title="ne_set_request_flag"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_set_useragent</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refresphdr.html">Prev</a>��</td><th width="60%" align="center">neon API reference</th><td width="20%" align="right">��<a accesskey="n" href="refreqflags.html">Next</a></td></tr></table><hr></div><div class="refentry" title="ne_set_useragent"><a name="refopts"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_useragent, ne_set_read_timeout, ne_set_connect_timeout, ne_get_scheme, ne_get_server_hostport ��� common properties for HTTP sessions</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_useragent</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td>��</td><td>const char *<var class="pdparam">product</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">��</div><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_read_timeout</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td>��</td><td>int <var class="pdparam">timeout</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">��</div><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_connect_timeout</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td>��</td><td>int <var class="pdparam">timeout</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">��</div><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_scheme</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">��</div><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_server_hostport</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">��</div></div></div><div class="refsect1" title="Description"><a name="id457624"></a><h2>Description</h2><p>The <code class="literal">User-Agent</code> request header is used 2to identify the software which generated the request for statistical 3or debugging purposes. neon does not send a 4<code class="literal">User-Agent</code> header unless a call is made to the 5<code class="function">ne_set_useragent</code>. 6<code class="function">ne_set_useragent</code> must be passed a product string 7conforming to RFC2616's product token grammar; of the form 8<code class="literal">"Product/Version"</code>.</p><p>When neon reads from a socket, by default the read 9operation will time out after 60 seconds, and the request will fail 10giving an <span class="errorcode">NE_TIMEOUT</span> error. To configure this 11timeout interval, call <code class="function">ne_set_read_timeout</code> giving 12the desired number of seconds as the <code class="parameter">timeout</code> 13parameter.</p><p>When a connection is being established to a server, 14 normally only the system's TCP timeout handling will apply. 15 To configure a specific (and probably shorter) timeout, the 16 <code class="function">ne_set_connect_timeout</code> can be used, 17 giving the desired number of seconds as the 18 <code class="parameter">timeout</code> parameter. If 19 <code class="literal">0</code> is passed, then the default behaviour of 20 using the system TCP timeout will be used.</p><p>The scheme used to initially create the session will be 21 returned by <code class="function">ne_get_scheme</code>.</p><p>The hostport pair with which the session is associated 22 will be returned by the 23 <code class="function">ne_get_server_hostport</code>; for example 24 <code class="literal">www.example.com:8080</code>. Note that the 25 <code class="literal">:port</code> will be omitted if the default port 26 for the scheme is used.</p></div><div class="refsect1" title="Examples"><a name="id457734"></a><h2>Examples</h2><p>Set a user-agent string:</p><pre class="programlisting">ne_session *sess = ne_session_create(...); 27ne_set_useragent(sess, "MyApplication/2.1");</pre><p>Set a 30 second read timeout:</p><pre class="programlisting">ne_session *sess = ne_session_create(...); 28ne_set_read_timeout(sess, 30);</pre></div><div class="refsect1" title="See also"><a name="id457759"></a><h2>See also</h2><p><a class="xref" href="refsess.html#ne_session_create">ne_session_create</a>, <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refresphdr.html">Prev</a>��</td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right">��<a accesskey="n" href="refreqflags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_get_response_header��</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">��ne_set_request_flag</td></tr></table></div></body></html> 29