Imported Upstream version 0.1.16
[platform/upstream/libnice.git] / docs / reference / libnice / html / libnice-StunMessage.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>StunMessage: libnice Reference Manual</title>
6 <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
7 <link rel="home" href="index.html" title="libnice Reference Manual">
8 <link rel="up" href="ch03.html" title="">
9 <link rel="prev" href="libnice-StunAgent.html" title="StunAgent">
10 <link rel="next" href="libnice-STUN-Constants.html" title="STUN Constants">
11 <meta name="generator" content="GTK-Doc V1.29 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16 <td width="100%" align="left" class="shortcuts">
17 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
18                   <a href="#libnice-StunMessage.description" class="shortcut">Description</a></span>
19 </td>
20 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
21 <td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22 <td><a accesskey="p" href="libnice-StunAgent.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23 <td><a accesskey="n" href="libnice-STUN-Constants.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
24 </tr></table>
25 <div class="refentry">
26 <a name="libnice-StunMessage"></a><div class="titlepage"></div>
27 <div class="refnamediv"><table width="100%"><tr>
28 <td valign="top">
29 <h2><span class="refentrytitle"><a name="libnice-StunMessage.top_of_page"></a>StunMessage</span></h2>
30 <p>StunMessage — STUN messages parsing and formatting functions</p>
31 </td>
32 <td class="gallery_image" valign="top" align="right"></td>
33 </tr></table></div>
34 <div class="refsect1">
35 <a name="libnice-StunMessage.stability-level"></a><h2>Stability Level</h2>
36 <acronym title="The intention of a Stable interface is to enable arbitrary third parties to
37 develop applications to these interfaces, release them, and have confidence that
38 they will run on all minor releases of the product (after the one in which the
39 interface was introduced, and within the same major release). Even at a major
40 release, incompatible changes are expected to be rare, and to have strong
41 justifications.
42 "><span class="acronym">Stable</span></acronym>, unless otherwise indicated
43 </div>
44 <div class="refsect1">
45 <a name="libnice-StunMessage.functions"></a><h2>Functions</h2>
46 <div class="informaltable"><table class="informaltable" width="100%" border="0">
47 <colgroup>
48 <col width="150px" class="functions_return">
49 <col class="functions_name">
50 </colgroup>
51 <tbody>
52 <tr>
53 <td class="function_type">
54 <span class="returnvalue">bool</span>
55 </td>
56 <td class="function_name">
57 <a class="link" href="libnice-StunMessage.html#stun-message-init" title="stun_message_init ()">stun_message_init</a> <span class="c_punctuation">()</span>
58 </td>
59 </tr>
60 <tr>
61 <td class="function_type">
62 <span class="returnvalue">uint16_t</span>
63 </td>
64 <td class="function_name">
65 <a class="link" href="libnice-StunMessage.html#stun-message-length" title="stun_message_length ()">stun_message_length</a> <span class="c_punctuation">()</span>
66 </td>
67 </tr>
68 <tr>
69 <td class="function_type">const <span class="returnvalue">void</span> *
70 </td>
71 <td class="function_name">
72 <a class="link" href="libnice-StunMessage.html#stun-message-find" title="stun_message_find ()">stun_message_find</a> <span class="c_punctuation">()</span>
73 </td>
74 </tr>
75 <tr>
76 <td class="function_type">
77 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
78 </td>
79 <td class="function_name">
80 <a class="link" href="libnice-StunMessage.html#stun-message-find-flag" title="stun_message_find_flag ()">stun_message_find_flag</a> <span class="c_punctuation">()</span>
81 </td>
82 </tr>
83 <tr>
84 <td class="function_type">
85 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
86 </td>
87 <td class="function_name">
88 <a class="link" href="libnice-StunMessage.html#stun-message-find32" title="stun_message_find32 ()">stun_message_find32</a> <span class="c_punctuation">()</span>
89 </td>
90 </tr>
91 <tr>
92 <td class="function_type">
93 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
94 </td>
95 <td class="function_name">
96 <a class="link" href="libnice-StunMessage.html#stun-message-find64" title="stun_message_find64 ()">stun_message_find64</a> <span class="c_punctuation">()</span>
97 </td>
98 </tr>
99 <tr>
100 <td class="function_type">
101 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
102 </td>
103 <td class="function_name">
104 <a class="link" href="libnice-StunMessage.html#stun-message-find-string" title="stun_message_find_string ()">stun_message_find_string</a> <span class="c_punctuation">()</span>
105 </td>
106 </tr>
107 <tr>
108 <td class="function_type">
109 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
110 </td>
111 <td class="function_name">
112 <a class="link" href="libnice-StunMessage.html#stun-message-find-addr" title="stun_message_find_addr ()">stun_message_find_addr</a> <span class="c_punctuation">()</span>
113 </td>
114 </tr>
115 <tr>
116 <td class="function_type">
117 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
118 </td>
119 <td class="function_name">
120 <a class="link" href="libnice-StunMessage.html#stun-message-find-xor-addr" title="stun_message_find_xor_addr ()">stun_message_find_xor_addr</a> <span class="c_punctuation">()</span>
121 </td>
122 </tr>
123 <tr>
124 <td class="function_type">
125 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
126 </td>
127 <td class="function_name">
128 <a class="link" href="libnice-StunMessage.html#stun-message-find-xor-addr-full" title="stun_message_find_xor_addr_full ()">stun_message_find_xor_addr_full</a> <span class="c_punctuation">()</span>
129 </td>
130 </tr>
131 <tr>
132 <td class="function_type">
133 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
134 </td>
135 <td class="function_name">
136 <a class="link" href="libnice-StunMessage.html#stun-message-find-error" title="stun_message_find_error ()">stun_message_find_error</a> <span class="c_punctuation">()</span>
137 </td>
138 </tr>
139 <tr>
140 <td class="function_type">
141 <span class="returnvalue">void</span> *
142 </td>
143 <td class="function_name">
144 <a class="link" href="libnice-StunMessage.html#stun-message-append" title="stun_message_append ()">stun_message_append</a> <span class="c_punctuation">()</span>
145 </td>
146 </tr>
147 <tr>
148 <td class="function_type">
149 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
150 </td>
151 <td class="function_name">
152 <a class="link" href="libnice-StunMessage.html#stun-message-append-bytes" title="stun_message_append_bytes ()">stun_message_append_bytes</a> <span class="c_punctuation">()</span>
153 </td>
154 </tr>
155 <tr>
156 <td class="function_type">
157 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
158 </td>
159 <td class="function_name">
160 <a class="link" href="libnice-StunMessage.html#stun-message-append-flag" title="stun_message_append_flag ()">stun_message_append_flag</a> <span class="c_punctuation">()</span>
161 </td>
162 </tr>
163 <tr>
164 <td class="function_type">
165 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
166 </td>
167 <td class="function_name">
168 <a class="link" href="libnice-StunMessage.html#stun-message-append32" title="stun_message_append32 ()">stun_message_append32</a> <span class="c_punctuation">()</span>
169 </td>
170 </tr>
171 <tr>
172 <td class="function_type">
173 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
174 </td>
175 <td class="function_name">
176 <a class="link" href="libnice-StunMessage.html#stun-message-append64" title="stun_message_append64 ()">stun_message_append64</a> <span class="c_punctuation">()</span>
177 </td>
178 </tr>
179 <tr>
180 <td class="function_type">
181 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
182 </td>
183 <td class="function_name">
184 <a class="link" href="libnice-StunMessage.html#stun-message-append-string" title="stun_message_append_string ()">stun_message_append_string</a> <span class="c_punctuation">()</span>
185 </td>
186 </tr>
187 <tr>
188 <td class="function_type">
189 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
190 </td>
191 <td class="function_name">
192 <a class="link" href="libnice-StunMessage.html#stun-message-append-addr" title="stun_message_append_addr ()">stun_message_append_addr</a> <span class="c_punctuation">()</span>
193 </td>
194 </tr>
195 <tr>
196 <td class="function_type">
197 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
198 </td>
199 <td class="function_name">
200 <a class="link" href="libnice-StunMessage.html#stun-message-append-xor-addr" title="stun_message_append_xor_addr ()">stun_message_append_xor_addr</a> <span class="c_punctuation">()</span>
201 </td>
202 </tr>
203 <tr>
204 <td class="function_type">
205 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
206 </td>
207 <td class="function_name">
208 <a class="link" href="libnice-StunMessage.html#stun-message-append-xor-addr-full" title="stun_message_append_xor_addr_full ()">stun_message_append_xor_addr_full</a> <span class="c_punctuation">()</span>
209 </td>
210 </tr>
211 <tr>
212 <td class="function_type">
213 <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
214 </td>
215 <td class="function_name">
216 <a class="link" href="libnice-StunMessage.html#stun-message-append-error" title="stun_message_append_error ()">stun_message_append_error</a> <span class="c_punctuation">()</span>
217 </td>
218 </tr>
219 <tr>
220 <td class="function_type">
221 <span class="returnvalue">int</span>
222 </td>
223 <td class="function_name">
224 <a class="link" href="libnice-StunMessage.html#stun-message-validate-buffer-length" title="stun_message_validate_buffer_length ()">stun_message_validate_buffer_length</a> <span class="c_punctuation">()</span>
225 </td>
226 </tr>
227 <tr>
228 <td class="function_type">
229 <span class="returnvalue">ssize_t</span>
230 </td>
231 <td class="function_name">
232 <a class="link" href="libnice-StunMessage.html#stun-message-validate-buffer-length-fast" title="stun_message_validate_buffer_length_fast ()">stun_message_validate_buffer_length_fast</a> <span class="c_punctuation">()</span>
233 </td>
234 </tr>
235 <tr>
236 <td class="function_type">
237 <span class="returnvalue">void</span>
238 </td>
239 <td class="function_name">
240 <a class="link" href="libnice-StunMessage.html#stun-message-id" title="stun_message_id ()">stun_message_id</a> <span class="c_punctuation">()</span>
241 </td>
242 </tr>
243 <tr>
244 <td class="function_type">
245 <a class="link" href="libnice-StunMessage.html#StunClass" title="enum StunClass"><span class="returnvalue">StunClass</span></a>
246 </td>
247 <td class="function_name">
248 <a class="link" href="libnice-StunMessage.html#stun-message-get-class" title="stun_message_get_class ()">stun_message_get_class</a> <span class="c_punctuation">()</span>
249 </td>
250 </tr>
251 <tr>
252 <td class="function_type">
253 <a class="link" href="libnice-StunMessage.html#StunMethod" title="enum StunMethod"><span class="returnvalue">StunMethod</span></a>
254 </td>
255 <td class="function_name">
256 <a class="link" href="libnice-StunMessage.html#stun-message-get-method" title="stun_message_get_method ()">stun_message_get_method</a> <span class="c_punctuation">()</span>
257 </td>
258 </tr>
259 <tr>
260 <td class="function_type">
261 <span class="returnvalue">bool</span>
262 </td>
263 <td class="function_name">
264 <a class="link" href="libnice-StunMessage.html#stun-message-has-attribute" title="stun_message_has_attribute ()">stun_message_has_attribute</a> <span class="c_punctuation">()</span>
265 </td>
266 </tr>
267 <tr>
268 <td class="function_type">
269 <span class="returnvalue">bool</span>
270 </td>
271 <td class="function_name">
272 <a class="link" href="libnice-StunMessage.html#stun-message-has-cookie" title="stun_message_has_cookie ()">stun_message_has_cookie</a> <span class="c_punctuation">()</span>
273 </td>
274 </tr>
275 <tr>
276 <td class="function_type">
277 <span class="returnvalue">bool</span>
278 </td>
279 <td class="function_name">
280 <a class="link" href="libnice-StunMessage.html#stun-optional" title="stun_optional ()">stun_optional</a> <span class="c_punctuation">()</span>
281 </td>
282 </tr>
283 <tr>
284 <td class="function_type">const <span class="returnvalue">char</span> *
285 </td>
286 <td class="function_name">
287 <a class="link" href="libnice-StunMessage.html#stun-strerror" title="stun_strerror ()">stun_strerror</a> <span class="c_punctuation">()</span>
288 </td>
289 </tr>
290 </tbody>
291 </table></div>
292 </div>
293 <div class="refsect1">
294 <a name="libnice-StunMessage.other"></a><h2>Types and Values</h2>
295 <div class="informaltable"><table class="informaltable" width="100%" border="0">
296 <colgroup>
297 <col width="150px" class="name">
298 <col class="description">
299 </colgroup>
300 <tbody>
301 <tr>
302 <td class="datatype_keyword">struct</td>
303 <td class="function_name"><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage">StunMessage</a></td>
304 </tr>
305 <tr>
306 <td class="datatype_keyword">enum</td>
307 <td class="function_name"><a class="link" href="libnice-StunMessage.html#StunClass" title="enum StunClass">StunClass</a></td>
308 </tr>
309 <tr>
310 <td class="datatype_keyword">enum</td>
311 <td class="function_name"><a class="link" href="libnice-StunMessage.html#StunMethod" title="enum StunMethod">StunMethod</a></td>
312 </tr>
313 <tr>
314 <td class="datatype_keyword">enum</td>
315 <td class="function_name"><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute">StunAttribute</a></td>
316 </tr>
317 <tr>
318 <td class="typedef_keyword">typedef</td>
319 <td class="function_name"><a class="link" href="libnice-StunMessage.html#StunTransactionId" title="StunTransactionId">StunTransactionId</a></td>
320 </tr>
321 <tr>
322 <td class="datatype_keyword">enum</td>
323 <td class="function_name"><a class="link" href="libnice-StunMessage.html#StunError" title="enum StunError">StunError</a></td>
324 </tr>
325 <tr>
326 <td class="datatype_keyword">enum</td>
327 <td class="function_name"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn">StunMessageReturn</a></td>
328 </tr>
329 <tr>
330 <td class="define_keyword">#define</td>
331 <td class="function_name"><a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-BUFFER-INCOMPLETE:CAPS" title="STUN_MESSAGE_BUFFER_INCOMPLETE">STUN_MESSAGE_BUFFER_INCOMPLETE</a></td>
332 </tr>
333 <tr>
334 <td class="define_keyword">#define</td>
335 <td class="function_name"><a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-BUFFER-INVALID:CAPS" title="STUN_MESSAGE_BUFFER_INVALID">STUN_MESSAGE_BUFFER_INVALID</a></td>
336 </tr>
337 <tr>
338 <td class="datatype_keyword"> </td>
339 <td class="function_name"><a class="link" href="libnice-StunMessage.html#StunInputVector" title="StunInputVector">StunInputVector</a></td>
340 </tr>
341 </tbody>
342 </table></div>
343 </div>
344 <div class="refsect1">
345 <a name="libnice-StunMessage.includes"></a><h2>Includes</h2>
346 <pre class="synopsis">#include &lt;stun/stunmessage.h&gt;
347 </pre>
348 </div>
349 <div class="refsect1">
350 <a name="libnice-StunMessage.description"></a><h2>Description</h2>
351 <p>The STUN Messages API allows you to create STUN messages easily as well as to
352 parse existing messages.</p>
353 </div>
354 <div class="refsect1">
355 <a name="libnice-StunMessage.functions_details"></a><h2>Functions</h2>
356 <div class="refsect2">
357 <a name="stun-message-init"></a><h3>stun_message_init ()</h3>
358 <pre class="programlisting"><span class="returnvalue">bool</span>
359 stun_message_init (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
360                    <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunClass" title="enum StunClass"><span class="type">StunClass</span></a> c</code></em>,
361                    <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMethod" title="enum StunMethod"><span class="type">StunMethod</span></a> m</code></em>,
362                    <em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunTransactionId" title="StunTransactionId"><span class="type">StunTransactionId</span></a> id</code></em>);</pre>
363 <p>Initializes a STUN message buffer, with no attributes.</p>
364 <div class="refsect3">
365 <a name="stun-message-init.parameters"></a><h4>Parameters</h4>
366 <div class="informaltable"><table class="informaltable" width="100%" border="0">
367 <colgroup>
368 <col width="150px" class="parameters_name">
369 <col class="parameters_description">
370 <col width="200px" class="parameters_annotations">
371 </colgroup>
372 <tbody>
373 <tr>
374 <td class="parameter_name"><p>msg</p></td>
375 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> to initialize</p></td>
376 <td class="parameter_annotations"> </td>
377 </tr>
378 <tr>
379 <td class="parameter_name"><p>c</p></td>
380 <td class="parameter_description"><p>STUN message class (host byte order)</p></td>
381 <td class="parameter_annotations"> </td>
382 </tr>
383 <tr>
384 <td class="parameter_name"><p>m</p></td>
385 <td class="parameter_description"><p>STUN message method (host byte order)</p></td>
386 <td class="parameter_annotations"> </td>
387 </tr>
388 <tr>
389 <td class="parameter_name"><p>id</p></td>
390 <td class="parameter_description"><p>16-bytes transaction ID</p></td>
391 <td class="parameter_annotations"> </td>
392 </tr>
393 </tbody>
394 </table></div>
395 </div>
396 <div class="refsect3">
397 <a name="stun-message-init.returns"></a><h4>Returns</h4>
398 <p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the initialization was successful</p>
399 </div>
400 </div>
401 <hr>
402 <div class="refsect2">
403 <a name="stun-message-length"></a><h3>stun_message_length ()</h3>
404 <pre class="programlisting"><span class="returnvalue">uint16_t</span>
405 stun_message_length (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>);</pre>
406 <p>Get the length of the message (including the header)</p>
407 <div class="refsect3">
408 <a name="stun-message-length.parameters"></a><h4>Parameters</h4>
409 <div class="informaltable"><table class="informaltable" width="100%" border="0">
410 <colgroup>
411 <col width="150px" class="parameters_name">
412 <col class="parameters_description">
413 <col width="200px" class="parameters_annotations">
414 </colgroup>
415 <tbody><tr>
416 <td class="parameter_name"><p>msg</p></td>
417 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
418 <td class="parameter_annotations"> </td>
419 </tr></tbody>
420 </table></div>
421 </div>
422 <div class="refsect3">
423 <a name="stun-message-length.returns"></a><h4>Returns</h4>
424 <p> The length of the message</p>
425 </div>
426 </div>
427 <hr>
428 <div class="refsect2">
429 <a name="stun-message-find"></a><h3>stun_message_find ()</h3>
430 <pre class="programlisting">const <span class="returnvalue">void</span> *
431 stun_message_find (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
432                    <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
433                    <em class="parameter"><code><span class="type">uint16_t</span> *palen</code></em>);</pre>
434 <p>Finds an attribute in a STUN message and fetches its content</p>
435 <div class="refsect3">
436 <a name="stun-message-find.parameters"></a><h4>Parameters</h4>
437 <div class="informaltable"><table class="informaltable" width="100%" border="0">
438 <colgroup>
439 <col width="150px" class="parameters_name">
440 <col class="parameters_description">
441 <col width="200px" class="parameters_annotations">
442 </colgroup>
443 <tbody>
444 <tr>
445 <td class="parameter_name"><p>msg</p></td>
446 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
447 <td class="parameter_annotations"> </td>
448 </tr>
449 <tr>
450 <td class="parameter_name"><p>type</p></td>
451 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to find</p></td>
452 <td class="parameter_annotations"> </td>
453 </tr>
454 <tr>
455 <td class="parameter_name"><p>palen</p></td>
456 <td class="parameter_description"><p>A pointer to store the length of the attribute</p></td>
457 <td class="parameter_annotations"> </td>
458 </tr>
459 </tbody>
460 </table></div>
461 </div>
462 <div class="refsect3">
463 <a name="stun-message-find.returns"></a><h4>Returns</h4>
464 <p> A pointer to the start of the attribute payload if found,
465 otherwise NULL.</p>
466 </div>
467 </div>
468 <hr>
469 <div class="refsect2">
470 <a name="stun-message-find-flag"></a><h3>stun_message_find_flag ()</h3>
471 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
472 stun_message_find_flag (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
473                         <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>);</pre>
474 <p>Looks for a flag attribute within a valid STUN message.</p>
475 <div class="refsect3">
476 <a name="stun-message-find-flag.parameters"></a><h4>Parameters</h4>
477 <div class="informaltable"><table class="informaltable" width="100%" border="0">
478 <colgroup>
479 <col width="150px" class="parameters_name">
480 <col class="parameters_description">
481 <col width="200px" class="parameters_annotations">
482 </colgroup>
483 <tbody>
484 <tr>
485 <td class="parameter_name"><p>msg</p></td>
486 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
487 <td class="parameter_annotations"> </td>
488 </tr>
489 <tr>
490 <td class="parameter_name"><p>type</p></td>
491 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to find</p></td>
492 <td class="parameter_annotations"> </td>
493 </tr>
494 </tbody>
495 </table></div>
496 </div>
497 <div class="refsect3">
498 <a name="stun-message-find-flag.returns"></a><h4>Returns</h4>
499 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
500 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the attribute's size is not zero.</p>
501 </div>
502 </div>
503 <hr>
504 <div class="refsect2">
505 <a name="stun-message-find32"></a><h3>stun_message_find32 ()</h3>
506 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
507 stun_message_find32 (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
508                      <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
509                      <em class="parameter"><code><span class="type">uint32_t</span> *pval</code></em>);</pre>
510 <p>Extracts a 32-bits attribute from a STUN message.</p>
511 <div class="refsect3">
512 <a name="stun-message-find32.parameters"></a><h4>Parameters</h4>
513 <div class="informaltable"><table class="informaltable" width="100%" border="0">
514 <colgroup>
515 <col width="150px" class="parameters_name">
516 <col class="parameters_description">
517 <col width="200px" class="parameters_annotations">
518 </colgroup>
519 <tbody>
520 <tr>
521 <td class="parameter_name"><p>msg</p></td>
522 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
523 <td class="parameter_annotations"> </td>
524 </tr>
525 <tr>
526 <td class="parameter_name"><p>type</p></td>
527 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to find</p></td>
528 <td class="parameter_annotations"> </td>
529 </tr>
530 <tr>
531 <td class="parameter_name"><p>pval</p></td>
532 <td class="parameter_description"><p>A pointer where to store the value (host byte order)</p></td>
533 <td class="parameter_annotations"> </td>
534 </tr>
535 </tbody>
536 </table></div>
537 </div>
538 <div class="refsect3">
539 <a name="stun-message-find32.returns"></a><h4>Returns</h4>
540 <p>  A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
541 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the attribute's size is not
542 4 bytes.</p>
543 </div>
544 </div>
545 <hr>
546 <div class="refsect2">
547 <a name="stun-message-find64"></a><h3>stun_message_find64 ()</h3>
548 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
549 stun_message_find64 (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
550                      <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
551                      <em class="parameter"><code><span class="type">uint64_t</span> *pval</code></em>);</pre>
552 <p>Extracts a 64-bits attribute from a STUN message.</p>
553 <div class="refsect3">
554 <a name="stun-message-find64.parameters"></a><h4>Parameters</h4>
555 <div class="informaltable"><table class="informaltable" width="100%" border="0">
556 <colgroup>
557 <col width="150px" class="parameters_name">
558 <col class="parameters_description">
559 <col width="200px" class="parameters_annotations">
560 </colgroup>
561 <tbody>
562 <tr>
563 <td class="parameter_name"><p>msg</p></td>
564 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
565 <td class="parameter_annotations"> </td>
566 </tr>
567 <tr>
568 <td class="parameter_name"><p>type</p></td>
569 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to find</p></td>
570 <td class="parameter_annotations"> </td>
571 </tr>
572 <tr>
573 <td class="parameter_name"><p>pval</p></td>
574 <td class="parameter_description"><p>A pointer where to store the value (host byte order)</p></td>
575 <td class="parameter_annotations"> </td>
576 </tr>
577 </tbody>
578 </table></div>
579 </div>
580 <div class="refsect3">
581 <a name="stun-message-find64.returns"></a><h4>Returns</h4>
582 <p>  A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
583 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the attribute's size is not
584 8 bytes.</p>
585 </div>
586 </div>
587 <hr>
588 <div class="refsect2">
589 <a name="stun-message-find-string"></a><h3>stun_message_find_string ()</h3>
590 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
591 stun_message_find_string (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
592                           <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
593                           <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
594                           <em class="parameter"><code><span class="type">size_t</span> buflen</code></em>);</pre>
595 <p>Extracts an UTF-8 string from a valid STUN message.</p>
596 <div class="refsect3">
597 <a name="stun-message-find-string.parameters"></a><h4>Parameters</h4>
598 <div class="informaltable"><table class="informaltable" width="100%" border="0">
599 <colgroup>
600 <col width="150px" class="parameters_name">
601 <col class="parameters_description">
602 <col width="200px" class="parameters_annotations">
603 </colgroup>
604 <tbody>
605 <tr>
606 <td class="parameter_name"><p>msg</p></td>
607 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
608 <td class="parameter_annotations"> </td>
609 </tr>
610 <tr>
611 <td class="parameter_name"><p>type</p></td>
612 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to find</p></td>
613 <td class="parameter_annotations"> </td>
614 </tr>
615 <tr>
616 <td class="parameter_name"><p>buf</p></td>
617 <td class="parameter_description"><p>A pointer where to store the data</p></td>
618 <td class="parameter_annotations"> </td>
619 </tr>
620 <tr>
621 <td class="parameter_name"><p>buflen</p></td>
622 <td class="parameter_description"><p>The length of the buffer</p></td>
623 <td class="parameter_annotations"> </td>
624 </tr>
625 </tbody>
626 </table></div>
627 </div>
628 <div class="refsect3">
629 <a name="stun-message-find-string.returns"></a><h4>Returns</h4>
630 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
631 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the attribute is improperly
632 encoded
633 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-NOT-ENOUGH-SPACE:CAPS"><code class="literal">STUN_MESSAGE_RETURN_NOT_ENOUGH_SPACE</code></a> is return if the buffer size is too
634 small to hold the string</p>
635 <div class="note"><p>
636 The string will be nul-terminated.
637 </p></div>
638 </div>
639 </div>
640 <hr>
641 <div class="refsect2">
642 <a name="stun-message-find-addr"></a><h3>stun_message_find_addr ()</h3>
643 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
644 stun_message_find_addr (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
645                         <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
646                         <em class="parameter"><code><span class="type">struct sockaddr_storage</span> *addr</code></em>,
647                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#socklen-t"><span class="type">socklen_t</span></a> *addrlen</code></em>);</pre>
648 <p>Extracts a network address attribute from a STUN message.</p>
649 <div class="refsect3">
650 <a name="stun-message-find-addr.parameters"></a><h4>Parameters</h4>
651 <div class="informaltable"><table class="informaltable" width="100%" border="0">
652 <colgroup>
653 <col width="150px" class="parameters_name">
654 <col class="parameters_description">
655 <col width="200px" class="parameters_annotations">
656 </colgroup>
657 <tbody>
658 <tr>
659 <td class="parameter_name"><p>msg</p></td>
660 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
661 <td class="parameter_annotations"> </td>
662 </tr>
663 <tr>
664 <td class="parameter_name"><p>type</p></td>
665 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to find</p></td>
666 <td class="parameter_annotations"> </td>
667 </tr>
668 <tr>
669 <td class="parameter_name"><p>addr</p></td>
670 <td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#sockaddr"><span class="type">sockaddr</span></a> to be filled</p></td>
671 <td class="parameter_annotations"> </td>
672 </tr>
673 <tr>
674 <td class="parameter_name"><p>addrlen</p></td>
675 <td class="parameter_description"><p>The size of the <em class="parameter"><code>addr</code></em>
676 variable. Must be set to the size of the
677 <em class="parameter"><code>addr</code></em>
678 socket address and will be set to the size of the extracted socket
679 address.</p></td>
680 <td class="parameter_annotations"> </td>
681 </tr>
682 </tbody>
683 </table></div>
684 </div>
685 <div class="refsect3">
686 <a name="stun-message-find-addr.returns"></a><h4>Returns</h4>
687 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
688 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the attribute payload size is
689 wrong or if the <em class="parameter"><code>addrlen</code></em>
690 is too small
691 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-UNSUPPORTED-ADDRESS:CAPS"><code class="literal">STUN_MESSAGE_RETURN_UNSUPPORTED_ADDRESS</code></a> if the address family is unknown.</p>
692 </div>
693 </div>
694 <hr>
695 <div class="refsect2">
696 <a name="stun-message-find-xor-addr"></a><h3>stun_message_find_xor_addr ()</h3>
697 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
698 stun_message_find_xor_addr (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
699                             <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
700                             <em class="parameter"><code><span class="type">struct sockaddr_storage</span> *addr</code></em>,
701                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#socklen-t"><span class="type">socklen_t</span></a> *addrlen</code></em>);</pre>
702 <p>Extracts an obfuscated network address attribute from a STUN message.</p>
703 <div class="refsect3">
704 <a name="stun-message-find-xor-addr.parameters"></a><h4>Parameters</h4>
705 <div class="informaltable"><table class="informaltable" width="100%" border="0">
706 <colgroup>
707 <col width="150px" class="parameters_name">
708 <col class="parameters_description">
709 <col width="200px" class="parameters_annotations">
710 </colgroup>
711 <tbody>
712 <tr>
713 <td class="parameter_name"><p>msg</p></td>
714 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
715 <td class="parameter_annotations"> </td>
716 </tr>
717 <tr>
718 <td class="parameter_name"><p>type</p></td>
719 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to find</p></td>
720 <td class="parameter_annotations"> </td>
721 </tr>
722 <tr>
723 <td class="parameter_name"><p>addr</p></td>
724 <td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#sockaddr"><span class="type">sockaddr</span></a> to be filled</p></td>
725 <td class="parameter_annotations"> </td>
726 </tr>
727 <tr>
728 <td class="parameter_name"><p>addrlen</p></td>
729 <td class="parameter_description"><p>The size of the <em class="parameter"><code>addr</code></em>
730 variable. Must be set to the size of the
731 <em class="parameter"><code>addr</code></em>
732 socket address and will be set to the size of the
733 extracted socket address.</p></td>
734 <td class="parameter_annotations"> </td>
735 </tr>
736 </tbody>
737 </table></div>
738 </div>
739 <div class="refsect3">
740 <a name="stun-message-find-xor-addr.returns"></a><h4>Returns</h4>
741 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
742 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the attribute payload size is
743 wrong or if the <em class="parameter"><code>addrlen</code></em>
744 is too small
745 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-UNSUPPORTED-ADDRESS:CAPS"><code class="literal">STUN_MESSAGE_RETURN_UNSUPPORTED_ADDRESS</code></a> if the address family is unknown.</p>
746 </div>
747 </div>
748 <hr>
749 <div class="refsect2">
750 <a name="stun-message-find-xor-addr-full"></a><h3>stun_message_find_xor_addr_full ()</h3>
751 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
752 stun_message_find_xor_addr_full (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
753                                  <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
754                                  <em class="parameter"><code><span class="type">struct sockaddr_storage</span> *addr</code></em>,
755                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#socklen-t"><span class="type">socklen_t</span></a> *addrlen</code></em>,
756                                  <em class="parameter"><code><span class="type">uint32_t</span> magic_cookie</code></em>);</pre>
757 <p>Extracts an obfuscated network address attribute from a STUN message.</p>
758 <div class="refsect3">
759 <a name="stun-message-find-xor-addr-full.parameters"></a><h4>Parameters</h4>
760 <div class="informaltable"><table class="informaltable" width="100%" border="0">
761 <colgroup>
762 <col width="150px" class="parameters_name">
763 <col class="parameters_description">
764 <col width="200px" class="parameters_annotations">
765 </colgroup>
766 <tbody>
767 <tr>
768 <td class="parameter_name"><p>msg</p></td>
769 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
770 <td class="parameter_annotations"> </td>
771 </tr>
772 <tr>
773 <td class="parameter_name"><p>type</p></td>
774 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to find</p></td>
775 <td class="parameter_annotations"> </td>
776 </tr>
777 <tr>
778 <td class="parameter_name"><p>addr</p></td>
779 <td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#sockaddr"><span class="type">sockaddr</span></a> to be filled</p></td>
780 <td class="parameter_annotations"> </td>
781 </tr>
782 <tr>
783 <td class="parameter_name"><p>addrlen</p></td>
784 <td class="parameter_description"><p>The size of the <em class="parameter"><code>addr</code></em>
785 variable. Must be set to the size of the
786 <em class="parameter"><code>addr</code></em>
787 socket address and will be set to the size of the
788 extracted socket address.</p></td>
789 <td class="parameter_annotations"> </td>
790 </tr>
791 <tr>
792 <td class="parameter_name"><p>magic_cookie</p></td>
793 <td class="parameter_description"><p>The magic cookie to use to XOR the address.</p></td>
794 <td class="parameter_annotations"> </td>
795 </tr>
796 </tbody>
797 </table></div>
798 </div>
799 <div class="refsect3">
800 <a name="stun-message-find-xor-addr-full.returns"></a><h4>Returns</h4>
801 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
802 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the attribute payload size is
803 wrong or if the <em class="parameter"><code>addrlen</code></em>
804 is too small
805 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-UNSUPPORTED-ADDRESS:CAPS"><code class="literal">STUN_MESSAGE_RETURN_UNSUPPORTED_ADDRESS</code></a> if the address family is unknown.</p>
806 </div>
807 </div>
808 <hr>
809 <div class="refsect2">
810 <a name="stun-message-find-error"></a><h3>stun_message_find_error ()</h3>
811 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
812 stun_message_find_error (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
813                          <em class="parameter"><code><span class="type">int</span> *code</code></em>);</pre>
814 <p>Extract the error response code from a STUN message</p>
815 <div class="refsect3">
816 <a name="stun-message-find-error.parameters"></a><h4>Parameters</h4>
817 <div class="informaltable"><table class="informaltable" width="100%" border="0">
818 <colgroup>
819 <col width="150px" class="parameters_name">
820 <col class="parameters_description">
821 <col width="200px" class="parameters_annotations">
822 </colgroup>
823 <tbody>
824 <tr>
825 <td class="parameter_name"><p>msg</p></td>
826 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
827 <td class="parameter_annotations"> </td>
828 </tr>
829 <tr>
830 <td class="parameter_name"><p>code</p></td>
831 <td class="parameter_description"><p>A  pointer where to store the value</p></td>
832 <td class="parameter_annotations"> </td>
833 </tr>
834 </tbody>
835 </table></div>
836 </div>
837 <div class="refsect3">
838 <a name="stun-message-find-error.returns"></a><h4>Returns</h4>
839 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
840 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the value is invalid</p>
841 </div>
842 </div>
843 <hr>
844 <div class="refsect2">
845 <a name="stun-message-append"></a><h3>stun_message_append ()</h3>
846 <pre class="programlisting"><span class="returnvalue">void</span> *
847 stun_message_append (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
848                      <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
849                      <em class="parameter"><code><span class="type">size_t</span> length</code></em>);</pre>
850 <p>Reserves room for appending an attribute to an unfinished STUN message.</p>
851 <div class="refsect3">
852 <a name="stun-message-append.parameters"></a><h4>Parameters</h4>
853 <div class="informaltable"><table class="informaltable" width="100%" border="0">
854 <colgroup>
855 <col width="150px" class="parameters_name">
856 <col class="parameters_description">
857 <col width="200px" class="parameters_annotations">
858 </colgroup>
859 <tbody>
860 <tr>
861 <td class="parameter_name"><p>msg</p></td>
862 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
863 <td class="parameter_annotations"> </td>
864 </tr>
865 <tr>
866 <td class="parameter_name"><p>type</p></td>
867 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to append</p></td>
868 <td class="parameter_annotations"> </td>
869 </tr>
870 <tr>
871 <td class="parameter_name"><p>length</p></td>
872 <td class="parameter_description"><p>The length of the attribute</p></td>
873 <td class="parameter_annotations"> </td>
874 </tr>
875 </tbody>
876 </table></div>
877 </div>
878 <div class="refsect3">
879 <a name="stun-message-append.returns"></a><h4>Returns</h4>
880 <p> A pointer to an unitialized buffer of <em class="parameter"><code>length</code></em>
881 bytes to
882 where the attribute payload must be written, or NULL if there is not
883 enough room in the STUN message buffer.</p>
884 </div>
885 </div>
886 <hr>
887 <div class="refsect2">
888 <a name="stun-message-append-bytes"></a><h3>stun_message_append_bytes ()</h3>
889 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
890 stun_message_append_bytes (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
891                            <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
892                            <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
893                            <em class="parameter"><code><span class="type">size_t</span> len</code></em>);</pre>
894 <p>Appends a binary value to a STUN message</p>
895 <div class="refsect3">
896 <a name="stun-message-append-bytes.parameters"></a><h4>Parameters</h4>
897 <div class="informaltable"><table class="informaltable" width="100%" border="0">
898 <colgroup>
899 <col width="150px" class="parameters_name">
900 <col class="parameters_description">
901 <col width="200px" class="parameters_annotations">
902 </colgroup>
903 <tbody>
904 <tr>
905 <td class="parameter_name"><p>msg</p></td>
906 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
907 <td class="parameter_annotations"> </td>
908 </tr>
909 <tr>
910 <td class="parameter_name"><p>type</p></td>
911 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to append</p></td>
912 <td class="parameter_annotations"> </td>
913 </tr>
914 <tr>
915 <td class="parameter_name"><p>data</p></td>
916 <td class="parameter_description"><p>The data to append</p></td>
917 <td class="parameter_annotations"> </td>
918 </tr>
919 <tr>
920 <td class="parameter_name"><p>len</p></td>
921 <td class="parameter_description"><p>The length of the attribute</p></td>
922 <td class="parameter_annotations"> </td>
923 </tr>
924 </tbody>
925 </table></div>
926 </div>
927 <div class="refsect3">
928 <a name="stun-message-append-bytes.returns"></a><h4>Returns</h4>
929 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.</p>
930 </div>
931 </div>
932 <hr>
933 <div class="refsect2">
934 <a name="stun-message-append-flag"></a><h3>stun_message_append_flag ()</h3>
935 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
936 stun_message_append_flag (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
937                           <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>);</pre>
938 <p>Appends an empty flag attribute to a STUN message</p>
939 <div class="refsect3">
940 <a name="stun-message-append-flag.parameters"></a><h4>Parameters</h4>
941 <div class="informaltable"><table class="informaltable" width="100%" border="0">
942 <colgroup>
943 <col width="150px" class="parameters_name">
944 <col class="parameters_description">
945 <col width="200px" class="parameters_annotations">
946 </colgroup>
947 <tbody>
948 <tr>
949 <td class="parameter_name"><p>msg</p></td>
950 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
951 <td class="parameter_annotations"> </td>
952 </tr>
953 <tr>
954 <td class="parameter_name"><p>type</p></td>
955 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to append</p></td>
956 <td class="parameter_annotations"> </td>
957 </tr>
958 </tbody>
959 </table></div>
960 </div>
961 <div class="refsect3">
962 <a name="stun-message-append-flag.returns"></a><h4>Returns</h4>
963 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.</p>
964 </div>
965 </div>
966 <hr>
967 <div class="refsect2">
968 <a name="stun-message-append32"></a><h3>stun_message_append32 ()</h3>
969 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
970 stun_message_append32 (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
971                        <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
972                        <em class="parameter"><code><span class="type">uint32_t</span> value</code></em>);</pre>
973 <p>Appends a 32-bits value attribute to a STUN message</p>
974 <div class="refsect3">
975 <a name="stun-message-append32.parameters"></a><h4>Parameters</h4>
976 <div class="informaltable"><table class="informaltable" width="100%" border="0">
977 <colgroup>
978 <col width="150px" class="parameters_name">
979 <col class="parameters_description">
980 <col width="200px" class="parameters_annotations">
981 </colgroup>
982 <tbody>
983 <tr>
984 <td class="parameter_name"><p>msg</p></td>
985 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
986 <td class="parameter_annotations"> </td>
987 </tr>
988 <tr>
989 <td class="parameter_name"><p>type</p></td>
990 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to append</p></td>
991 <td class="parameter_annotations"> </td>
992 </tr>
993 <tr>
994 <td class="parameter_name"><p>value</p></td>
995 <td class="parameter_description"><p>The value to append (host byte order)</p></td>
996 <td class="parameter_annotations"> </td>
997 </tr>
998 </tbody>
999 </table></div>
1000 </div>
1001 <div class="refsect3">
1002 <a name="stun-message-append32.returns"></a><h4>Returns</h4>
1003 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.</p>
1004 </div>
1005 </div>
1006 <hr>
1007 <div class="refsect2">
1008 <a name="stun-message-append64"></a><h3>stun_message_append64 ()</h3>
1009 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
1010 stun_message_append64 (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
1011                        <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
1012                        <em class="parameter"><code><span class="type">uint64_t</span> value</code></em>);</pre>
1013 <p>Appends a 64-bits value attribute to a STUN message</p>
1014 <div class="refsect3">
1015 <a name="stun-message-append64.parameters"></a><h4>Parameters</h4>
1016 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1017 <colgroup>
1018 <col width="150px" class="parameters_name">
1019 <col class="parameters_description">
1020 <col width="200px" class="parameters_annotations">
1021 </colgroup>
1022 <tbody>
1023 <tr>
1024 <td class="parameter_name"><p>msg</p></td>
1025 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1026 <td class="parameter_annotations"> </td>
1027 </tr>
1028 <tr>
1029 <td class="parameter_name"><p>type</p></td>
1030 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to append</p></td>
1031 <td class="parameter_annotations"> </td>
1032 </tr>
1033 <tr>
1034 <td class="parameter_name"><p>value</p></td>
1035 <td class="parameter_description"><p>The value to append (host byte order)</p></td>
1036 <td class="parameter_annotations"> </td>
1037 </tr>
1038 </tbody>
1039 </table></div>
1040 </div>
1041 <div class="refsect3">
1042 <a name="stun-message-append64.returns"></a><h4>Returns</h4>
1043 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.</p>
1044 </div>
1045 </div>
1046 <hr>
1047 <div class="refsect2">
1048 <a name="stun-message-append-string"></a><h3>stun_message_append_string ()</h3>
1049 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
1050 stun_message_append_string (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
1051                             <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
1052                             <em class="parameter"><code>const <span class="type">char</span> *str</code></em>);</pre>
1053 <p>Adds an attribute from a nul-terminated string to a STUN message</p>
1054 <div class="refsect3">
1055 <a name="stun-message-append-string.parameters"></a><h4>Parameters</h4>
1056 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1057 <colgroup>
1058 <col width="150px" class="parameters_name">
1059 <col class="parameters_description">
1060 <col width="200px" class="parameters_annotations">
1061 </colgroup>
1062 <tbody>
1063 <tr>
1064 <td class="parameter_name"><p>msg</p></td>
1065 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1066 <td class="parameter_annotations"> </td>
1067 </tr>
1068 <tr>
1069 <td class="parameter_name"><p>type</p></td>
1070 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to append</p></td>
1071 <td class="parameter_annotations"> </td>
1072 </tr>
1073 <tr>
1074 <td class="parameter_name"><p>str</p></td>
1075 <td class="parameter_description"><p>The string to append</p></td>
1076 <td class="parameter_annotations"> </td>
1077 </tr>
1078 </tbody>
1079 </table></div>
1080 </div>
1081 <div class="refsect3">
1082 <a name="stun-message-append-string.returns"></a><h4>Returns</h4>
1083 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.</p>
1084 </div>
1085 </div>
1086 <hr>
1087 <div class="refsect2">
1088 <a name="stun-message-append-addr"></a><h3>stun_message_append_addr ()</h3>
1089 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
1090 stun_message_append_addr (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
1091                           <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
1092                           <em class="parameter"><code>const <span class="type">struct sockaddr</span> *addr</code></em>,
1093                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#socklen-t"><span class="type">socklen_t</span></a> addrlen</code></em>);</pre>
1094 <p>Append a network address attribute to a STUN message</p>
1095 <div class="refsect3">
1096 <a name="stun-message-append-addr.parameters"></a><h4>Parameters</h4>
1097 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1098 <colgroup>
1099 <col width="150px" class="parameters_name">
1100 <col class="parameters_description">
1101 <col width="200px" class="parameters_annotations">
1102 </colgroup>
1103 <tbody>
1104 <tr>
1105 <td class="parameter_name"><p>msg</p></td>
1106 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1107 <td class="parameter_annotations"> </td>
1108 </tr>
1109 <tr>
1110 <td class="parameter_name"><p>type</p></td>
1111 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to append</p></td>
1112 <td class="parameter_annotations"> </td>
1113 </tr>
1114 <tr>
1115 <td class="parameter_name"><p>addr</p></td>
1116 <td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#sockaddr"><span class="type">sockaddr</span></a> to be append</p></td>
1117 <td class="parameter_annotations"> </td>
1118 </tr>
1119 <tr>
1120 <td class="parameter_name"><p>addrlen</p></td>
1121 <td class="parameter_description"><p>The size of the <em class="parameter"><code>addr</code></em>
1122 variable.</p></td>
1123 <td class="parameter_annotations"> </td>
1124 </tr>
1125 </tbody>
1126 </table></div>
1127 </div>
1128 <div class="refsect3">
1129 <a name="stun-message-append-addr.returns"></a><h4>Returns</h4>
1130 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
1131 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the <em class="parameter"><code>addrlen</code></em>
1132 is too small
1133 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-UNSUPPORTED-ADDRESS:CAPS"><code class="literal">STUN_MESSAGE_RETURN_UNSUPPORTED_ADDRESS</code></a> if the address family is unknown.</p>
1134 </div>
1135 </div>
1136 <hr>
1137 <div class="refsect2">
1138 <a name="stun-message-append-xor-addr"></a><h3>stun_message_append_xor_addr ()</h3>
1139 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
1140 stun_message_append_xor_addr (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
1141                               <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
1142                               <em class="parameter"><code>const <span class="type">struct sockaddr_storage</span> *addr</code></em>,
1143                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#socklen-t"><span class="type">socklen_t</span></a> addrlen</code></em>);</pre>
1144 <p>Append an obfuscated network address attribute to a STUN message</p>
1145 <div class="refsect3">
1146 <a name="stun-message-append-xor-addr.parameters"></a><h4>Parameters</h4>
1147 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1148 <colgroup>
1149 <col width="150px" class="parameters_name">
1150 <col class="parameters_description">
1151 <col width="200px" class="parameters_annotations">
1152 </colgroup>
1153 <tbody>
1154 <tr>
1155 <td class="parameter_name"><p>msg</p></td>
1156 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1157 <td class="parameter_annotations"> </td>
1158 </tr>
1159 <tr>
1160 <td class="parameter_name"><p>type</p></td>
1161 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to append</p></td>
1162 <td class="parameter_annotations"> </td>
1163 </tr>
1164 <tr>
1165 <td class="parameter_name"><p>addr</p></td>
1166 <td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#sockaddr"><span class="type">sockaddr</span></a> to be append</p></td>
1167 <td class="parameter_annotations"> </td>
1168 </tr>
1169 <tr>
1170 <td class="parameter_name"><p>addrlen</p></td>
1171 <td class="parameter_description"><p>The size of the <em class="parameter"><code>addr</code></em>
1172 variable.</p></td>
1173 <td class="parameter_annotations"> </td>
1174 </tr>
1175 </tbody>
1176 </table></div>
1177 </div>
1178 <div class="refsect3">
1179 <a name="stun-message-append-xor-addr.returns"></a><h4>Returns</h4>
1180 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
1181 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the <em class="parameter"><code>addrlen</code></em>
1182 is too small
1183 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-UNSUPPORTED-ADDRESS:CAPS"><code class="literal">STUN_MESSAGE_RETURN_UNSUPPORTED_ADDRESS</code></a> if the address family is unknown.</p>
1184 </div>
1185 </div>
1186 <hr>
1187 <div class="refsect2">
1188 <a name="stun-message-append-xor-addr-full"></a><h3>stun_message_append_xor_addr_full ()</h3>
1189 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
1190 stun_message_append_xor_addr_full (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
1191                                    <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>,
1192                                    <em class="parameter"><code>const <span class="type">struct sockaddr_storage</span> *addr</code></em>,
1193                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#socklen-t"><span class="type">socklen_t</span></a> addrlen</code></em>,
1194                                    <em class="parameter"><code><span class="type">uint32_t</span> magic_cookie</code></em>);</pre>
1195 <p>Append an obfuscated network address attribute from a STUN message.</p>
1196 <div class="refsect3">
1197 <a name="stun-message-append-xor-addr-full.parameters"></a><h4>Parameters</h4>
1198 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1199 <colgroup>
1200 <col width="150px" class="parameters_name">
1201 <col class="parameters_description">
1202 <col width="200px" class="parameters_annotations">
1203 </colgroup>
1204 <tbody>
1205 <tr>
1206 <td class="parameter_name"><p>msg</p></td>
1207 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1208 <td class="parameter_annotations"> </td>
1209 </tr>
1210 <tr>
1211 <td class="parameter_name"><p>type</p></td>
1212 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to append</p></td>
1213 <td class="parameter_annotations"> </td>
1214 </tr>
1215 <tr>
1216 <td class="parameter_name"><p>addr</p></td>
1217 <td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/camel/camel-camel-net-utils.html#sockaddr"><span class="type">sockaddr</span></a> to be append</p></td>
1218 <td class="parameter_annotations"> </td>
1219 </tr>
1220 <tr>
1221 <td class="parameter_name"><p>addrlen</p></td>
1222 <td class="parameter_description"><p>The size of the <em class="parameter"><code>addr</code></em>
1223 variable.</p></td>
1224 <td class="parameter_annotations"> </td>
1225 </tr>
1226 <tr>
1227 <td class="parameter_name"><p>magic_cookie</p></td>
1228 <td class="parameter_description"><p>The magic cookie to use to XOR the address.</p></td>
1229 <td class="parameter_annotations"> </td>
1230 </tr>
1231 </tbody>
1232 </table></div>
1233 </div>
1234 <div class="refsect3">
1235 <a name="stun-message-append-xor-addr-full.returns"></a><h4>Returns</h4>
1236 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.
1237 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-INVALID:CAPS"><code class="literal">STUN_MESSAGE_RETURN_INVALID</code></a> is returned if the <em class="parameter"><code>addrlen</code></em>
1238 is too small
1239 <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-RETURN-UNSUPPORTED-ADDRESS:CAPS"><code class="literal">STUN_MESSAGE_RETURN_UNSUPPORTED_ADDRESS</code></a> if the address family is unknown.</p>
1240 </div>
1241 </div>
1242 <hr>
1243 <div class="refsect2">
1244 <a name="stun-message-append-error"></a><h3>stun_message_append_error ()</h3>
1245 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="returnvalue">StunMessageReturn</span></a>
1246 stun_message_append_error (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
1247                            <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunError" title="enum StunError"><span class="type">StunError</span></a> code</code></em>);</pre>
1248 <p>Appends the ERROR-CODE attribute to the STUN message and fills it according
1249 to <span class="type">code</span></p>
1250 <div class="refsect3">
1251 <a name="stun-message-append-error.parameters"></a><h4>Parameters</h4>
1252 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1253 <colgroup>
1254 <col width="150px" class="parameters_name">
1255 <col class="parameters_description">
1256 <col width="200px" class="parameters_annotations">
1257 </colgroup>
1258 <tbody>
1259 <tr>
1260 <td class="parameter_name"><p>msg</p></td>
1261 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1262 <td class="parameter_annotations"> </td>
1263 </tr>
1264 <tr>
1265 <td class="parameter_name"><p>code</p></td>
1266 <td class="parameter_description"><p>The error code value</p></td>
1267 <td class="parameter_annotations"> </td>
1268 </tr>
1269 </tbody>
1270 </table></div>
1271 </div>
1272 <div class="refsect3">
1273 <a name="stun-message-append-error.returns"></a><h4>Returns</h4>
1274 <p> A <a class="link" href="libnice-StunMessage.html#StunMessageReturn" title="enum StunMessageReturn"><span class="type">StunMessageReturn</span></a> value.</p>
1275 </div>
1276 </div>
1277 <hr>
1278 <div class="refsect2">
1279 <a name="stun-message-validate-buffer-length"></a><h3>stun_message_validate_buffer_length ()</h3>
1280 <pre class="programlisting"><span class="returnvalue">int</span>
1281 stun_message_validate_buffer_length (<em class="parameter"><code>const <span class="type">uint8_t</span> *msg</code></em>,
1282                                      <em class="parameter"><code><span class="type">size_t</span> length</code></em>,
1283                                      <em class="parameter"><code><span class="type">bool</span> has_padding</code></em>);</pre>
1284 <p>This function will take a data buffer and will try to validate whether it is
1285 a STUN message or if it's not or if it's an incomplete STUN message and will
1286 provide us with the length of the STUN message.</p>
1287 <div class="refsect3">
1288 <a name="stun-message-validate-buffer-length.parameters"></a><h4>Parameters</h4>
1289 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1290 <colgroup>
1291 <col width="150px" class="parameters_name">
1292 <col class="parameters_description">
1293 <col width="200px" class="parameters_annotations">
1294 </colgroup>
1295 <tbody>
1296 <tr>
1297 <td class="parameter_name"><p>msg</p></td>
1298 <td class="parameter_description"><p>The buffer to validate</p></td>
1299 <td class="parameter_annotations"> </td>
1300 </tr>
1301 <tr>
1302 <td class="parameter_name"><p>length</p></td>
1303 <td class="parameter_description"><p>The length of the buffer</p></td>
1304 <td class="parameter_annotations"> </td>
1305 </tr>
1306 <tr>
1307 <td class="parameter_name"><p>has_padding</p></td>
1308 <td class="parameter_description"><p>Set TRUE if attributes should be padded to multiple of 4 bytes</p></td>
1309 <td class="parameter_annotations"> </td>
1310 </tr>
1311 </tbody>
1312 </table></div>
1313 </div>
1314 <div class="refsect3">
1315 <a name="stun-message-validate-buffer-length.returns"></a><h4>Returns</h4>
1316 <p> The length of the valid STUN message in the buffer.</p>
1317 <p> See also: <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-BUFFER-INCOMPLETE:CAPS" title="STUN_MESSAGE_BUFFER_INCOMPLETE"><span class="type">STUN_MESSAGE_BUFFER_INCOMPLETE</span></a> </p>
1318 <p> See also: <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-BUFFER-INVALID:CAPS" title="STUN_MESSAGE_BUFFER_INVALID"><span class="type">STUN_MESSAGE_BUFFER_INVALID</span></a> </p>
1319 </div>
1320 </div>
1321 <hr>
1322 <div class="refsect2">
1323 <a name="stun-message-validate-buffer-length-fast"></a><h3>stun_message_validate_buffer_length_fast ()</h3>
1324 <pre class="programlisting"><span class="returnvalue">ssize_t</span>
1325 stun_message_validate_buffer_length_fast
1326                                (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunInputVector" title="StunInputVector"><span class="type">StunInputVector</span></a> *buffers</code></em>,
1327                                 <em class="parameter"><code><span class="type">int</span> n_buffers</code></em>,
1328                                 <em class="parameter"><code><span class="type">size_t</span> total_length</code></em>,
1329                                 <em class="parameter"><code><span class="type">bool</span> has_padding</code></em>);</pre>
1330 <p>Quickly validate whether the message in the given <em class="parameter"><code>buffers</code></em>
1331  is potentially a
1332 valid STUN message, an incomplete STUN message, or if it’s definitely not one
1333 at all.</p>
1334 <p>This is designed as a first-pass validation only, and does not check the
1335 message’s attributes for validity. If this function returns success, the
1336 buffers can be compacted and a more thorough validation can be performed
1337 using <a class="link" href="libnice-StunMessage.html#stun-message-validate-buffer-length" title="stun_message_validate_buffer_length ()"><code class="function">stun_message_validate_buffer_length()</code></a>. If it fails, the buffers
1338 definitely do not contain a complete, valid STUN message.</p>
1339 <div class="refsect3">
1340 <a name="stun-message-validate-buffer-length-fast.parameters"></a><h4>Parameters</h4>
1341 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1342 <colgroup>
1343 <col width="150px" class="parameters_name">
1344 <col class="parameters_description">
1345 <col width="200px" class="parameters_annotations">
1346 </colgroup>
1347 <tbody>
1348 <tr>
1349 <td class="parameter_name"><p>buffers</p></td>
1350 <td class="parameter_description"><p>array of contiguous
1351 <a href="libnice-StunMessage.html#StunInputVector"><span class="type">StunInputVectors</span></a> containing already-received message data. </p></td>
1352 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_buffers][<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym> caller-allocated]</span></td>
1353 </tr>
1354 <tr>
1355 <td class="parameter_name"><p>n_buffers</p></td>
1356 <td class="parameter_description"><p>number of entries in <em class="parameter"><code>buffers</code></em>
1357 or if -1 , then buffers is
1358 terminated by a <a class="link" href="libnice-StunMessage.html#StunInputVector" title="StunInputVector"><span class="type">StunInputVector</span></a> with the buffer pointer being <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
1359 <td class="parameter_annotations"> </td>
1360 </tr>
1361 <tr>
1362 <td class="parameter_name"><p>total_length</p></td>
1363 <td class="parameter_description"><p>total number of valid bytes stored consecutively in <em class="parameter"><code>buffers</code></em>
1364 </p></td>
1365 <td class="parameter_annotations"> </td>
1366 </tr>
1367 <tr>
1368 <td class="parameter_name"><p>has_padding</p></td>
1369 <td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if attributes should be padded to 4-byte boundaries</p></td>
1370 <td class="parameter_annotations"> </td>
1371 </tr>
1372 </tbody>
1373 </table></div>
1374 </div>
1375 <div class="refsect3">
1376 <a name="stun-message-validate-buffer-length-fast.returns"></a><h4>Returns</h4>
1377 <p> The length of the valid STUN message in the buffer, or zero or -1 on
1378 failure</p>
1379 <p> See also: <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-BUFFER-INCOMPLETE:CAPS" title="STUN_MESSAGE_BUFFER_INCOMPLETE"><span class="type">STUN_MESSAGE_BUFFER_INCOMPLETE</span></a> </p>
1380 <p> See also: <a class="link" href="libnice-StunMessage.html#STUN-MESSAGE-BUFFER-INVALID:CAPS" title="STUN_MESSAGE_BUFFER_INVALID"><span class="type">STUN_MESSAGE_BUFFER_INVALID</span></a> </p>
1381 </div>
1382 <p class="since">Since: <a class="link" href="ix10.html#api-index-0.1.5">0.1.5</a></p>
1383 </div>
1384 <hr>
1385 <div class="refsect2">
1386 <a name="stun-message-id"></a><h3>stun_message_id ()</h3>
1387 <pre class="programlisting"><span class="returnvalue">void</span>
1388 stun_message_id (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
1389                  <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunTransactionId" title="StunTransactionId"><span class="type">StunTransactionId</span></a> id</code></em>);</pre>
1390 <p>Retreive the STUN transaction id from a STUN message</p>
1391 <div class="refsect3">
1392 <a name="stun-message-id.parameters"></a><h4>Parameters</h4>
1393 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1394 <colgroup>
1395 <col width="150px" class="parameters_name">
1396 <col class="parameters_description">
1397 <col width="200px" class="parameters_annotations">
1398 </colgroup>
1399 <tbody>
1400 <tr>
1401 <td class="parameter_name"><p>msg</p></td>
1402 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1403 <td class="parameter_annotations"> </td>
1404 </tr>
1405 <tr>
1406 <td class="parameter_name"><p>id</p></td>
1407 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunTransactionId" title="StunTransactionId"><span class="type">StunTransactionId</span></a> to fill</p></td>
1408 <td class="parameter_annotations"> </td>
1409 </tr>
1410 </tbody>
1411 </table></div>
1412 </div>
1413 </div>
1414 <hr>
1415 <div class="refsect2">
1416 <a name="stun-message-get-class"></a><h3>stun_message_get_class ()</h3>
1417 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunClass" title="enum StunClass"><span class="returnvalue">StunClass</span></a>
1418 stun_message_get_class (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>);</pre>
1419 <p>Retreive the STUN class from a STUN message</p>
1420 <div class="refsect3">
1421 <a name="stun-message-get-class.parameters"></a><h4>Parameters</h4>
1422 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1423 <colgroup>
1424 <col width="150px" class="parameters_name">
1425 <col class="parameters_description">
1426 <col width="200px" class="parameters_annotations">
1427 </colgroup>
1428 <tbody><tr>
1429 <td class="parameter_name"><p>msg</p></td>
1430 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1431 <td class="parameter_annotations"> </td>
1432 </tr></tbody>
1433 </table></div>
1434 </div>
1435 <div class="refsect3">
1436 <a name="stun-message-get-class.returns"></a><h4>Returns</h4>
1437 <p> The <a class="link" href="libnice-StunMessage.html#StunClass" title="enum StunClass"><span class="type">StunClass</span></a></p>
1438 </div>
1439 </div>
1440 <hr>
1441 <div class="refsect2">
1442 <a name="stun-message-get-method"></a><h3>stun_message_get_method ()</h3>
1443 <pre class="programlisting"><a class="link" href="libnice-StunMessage.html#StunMethod" title="enum StunMethod"><span class="returnvalue">StunMethod</span></a>
1444 stun_message_get_method (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>);</pre>
1445 <p>Retreive the STUN method from a STUN message</p>
1446 <div class="refsect3">
1447 <a name="stun-message-get-method.parameters"></a><h4>Parameters</h4>
1448 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1449 <colgroup>
1450 <col width="150px" class="parameters_name">
1451 <col class="parameters_description">
1452 <col width="200px" class="parameters_annotations">
1453 </colgroup>
1454 <tbody><tr>
1455 <td class="parameter_name"><p>msg</p></td>
1456 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1457 <td class="parameter_annotations"> </td>
1458 </tr></tbody>
1459 </table></div>
1460 </div>
1461 <div class="refsect3">
1462 <a name="stun-message-get-method.returns"></a><h4>Returns</h4>
1463 <p> The <a class="link" href="libnice-StunMessage.html#StunMethod" title="enum StunMethod"><span class="type">StunMethod</span></a></p>
1464 </div>
1465 </div>
1466 <hr>
1467 <div class="refsect2">
1468 <a name="stun-message-has-attribute"></a><h3>stun_message_has_attribute ()</h3>
1469 <pre class="programlisting"><span class="returnvalue">bool</span>
1470 stun_message_has_attribute (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>,
1471                             <em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> type</code></em>);</pre>
1472 <p>Checks if an attribute is present within a STUN message.</p>
1473 <div class="refsect3">
1474 <a name="stun-message-has-attribute.parameters"></a><h4>Parameters</h4>
1475 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1476 <colgroup>
1477 <col width="150px" class="parameters_name">
1478 <col class="parameters_description">
1479 <col width="200px" class="parameters_annotations">
1480 </colgroup>
1481 <tbody>
1482 <tr>
1483 <td class="parameter_name"><p>msg</p></td>
1484 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1485 <td class="parameter_annotations"> </td>
1486 </tr>
1487 <tr>
1488 <td class="parameter_name"><p>type</p></td>
1489 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunAttribute" title="enum StunAttribute"><span class="type">StunAttribute</span></a> to look for</p></td>
1490 <td class="parameter_annotations"> </td>
1491 </tr>
1492 </tbody>
1493 </table></div>
1494 </div>
1495 <div class="refsect3">
1496 <a name="stun-message-has-attribute.returns"></a><h4>Returns</h4>
1497 <p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the attribute is found, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
1498 </div>
1499 </div>
1500 <hr>
1501 <div class="refsect2">
1502 <a name="stun-message-has-cookie"></a><h3>stun_message_has_cookie ()</h3>
1503 <pre class="programlisting"><span class="returnvalue">bool</span>
1504 stun_message_has_cookie (<em class="parameter"><code>const <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a> *msg</code></em>);</pre>
1505 <p>Checks if the STUN message has a RFC5389 compatible cookie</p>
1506 <div class="refsect3">
1507 <a name="stun-message-has-cookie.parameters"></a><h4>Parameters</h4>
1508 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1509 <colgroup>
1510 <col width="150px" class="parameters_name">
1511 <col class="parameters_description">
1512 <col width="200px" class="parameters_annotations">
1513 </colgroup>
1514 <tbody><tr>
1515 <td class="parameter_name"><p>msg</p></td>
1516 <td class="parameter_description"><p>The <a class="link" href="libnice-StunMessage.html#StunMessage" title="struct StunMessage"><span class="type">StunMessage</span></a></p></td>
1517 <td class="parameter_annotations"> </td>
1518 </tr></tbody>
1519 </table></div>
1520 </div>
1521 <div class="refsect3">
1522 <a name="stun-message-has-cookie.returns"></a><h4>Returns</h4>
1523 <p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the cookie is present, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
1524 </div>
1525 </div>
1526 <hr>
1527 <div class="refsect2">
1528 <a name="stun-optional"></a><h3>stun_optional ()</h3>
1529 <pre class="programlisting"><span class="returnvalue">bool</span>
1530 stun_optional (<em class="parameter"><code><span class="type">uint16_t</span> t</code></em>);</pre>
1531 <p>Helper function that checks whether a STUN attribute is a mandatory
1532 or an optional attribute</p>
1533 <div class="refsect3">
1534 <a name="stun-optional.parameters"></a><h4>Parameters</h4>
1535 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1536 <colgroup>
1537 <col width="150px" class="parameters_name">
1538 <col class="parameters_description">
1539 <col width="200px" class="parameters_annotations">
1540 </colgroup>
1541 <tbody><tr>
1542 <td class="parameter_name"><p>t</p></td>
1543 <td class="parameter_description"><p>An attribute type</p></td>
1544 <td class="parameter_annotations"> </td>
1545 </tr></tbody>
1546 </table></div>
1547 </div>
1548 <div class="refsect3">
1549 <a name="stun-optional.returns"></a><h4>Returns</h4>
1550 <p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the attribute is an optional one</p>
1551 </div>
1552 </div>
1553 <hr>
1554 <div class="refsect2">
1555 <a name="stun-strerror"></a><h3>stun_strerror ()</h3>
1556 <pre class="programlisting">const <span class="returnvalue">char</span> *
1557 stun_strerror (<em class="parameter"><code><a class="link" href="libnice-StunMessage.html#StunError" title="enum StunError"><span class="type">StunError</span></a> code</code></em>);</pre>
1558 <p>Transforms a STUN error-code into a human readable string</p>
1559 <div class="refsect3">
1560 <a name="stun-strerror.parameters"></a><h4>Parameters</h4>
1561 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1562 <colgroup>
1563 <col width="150px" class="parameters_name">
1564 <col class="parameters_description">
1565 <col width="200px" class="parameters_annotations">
1566 </colgroup>
1567 <tbody><tr>
1568 <td class="parameter_name"><p>code</p></td>
1569 <td class="parameter_description"><p>host-byte order error code</p></td>
1570 <td class="parameter_annotations"> </td>
1571 </tr></tbody>
1572 </table></div>
1573 </div>
1574 <div class="refsect3">
1575 <a name="stun-strerror.returns"></a><h4>Returns</h4>
1576 <p> A static pointer to a nul-terminated error message string.</p>
1577 </div>
1578 </div>
1579 </div>
1580 <div class="refsect1">
1581 <a name="libnice-StunMessage.other_details"></a><h2>Types and Values</h2>
1582 <div class="refsect2">
1583 <a name="StunMessage"></a><h3>struct StunMessage</h3>
1584 <pre class="programlisting">struct StunMessage {
1585   StunAgent *agent;
1586   uint8_t *buffer;
1587   size_t buffer_len;
1588   uint8_t *key;
1589   size_t key_len;
1590   uint8_t long_term_key[16];
1591   bool long_term_valid;
1592 };
1593 </pre>
1594 <p>This structure represents a STUN message</p>
1595 <div class="refsect3">
1596 <a name="StunMessage.members"></a><h4>Members</h4>
1597 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1598 <colgroup>
1599 <col width="300px" class="struct_members_name">
1600 <col class="struct_members_description">
1601 <col width="200px" class="struct_members_annotations">
1602 </colgroup>
1603 <tbody>
1604 <tr>
1605 <td class="struct_member_name"><p><a class="link" href="libnice-StunAgent.html#StunAgent" title="StunAgent"><span class="type">StunAgent</span></a> *<em class="structfield"><code><a name="StunMessage.agent"></a>agent</code></em>;</p></td>
1606 <td class="struct_member_description"><p>The agent that created or validated this message</p></td>
1607 <td class="struct_member_annotations"> </td>
1608 </tr>
1609 <tr>
1610 <td class="struct_member_name"><p><span class="type">uint8_t</span> *<em class="structfield"><code><a name="StunMessage.buffer"></a>buffer</code></em>;</p></td>
1611 <td class="struct_member_description"><p>The buffer containing the STUN message</p></td>
1612 <td class="struct_member_annotations"> </td>
1613 </tr>
1614 <tr>
1615 <td class="struct_member_name"><p><span class="type">size_t</span> <em class="structfield"><code><a name="StunMessage.buffer-len"></a>buffer_len</code></em>;</p></td>
1616 <td class="struct_member_description"><p>The length of the buffer (not the size of the message)</p></td>
1617 <td class="struct_member_annotations"> </td>
1618 </tr>
1619 <tr>
1620 <td class="struct_member_name"><p><span class="type">uint8_t</span> *<em class="structfield"><code><a name="StunMessage.key"></a>key</code></em>;</p></td>
1621 <td class="struct_member_description"><p>The short term credentials key to use for authentication validation
1622 or that was used to finalize this message</p></td>
1623 <td class="struct_member_annotations"> </td>
1624 </tr>
1625 <tr>
1626 <td class="struct_member_name"><p><span class="type">size_t</span> <em class="structfield"><code><a name="StunMessage.key-len"></a>key_len</code></em>;</p></td>
1627 <td class="struct_member_description"><p>The length of the associated key</p></td>
1628 <td class="struct_member_annotations"> </td>
1629 </tr>
1630 <tr>
1631 <td class="struct_member_name"><p><span class="type">uint8_t</span> <em class="structfield"><code><a name="StunMessage.long-term-key"></a>long_term_key</code></em>[16];</p></td>
1632 <td class="struct_member_description"><p>The long term credential key to use for authentication
1633 validation or that was used to finalize this message</p></td>
1634 <td class="struct_member_annotations"> </td>
1635 </tr>
1636 <tr>
1637 <td class="struct_member_name"><p><span class="type">bool</span> <em class="structfield"><code><a name="StunMessage.long-term-valid"></a>long_term_valid</code></em>;</p></td>
1638 <td class="struct_member_description"><p>Whether or not the <span class="type">long_term_key</span> variable contains valid
1639 data</p></td>
1640 <td class="struct_member_annotations"> </td>
1641 </tr>
1642 </tbody>
1643 </table></div>
1644 </div>
1645 </div>
1646 <hr>
1647 <div class="refsect2">
1648 <a name="StunClass"></a><h3>enum StunClass</h3>
1649 <p>This enum is used to represent the class of
1650 a STUN message, as defined in RFC5389</p>
1651 <div class="refsect3">
1652 <a name="StunClass.members"></a><h4>Members</h4>
1653 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1654 <colgroup>
1655 <col width="300px" class="enum_members_name">
1656 <col class="enum_members_description">
1657 <col width="200px" class="enum_members_annotations">
1658 </colgroup>
1659 <tbody>
1660 <tr>
1661 <td class="enum_member_name"><p><a name="STUN-REQUEST:CAPS"></a>STUN_REQUEST</p></td>
1662 <td class="enum_member_description">
1663 <p>A STUN Request message</p>
1664 </td>
1665 <td class="enum_member_annotations"> </td>
1666 </tr>
1667 <tr>
1668 <td class="enum_member_name"><p><a name="STUN-INDICATION:CAPS"></a>STUN_INDICATION</p></td>
1669 <td class="enum_member_description">
1670 <p>A STUN indication message</p>
1671 </td>
1672 <td class="enum_member_annotations"> </td>
1673 </tr>
1674 <tr>
1675 <td class="enum_member_name"><p><a name="STUN-RESPONSE:CAPS"></a>STUN_RESPONSE</p></td>
1676 <td class="enum_member_description">
1677 <p>A STUN Response message</p>
1678 </td>
1679 <td class="enum_member_annotations"> </td>
1680 </tr>
1681 <tr>
1682 <td class="enum_member_name"><p><a name="STUN-ERROR:CAPS"></a>STUN_ERROR</p></td>
1683 <td class="enum_member_description">
1684 <p>A STUN Error message</p>
1685 </td>
1686 <td class="enum_member_annotations"> </td>
1687 </tr>
1688 </tbody>
1689 </table></div>
1690 </div>
1691 </div>
1692 <hr>
1693 <div class="refsect2">
1694 <a name="StunMethod"></a><h3>enum StunMethod</h3>
1695 <p>This enum is used to represent the method of
1696 a STUN message, as defined by various RFCs</p>
1697 <div class="refsect3">
1698 <a name="StunMethod.members"></a><h4>Members</h4>
1699 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1700 <colgroup>
1701 <col width="300px" class="enum_members_name">
1702 <col class="enum_members_description">
1703 <col width="200px" class="enum_members_annotations">
1704 </colgroup>
1705 <tbody>
1706 <tr>
1707 <td class="enum_member_name"><p><a name="STUN-BINDING:CAPS"></a>STUN_BINDING</p></td>
1708 <td class="enum_member_description">
1709 <p>The Binding method as defined by the RFC5389</p>
1710 </td>
1711 <td class="enum_member_annotations"> </td>
1712 </tr>
1713 <tr>
1714 <td class="enum_member_name"><p><a name="STUN-SHARED-SECRET:CAPS"></a>STUN_SHARED_SECRET</p></td>
1715 <td class="enum_member_description">
1716 <p>The Shared-Secret method as defined by the RFC3489</p>
1717 </td>
1718 <td class="enum_member_annotations"> </td>
1719 </tr>
1720 <tr>
1721 <td class="enum_member_name"><p><a name="STUN-ALLOCATE:CAPS"></a>STUN_ALLOCATE</p></td>
1722 <td class="enum_member_description">
1723 <p>The Allocate method as defined by the TURN draft 12</p>
1724 </td>
1725 <td class="enum_member_annotations"> </td>
1726 </tr>
1727 <tr>
1728 <td class="enum_member_name"><p><a name="STUN-SET-ACTIVE-DST:CAPS"></a>STUN_SET_ACTIVE_DST</p></td>
1729 <td class="enum_member_description">
1730 <p>The Set-Active-Destination method as defined by
1731 the TURN draft 4</p>
1732 </td>
1733 <td class="enum_member_annotations"> </td>
1734 </tr>
1735 <tr>
1736 <td class="enum_member_name"><p><a name="STUN-REFRESH:CAPS"></a>STUN_REFRESH</p></td>
1737 <td class="enum_member_description">
1738 <p>The Refresh method as defined by the TURN draft 12</p>
1739 </td>
1740 <td class="enum_member_annotations"> </td>
1741 </tr>
1742 <tr>
1743 <td class="enum_member_name"><p><a name="STUN-SEND:CAPS"></a>STUN_SEND</p></td>
1744 <td class="enum_member_description">
1745 <p>The Send method as defined by the TURN draft 00</p>
1746 </td>
1747 <td class="enum_member_annotations"> </td>
1748 </tr>
1749 <tr>
1750 <td class="enum_member_name"><p><a name="STUN-CONNECT:CAPS"></a>STUN_CONNECT</p></td>
1751 <td class="enum_member_description">
1752 <p>The Connect method as defined by the TURN draft 4</p>
1753 </td>
1754 <td class="enum_member_annotations"> </td>
1755 </tr>
1756 <tr>
1757 <td class="enum_member_name"><p><a name="STUN-OLD-SET-ACTIVE-DST:CAPS"></a>STUN_OLD_SET_ACTIVE_DST</p></td>
1758 <td class="enum_member_description">
1759 <p>The older Set-Active-Destination method as
1760 defined by the TURN draft 0</p>
1761 </td>
1762 <td class="enum_member_annotations"> </td>
1763 </tr>
1764 <tr>
1765 <td class="enum_member_name"><p><a name="STUN-IND-SEND:CAPS"></a>STUN_IND_SEND</p></td>
1766 <td class="enum_member_description">
1767 <p>The Send method used in indication messages as defined
1768 by the TURN draft 12</p>
1769 </td>
1770 <td class="enum_member_annotations"> </td>
1771 </tr>
1772 <tr>
1773 <td class="enum_member_name"><p><a name="STUN-IND-DATA:CAPS"></a>STUN_IND_DATA</p></td>
1774 <td class="enum_member_description">
1775 <p>The Data method used in indication messages as defined
1776 by the TURN draft 12</p>
1777 </td>
1778 <td class="enum_member_annotations"> </td>
1779 </tr>
1780 <tr>
1781 <td class="enum_member_name"><p><a name="STUN-IND-CONNECT-STATUS:CAPS"></a>STUN_IND_CONNECT_STATUS</p></td>
1782 <td class="enum_member_description">
1783 <p>The Connect-Status method used in indication
1784 messages as defined by the TURN draft 4</p>
1785 </td>
1786 <td class="enum_member_annotations"> </td>
1787 </tr>
1788 <tr>
1789 <td class="enum_member_name"><p><a name="STUN-CREATEPERMISSION:CAPS"></a>STUN_CREATEPERMISSION</p></td>
1790 <td class="enum_member_description">
1791 <p>The CreatePermission method as defined by
1792 the TURN draft 12</p>
1793 </td>
1794 <td class="enum_member_annotations"> </td>
1795 </tr>
1796 <tr>
1797 <td class="enum_member_name"><p><a name="STUN-CHANNELBIND:CAPS"></a>STUN_CHANNELBIND</p></td>
1798 <td class="enum_member_description">
1799 <p>The ChannelBind method as defined by the TURN draft 12</p>
1800 </td>
1801 <td class="enum_member_annotations"> </td>
1802 </tr>
1803 </tbody>
1804 </table></div>
1805 </div>
1806 </div>
1807 <hr>
1808 <div class="refsect2">
1809 <a name="StunAttribute"></a><h3>enum StunAttribute</h3>
1810 <p>Known STUN attribute types as defined by various RFCs and drafts</p>
1811 <div class="refsect3">
1812 <a name="StunAttribute.members"></a><h4>Members</h4>
1813 <div class="informaltable"><table class="informaltable" width="100%" border="0">
1814 <colgroup>
1815 <col width="300px" class="enum_members_name">
1816 <col class="enum_members_description">
1817 <col width="200px" class="enum_members_annotations">
1818 </colgroup>
1819 <tbody>
1820 <tr>
1821 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-MAPPED-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_MAPPED_ADDRESS</p></td>
1822 <td class="enum_member_description">
1823 <p>The MAPPED-ADDRESS attribute as defined
1824 by RFC5389</p>
1825 </td>
1826 <td class="enum_member_annotations"> </td>
1827 </tr>
1828 <tr>
1829 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-RESPONSE-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_RESPONSE_ADDRESS</p></td>
1830 <td class="enum_member_description">
1831 <p>The RESPONSE-ADDRESS attribute as defined
1832 by RFC3489</p>
1833 </td>
1834 <td class="enum_member_annotations"> </td>
1835 </tr>
1836 <tr>
1837 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-CHANGE-REQUEST:CAPS"></a>STUN_ATTRIBUTE_CHANGE_REQUEST</p></td>
1838 <td class="enum_member_description">
1839 <p>The CHANGE-REQUEST attribute as defined by
1840 RFC3489</p>
1841 </td>
1842 <td class="enum_member_annotations"> </td>
1843 </tr>
1844 <tr>
1845 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-SOURCE-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_SOURCE_ADDRESS</p></td>
1846 <td class="enum_member_description">
1847 <p>The SOURCE-ADDRESS attribute as defined by
1848 RFC3489</p>
1849 </td>
1850 <td class="enum_member_annotations"> </td>
1851 </tr>
1852 <tr>
1853 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-CHANGED-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_CHANGED_ADDRESS</p></td>
1854 <td class="enum_member_description">
1855 <p>The CHANGED-ADDRESS attribute as defined
1856 by RFC3489</p>
1857 </td>
1858 <td class="enum_member_annotations"> </td>
1859 </tr>
1860 <tr>
1861 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-USERNAME:CAPS"></a>STUN_ATTRIBUTE_USERNAME</p></td>
1862 <td class="enum_member_description">
1863 <p>The USERNAME attribute as defined by RFC5389</p>
1864 </td>
1865 <td class="enum_member_annotations"> </td>
1866 </tr>
1867 <tr>
1868 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-PASSWORD:CAPS"></a>STUN_ATTRIBUTE_PASSWORD</p></td>
1869 <td class="enum_member_description">
1870 <p>The PASSWORD attribute as defined by RFC3489</p>
1871 </td>
1872 <td class="enum_member_annotations"> </td>
1873 </tr>
1874 <tr>
1875 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-MESSAGE-INTEGRITY:CAPS"></a>STUN_ATTRIBUTE_MESSAGE_INTEGRITY</p></td>
1876 <td class="enum_member_description">
1877 <p>The MESSAGE-INTEGRITY attribute as defined
1878 by RFC5389</p>
1879 </td>
1880 <td class="enum_member_annotations"> </td>
1881 </tr>
1882 <tr>
1883 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-ERROR-CODE:CAPS"></a>STUN_ATTRIBUTE_ERROR_CODE</p></td>
1884 <td class="enum_member_description">
1885 <p>The ERROR-CODE attribute as defined by RFC5389</p>
1886 </td>
1887 <td class="enum_member_annotations"> </td>
1888 </tr>
1889 <tr>
1890 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-UNKNOWN-ATTRIBUTES:CAPS"></a>STUN_ATTRIBUTE_UNKNOWN_ATTRIBUTES</p></td>
1891 <td class="enum_member_description">
1892 <p>The UNKNOWN-ATTRIBUTES attribute as
1893 defined by RFC5389</p>
1894 </td>
1895 <td class="enum_member_annotations"> </td>
1896 </tr>
1897 <tr>
1898 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-REFLECTED-FROM:CAPS"></a>STUN_ATTRIBUTE_REFLECTED_FROM</p></td>
1899 <td class="enum_member_description">
1900 <p>The REFLECTED-FROM attribute as defined
1901 by RFC3489</p>
1902 </td>
1903 <td class="enum_member_annotations"> </td>
1904 </tr>
1905 <tr>
1906 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-CHANNEL-NUMBER:CAPS"></a>STUN_ATTRIBUTE_CHANNEL_NUMBER</p></td>
1907 <td class="enum_member_description">
1908 <p>The CHANNEL-NUMBER attribute as defined by
1909 TURN draft 09 and 12</p>
1910 </td>
1911 <td class="enum_member_annotations"> </td>
1912 </tr>
1913 <tr>
1914 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-LIFETIME:CAPS"></a>STUN_ATTRIBUTE_LIFETIME</p></td>
1915 <td class="enum_member_description">
1916 <p>The LIFETIME attribute as defined by TURN
1917 draft 04, 09 and 12</p>
1918 </td>
1919 <td class="enum_member_annotations"> </td>
1920 </tr>
1921 <tr>
1922 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-MS-ALTERNATE-SERVER:CAPS"></a>STUN_ATTRIBUTE_MS_ALTERNATE_SERVER</p></td>
1923 <td class="enum_member_description">
1924 <p>The ALTERNATE-SERVER attribute as
1925 defined by [MS-TURN]</p>
1926 </td>
1927 <td class="enum_member_annotations"> </td>
1928 </tr>
1929 <tr>
1930 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-MAGIC-COOKIE:CAPS"></a>STUN_ATTRIBUTE_MAGIC_COOKIE</p></td>
1931 <td class="enum_member_description">
1932 <p>The MAGIC-COOKIE attribute as defined by
1933 the rosenberg-midcom TURN draft 08</p>
1934 </td>
1935 <td class="enum_member_annotations"> </td>
1936 </tr>
1937 <tr>
1938 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-BANDWIDTH:CAPS"></a>STUN_ATTRIBUTE_BANDWIDTH</p></td>
1939 <td class="enum_member_description">
1940 <p>The BANDWIDTH attribute as defined by TURN draft 04</p>
1941 </td>
1942 <td class="enum_member_annotations"> </td>
1943 </tr>
1944 <tr>
1945 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-DESTINATION-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_DESTINATION_ADDRESS</p></td>
1946 <td class="enum_member_description">
1947 <p>The DESTINATION-ADDRESS attribute as
1948 defined by the rosenberg-midcom TURN draft 08</p>
1949 </td>
1950 <td class="enum_member_annotations"> </td>
1951 </tr>
1952 <tr>
1953 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-REMOTE-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_REMOTE_ADDRESS</p></td>
1954 <td class="enum_member_description">
1955 <p>The REMOTE-ADDRESS attribute as defined by
1956 TURN draft 04</p>
1957 </td>
1958 <td class="enum_member_annotations"> </td>
1959 </tr>
1960 <tr>
1961 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-PEER-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_PEER_ADDRESS</p></td>
1962 <td class="enum_member_description">
1963 <p>The PEER-ADDRESS attribute as defined by
1964 TURN draft 09</p>
1965 </td>
1966 <td class="enum_member_annotations"> </td>
1967 </tr>
1968 <tr>
1969 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-XOR-PEER-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_XOR_PEER_ADDRESS</p></td>
1970 <td class="enum_member_description">
1971 <p>The XOR-PEER-ADDRESS attribute as defined
1972 by TURN draft 12</p>
1973 </td>
1974 <td class="enum_member_annotations"> </td>
1975 </tr>
1976 <tr>
1977 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-DATA:CAPS"></a>STUN_ATTRIBUTE_DATA</p></td>
1978 <td class="enum_member_description">
1979 <p>The DATA attribute as defined by TURN draft 04,
1980 09 and 12</p>
1981 </td>
1982 <td class="enum_member_annotations"> </td>
1983 </tr>
1984 <tr>
1985 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-REALM:CAPS"></a>STUN_ATTRIBUTE_REALM</p></td>
1986 <td class="enum_member_description">
1987 <p>The REALM attribute as defined by RFC5389</p>
1988 </td>
1989 <td class="enum_member_annotations"> </td>
1990 </tr>
1991 <tr>
1992 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-NONCE:CAPS"></a>STUN_ATTRIBUTE_NONCE</p></td>
1993 <td class="enum_member_description">
1994 <p>The NONCE attribute as defined by RFC5389</p>
1995 </td>
1996 <td class="enum_member_annotations"> </td>
1997 </tr>
1998 <tr>
1999 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-RELAY-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_RELAY_ADDRESS</p></td>
2000 <td class="enum_member_description">
2001 <p>The RELAY-ADDRESS attribute as defined by
2002 TURN draft 04</p>
2003 </td>
2004 <td class="enum_member_annotations"> </td>
2005 </tr>
2006 <tr>
2007 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-RELAYED-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_RELAYED_ADDRESS</p></td>
2008 <td class="enum_member_description">
2009 <p>The RELAYED-ADDRESS attribute as defined by
2010 TURN draft 09</p>
2011 </td>
2012 <td class="enum_member_annotations"> </td>
2013 </tr>
2014 <tr>
2015 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-XOR-RELAYED-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_XOR_RELAYED_ADDRESS</p></td>
2016 <td class="enum_member_description">
2017 <p>The XOR-RELAYED-ADDRESS attribute as
2018 defined by TURN draft 12</p>
2019 </td>
2020 <td class="enum_member_annotations"> </td>
2021 </tr>
2022 <tr>
2023 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-REQUESTED-ADDRESS-TYPE:CAPS"></a>STUN_ATTRIBUTE_REQUESTED_ADDRESS_TYPE</p></td>
2024 <td class="enum_member_description">
2025 <p>The REQUESTED-ADDRESS-TYPE attribute
2026 as defined by TURN-IPV6 draft 05</p>
2027 </td>
2028 <td class="enum_member_annotations"> </td>
2029 </tr>
2030 <tr>
2031 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-REQUESTED-PORT-PROPS:CAPS"></a>STUN_ATTRIBUTE_REQUESTED_PORT_PROPS</p></td>
2032 <td class="enum_member_description">
2033 <p>The REQUESTED-PORT-PROPS attribute
2034 as defined by TURN draft 04</p>
2035 </td>
2036 <td class="enum_member_annotations"> </td>
2037 </tr>
2038 <tr>
2039 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-REQUESTED-PROPS:CAPS"></a>STUN_ATTRIBUTE_REQUESTED_PROPS</p></td>
2040 <td class="enum_member_description">
2041 <p>The REQUESTED-PROPS attribute as defined
2042 by TURN draft 09</p>
2043 </td>
2044 <td class="enum_member_annotations"> </td>
2045 </tr>
2046 <tr>
2047 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-EVEN-PORT:CAPS"></a>STUN_ATTRIBUTE_EVEN_PORT</p></td>
2048 <td class="enum_member_description">
2049 <p>The EVEN-PORT attribute as defined by TURN draft 12</p>
2050 </td>
2051 <td class="enum_member_annotations"> </td>
2052 </tr>
2053 <tr>
2054 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-REQUESTED-TRANSPORT:CAPS"></a>STUN_ATTRIBUTE_REQUESTED_TRANSPORT</p></td>
2055 <td class="enum_member_description">
2056 <p>The REQUESTED-TRANSPORT attribute as
2057 defined by TURN draft 12</p>
2058 </td>
2059 <td class="enum_member_annotations"> </td>
2060 </tr>
2061 <tr>
2062 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-DONT-FRAGMENT:CAPS"></a>STUN_ATTRIBUTE_DONT_FRAGMENT</p></td>
2063 <td class="enum_member_description">
2064 <p>The DONT-FRAGMENT attribute as defined
2065 by TURN draft 12</p>
2066 </td>
2067 <td class="enum_member_annotations"> </td>
2068 </tr>
2069 <tr>
2070 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-XOR-MAPPED-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS</p></td>
2071 <td class="enum_member_description">
2072 <p>The XOR-MAPPED-ADDRESS attribute as
2073 defined by RFC5389</p>
2074 </td>
2075 <td class="enum_member_annotations"> </td>
2076 </tr>
2077 <tr>
2078 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-TIMER-VAL:CAPS"></a>STUN_ATTRIBUTE_TIMER_VAL</p></td>
2079 <td class="enum_member_description">
2080 <p>The TIMER-VAL attribute as defined by TURN draft 04</p>
2081 </td>
2082 <td class="enum_member_annotations"> </td>
2083 </tr>
2084 <tr>
2085 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-REQUESTED-IP:CAPS"></a>STUN_ATTRIBUTE_REQUESTED_IP</p></td>
2086 <td class="enum_member_description">
2087 <p>The REQUESTED-IP attribute as defined by
2088 TURN draft 04</p>
2089 </td>
2090 <td class="enum_member_annotations"> </td>
2091 </tr>
2092 <tr>
2093 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-RESERVATION-TOKEN:CAPS"></a>STUN_ATTRIBUTE_RESERVATION_TOKEN</p></td>
2094 <td class="enum_member_description">
2095 <p>The RESERVATION-TOKEN attribute as defined
2096 by TURN draft 09 and 12</p>
2097 </td>
2098 <td class="enum_member_annotations"> </td>
2099 </tr>
2100 <tr>
2101 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-CONNECT-STAT:CAPS"></a>STUN_ATTRIBUTE_CONNECT_STAT</p></td>
2102 <td class="enum_member_description">
2103 <p>The CONNECT-STAT attribute as defined by TURN
2104 draft 04</p>
2105 </td>
2106 <td class="enum_member_annotations"> </td>
2107 </tr>
2108 <tr>
2109 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-PRIORITY:CAPS"></a>STUN_ATTRIBUTE_PRIORITY</p></td>
2110 <td class="enum_member_description">
2111 <p>The PRIORITY attribute as defined by ICE draft 19</p>
2112 </td>
2113 <td class="enum_member_annotations"> </td>
2114 </tr>
2115 <tr>
2116 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-USE-CANDIDATE:CAPS"></a>STUN_ATTRIBUTE_USE_CANDIDATE</p></td>
2117 <td class="enum_member_description">
2118 <p>The USE-CANDIDATE attribute as defined by
2119 ICE draft 19</p>
2120 </td>
2121 <td class="enum_member_annotations"> </td>
2122 </tr>
2123 <tr>
2124 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-OPTIONS:CAPS"></a>STUN_ATTRIBUTE_OPTIONS</p></td>
2125 <td class="enum_member_description">
2126 <p>The OPTIONS optional attribute as defined by
2127 libjingle</p>
2128 </td>
2129 <td class="enum_member_annotations"> </td>
2130 </tr>
2131 <tr>
2132 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-MS-VERSION:CAPS"></a>STUN_ATTRIBUTE_MS_VERSION</p></td>
2133 <td class="enum_member_description">
2134 <p>The MS-VERSION optional attribute as defined
2135 by [MS-TURN]</p>
2136 </td>
2137 <td class="enum_member_annotations"> </td>
2138 </tr>
2139 <tr>
2140 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-MS-XOR-MAPPED-ADDRESS:CAPS"></a>STUN_ATTRIBUTE_MS_XOR_MAPPED_ADDRESS</p></td>
2141 <td class="enum_member_description">
2142 <p>The XOR-MAPPED-ADDRESS optional
2143 attribute as defined by [MS-TURN]</p>
2144 </td>
2145 <td class="enum_member_annotations"> </td>
2146 </tr>
2147 <tr>
2148 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-SOFTWARE:CAPS"></a>STUN_ATTRIBUTE_SOFTWARE</p></td>
2149 <td class="enum_member_description">
2150 <p>The SOFTWARE optional attribute as defined by RFC5389</p>
2151 </td>
2152 <td class="enum_member_annotations"> </td>
2153 </tr>
2154 <tr>
2155 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-ALTERNATE-SERVER:CAPS"></a>STUN_ATTRIBUTE_ALTERNATE_SERVER</p></td>
2156 <td class="enum_member_description">
2157 <p>The ALTERNATE-SERVER optional attribute as
2158 defined by RFC5389</p>
2159 </td>
2160 <td class="enum_member_annotations"> </td>
2161 </tr>
2162 <tr>
2163 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-FINGERPRINT:CAPS"></a>STUN_ATTRIBUTE_FINGERPRINT</p></td>
2164 <td class="enum_member_description">
2165 <p>The FINGERPRINT optional attribute as defined
2166 by RFC5389</p>
2167 </td>
2168 <td class="enum_member_annotations"> </td>
2169 </tr>
2170 <tr>
2171 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-ICE-CONTROLLED:CAPS"></a>STUN_ATTRIBUTE_ICE_CONTROLLED</p></td>
2172 <td class="enum_member_description">
2173 <p>The ICE-CONTROLLED optional attribute as
2174 defined by ICE draft 19</p>
2175 </td>
2176 <td class="enum_member_annotations"> </td>
2177 </tr>
2178 <tr>
2179 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-ICE-CONTROLLING:CAPS"></a>STUN_ATTRIBUTE_ICE_CONTROLLING</p></td>
2180 <td class="enum_member_description">
2181 <p>The ICE-CONTROLLING optional attribute as
2182 defined by ICE draft 19</p>
2183 </td>
2184 <td class="enum_member_annotations"> </td>
2185 </tr>
2186 <tr>
2187 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-MS-SEQUENCE-NUMBER:CAPS"></a>STUN_ATTRIBUTE_MS_SEQUENCE_NUMBER</p></td>
2188 <td class="enum_member_description">
2189 <p>The MS-SEQUENCE NUMBER optional attribute
2190 as defined by [MS-TURN]</p>
2191 </td>
2192 <td class="enum_member_annotations"> </td>
2193 </tr>
2194 <tr>
2195 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-CANDIDATE-IDENTIFIER:CAPS"></a>STUN_ATTRIBUTE_CANDIDATE_IDENTIFIER</p></td>
2196 <td class="enum_member_description">
2197 <p>The CANDIDATE-IDENTIFIER optional
2198 attribute as defined by [MS-ICE2]</p>
2199 </td>
2200 <td class="enum_member_annotations"> </td>
2201 </tr>
2202 <tr>
2203 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-MS-IMPLEMENTATION-VERSION:CAPS"></a>STUN_ATTRIBUTE_MS_IMPLEMENTATION_VERSION</p></td>
2204 <td class="enum_member_description">
2205 <p>The IMPLEMENTATION-VERSION
2206 optional attribute as defined by [MS-ICE2]</p>
2207 </td>
2208 <td class="enum_member_annotations"> </td>
2209 </tr>
2210 <tr>
2211 <td class="enum_member_name"><p><a name="STUN-ATTRIBUTE-NOMINATION:CAPS"></a>STUN_ATTRIBUTE_NOMINATION</p></td>
2212 <td class="enum_member_description">
2213 <p>The NOMINATION attribute as defined by
2214 draft-thatcher-ice-renomination-00 and deployed in Google Chrome</p>
2215 </td>
2216 <td class="enum_member_annotations"> </td>
2217 </tr>
2218 </tbody>
2219 </table></div>
2220 </div>
2221 </div>
2222 <hr>
2223 <div class="refsect2">
2224 <a name="StunTransactionId"></a><h3>StunTransactionId</h3>
2225 <pre class="programlisting">typedef uint8_t StunTransactionId[STUN_MESSAGE_TRANS_ID_LEN];
2226 </pre>
2227 <p>A type that holds a STUN transaction id.</p>
2228 </div>
2229 <hr>
2230 <div class="refsect2">
2231 <a name="StunError"></a><h3>enum StunError</h3>
2232 <p>STUN error codes as defined by various RFCs and drafts</p>
2233 <div class="refsect3">
2234 <a name="StunError.members"></a><h4>Members</h4>
2235 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2236 <colgroup>
2237 <col width="300px" class="enum_members_name">
2238 <col class="enum_members_description">
2239 <col width="200px" class="enum_members_annotations">
2240 </colgroup>
2241 <tbody>
2242 <tr>
2243 <td class="enum_member_name"><p><a name="STUN-ERROR-TRY-ALTERNATE:CAPS"></a>STUN_ERROR_TRY_ALTERNATE</p></td>
2244 <td class="enum_member_description">
2245 <p>The ERROR-CODE value for the
2246 "Try Alternate" error as defined in RFC5389</p>
2247 </td>
2248 <td class="enum_member_annotations"> </td>
2249 </tr>
2250 <tr>
2251 <td class="enum_member_name"><p><a name="STUN-ERROR-BAD-REQUEST:CAPS"></a>STUN_ERROR_BAD_REQUEST</p></td>
2252 <td class="enum_member_description">
2253 <p>The ERROR-CODE value for the
2254 "Bad Request" error as defined in RFC5389</p>
2255 </td>
2256 <td class="enum_member_annotations"> </td>
2257 </tr>
2258 <tr>
2259 <td class="enum_member_name"><p><a name="STUN-ERROR-UNAUTHORIZED:CAPS"></a>STUN_ERROR_UNAUTHORIZED</p></td>
2260 <td class="enum_member_description">
2261 <p>The ERROR-CODE value for the
2262 "Unauthorized" error as defined in RFC5389</p>
2263 </td>
2264 <td class="enum_member_annotations"> </td>
2265 </tr>
2266 <tr>
2267 <td class="enum_member_name"><p><a name="STUN-ERROR-UNKNOWN-ATTRIBUTE:CAPS"></a>STUN_ERROR_UNKNOWN_ATTRIBUTE</p></td>
2268 <td class="enum_member_description">
2269 <p>The ERROR-CODE value for the
2270 "Unknown Attribute" error as defined in RFC5389</p>
2271 </td>
2272 <td class="enum_member_annotations"> </td>
2273 </tr>
2274 <tr>
2275 <td class="enum_member_name"><p><a name="STUN-ERROR-ALLOCATION-MISMATCH:CAPS"></a>STUN_ERROR_ALLOCATION_MISMATCH</p></td>
2276 <td class="enum_member_description">
2277 <p>The ERROR-CODE value for the
2278 "Allocation Mismatch" error as defined in TURN draft 12.
2279 Equivalent to the "No Binding" error defined in TURN draft 04.</p>
2280 </td>
2281 <td class="enum_member_annotations"> </td>
2282 </tr>
2283 <tr>
2284 <td class="enum_member_name"><p><a name="STUN-ERROR-STALE-NONCE:CAPS"></a>STUN_ERROR_STALE_NONCE</p></td>
2285 <td class="enum_member_description">
2286 <p>The ERROR-CODE value for the
2287 "Stale Nonce" error as defined in RFC5389</p>
2288 </td>
2289 <td class="enum_member_annotations"> </td>
2290 </tr>
2291 <tr>
2292 <td class="enum_member_name"><p><a name="STUN-ERROR-ACT-DST-ALREADY:CAPS"></a>STUN_ERROR_ACT_DST_ALREADY</p></td>
2293 <td class="enum_member_description">
2294 <p>The ERROR-CODE value for the
2295 "Active Destination Already Set" error as defined in TURN draft 04.</p>
2296 </td>
2297 <td class="enum_member_annotations"> </td>
2298 </tr>
2299 <tr>
2300 <td class="enum_member_name"><p><a name="STUN-ERROR-UNSUPPORTED-FAMILY:CAPS"></a>STUN_ERROR_UNSUPPORTED_FAMILY</p></td>
2301 <td class="enum_member_description">
2302 <p>The ERROR-CODE value for the
2303 "Address Family not Supported" error as defined in TURN IPV6 Draft 05.</p>
2304 </td>
2305 <td class="enum_member_annotations"> </td>
2306 </tr>
2307 <tr>
2308 <td class="enum_member_name"><p><a name="STUN-ERROR-WRONG-CREDENTIALS:CAPS"></a>STUN_ERROR_WRONG_CREDENTIALS</p></td>
2309 <td class="enum_member_description">
2310 <p>The ERROR-CODE value for the
2311 "Wrong Credentials" error as defined in TURN Draft 12.</p>
2312 </td>
2313 <td class="enum_member_annotations"> </td>
2314 </tr>
2315 <tr>
2316 <td class="enum_member_name"><p><a name="STUN-ERROR-UNSUPPORTED-TRANSPORT:CAPS"></a>STUN_ERROR_UNSUPPORTED_TRANSPORT</p></td>
2317 <td class="enum_member_description">
2318 <p>he ERROR-CODE value for the
2319 "Unsupported Transport Protocol" error as defined in TURN Draft 12.</p>
2320 </td>
2321 <td class="enum_member_annotations"> </td>
2322 </tr>
2323 <tr>
2324 <td class="enum_member_name"><p><a name="STUN-ERROR-INVALID-IP:CAPS"></a>STUN_ERROR_INVALID_IP</p></td>
2325 <td class="enum_member_description">
2326 <p>The ERROR-CODE value for the
2327 "Invalid IP Address" error as defined in TURN draft 04.</p>
2328 </td>
2329 <td class="enum_member_annotations"> </td>
2330 </tr>
2331 <tr>
2332 <td class="enum_member_name"><p><a name="STUN-ERROR-INVALID-PORT:CAPS"></a>STUN_ERROR_INVALID_PORT</p></td>
2333 <td class="enum_member_description">
2334 <p>The ERROR-CODE value for the
2335 "Invalid Port" error as defined in TURN draft 04.</p>
2336 </td>
2337 <td class="enum_member_annotations"> </td>
2338 </tr>
2339 <tr>
2340 <td class="enum_member_name"><p><a name="STUN-ERROR-OP-TCP-ONLY:CAPS"></a>STUN_ERROR_OP_TCP_ONLY</p></td>
2341 <td class="enum_member_description">
2342 <p>The ERROR-CODE value for the
2343 "Operation for TCP Only" error as defined in TURN draft 04.</p>
2344 </td>
2345 <td class="enum_member_annotations"> </td>
2346 </tr>
2347 <tr>
2348 <td class="enum_member_name"><p><a name="STUN-ERROR-CONN-ALREADY:CAPS"></a>STUN_ERROR_CONN_ALREADY</p></td>
2349 <td class="enum_member_description">
2350 <p>The ERROR-CODE value for the
2351 "Connection Already Exists" error as defined in TURN draft 04.</p>
2352 </td>
2353 <td class="enum_member_annotations"> </td>
2354 </tr>
2355 <tr>
2356 <td class="enum_member_name"><p><a name="STUN-ERROR-ALLOCATION-QUOTA-REACHED:CAPS"></a>STUN_ERROR_ALLOCATION_QUOTA_REACHED</p></td>
2357 <td class="enum_member_description">
2358 <p>The ERROR-CODE value for the
2359 "Allocation Quota Reached" error as defined in TURN draft 12.</p>
2360 </td>
2361 <td class="enum_member_annotations"> </td>
2362 </tr>
2363 <tr>
2364 <td class="enum_member_name"><p><a name="STUN-ERROR-ROLE-CONFLICT:CAPS"></a>STUN_ERROR_ROLE_CONFLICT</p></td>
2365 <td class="enum_member_description">
2366 <p>The ERROR-CODE value for the
2367 "Role Conflict" error as defined in ICE draft 19.</p>
2368 </td>
2369 <td class="enum_member_annotations"> </td>
2370 </tr>
2371 <tr>
2372 <td class="enum_member_name"><p><a name="STUN-ERROR-SERVER-ERROR:CAPS"></a>STUN_ERROR_SERVER_ERROR</p></td>
2373 <td class="enum_member_description">
2374 <p>The ERROR-CODE value for the
2375 "Server Error" error as defined in RFC5389</p>
2376 </td>
2377 <td class="enum_member_annotations"> </td>
2378 </tr>
2379 <tr>
2380 <td class="enum_member_name"><p><a name="STUN-ERROR-SERVER-CAPACITY:CAPS"></a>STUN_ERROR_SERVER_CAPACITY</p></td>
2381 <td class="enum_member_description">
2382 <p>The ERROR-CODE value for the
2383 "Insufficient Capacity" error as defined in TURN draft 04.</p>
2384 </td>
2385 <td class="enum_member_annotations"> </td>
2386 </tr>
2387 <tr>
2388 <td class="enum_member_name"><p><a name="STUN-ERROR-INSUFFICIENT-CAPACITY:CAPS"></a>STUN_ERROR_INSUFFICIENT_CAPACITY</p></td>
2389 <td class="enum_member_description">
2390 <p>The ERROR-CODE value for the
2391 "Insufficient Capacity" error as defined in TURN draft 12.</p>
2392 </td>
2393 <td class="enum_member_annotations"> </td>
2394 </tr>
2395 <tr>
2396 <td class="enum_member_name"><p><a name="STUN-ERROR-MAX:CAPS"></a>STUN_ERROR_MAX</p></td>
2397 <td class="enum_member_description">
2398 <p>The maximum possible ERROR-CODE value as defined by RFC 5389.</p>
2399 </td>
2400 <td class="enum_member_annotations"> </td>
2401 </tr>
2402 </tbody>
2403 </table></div>
2404 </div>
2405 </div>
2406 <hr>
2407 <div class="refsect2">
2408 <a name="StunMessageReturn"></a><h3>enum StunMessageReturn</h3>
2409 <p>The return value of most stun_message_* functions.
2410 This enum will report on whether an operation was successful or not
2411 and what error occured if any.</p>
2412 <div class="refsect3">
2413 <a name="StunMessageReturn.members"></a><h4>Members</h4>
2414 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2415 <colgroup>
2416 <col width="300px" class="enum_members_name">
2417 <col class="enum_members_description">
2418 <col width="200px" class="enum_members_annotations">
2419 </colgroup>
2420 <tbody>
2421 <tr>
2422 <td class="enum_member_name"><p><a name="STUN-MESSAGE-RETURN-SUCCESS:CAPS"></a>STUN_MESSAGE_RETURN_SUCCESS</p></td>
2423 <td class="enum_member_description">
2424 <p>The operation was successful</p>
2425 </td>
2426 <td class="enum_member_annotations"> </td>
2427 </tr>
2428 <tr>
2429 <td class="enum_member_name"><p><a name="STUN-MESSAGE-RETURN-NOT-FOUND:CAPS"></a>STUN_MESSAGE_RETURN_NOT_FOUND</p></td>
2430 <td class="enum_member_description">
2431 <p>The attribute was not found</p>
2432 </td>
2433 <td class="enum_member_annotations"> </td>
2434 </tr>
2435 <tr>
2436 <td class="enum_member_name"><p><a name="STUN-MESSAGE-RETURN-INVALID:CAPS"></a>STUN_MESSAGE_RETURN_INVALID</p></td>
2437 <td class="enum_member_description">
2438 <p>The argument or data is invalid</p>
2439 </td>
2440 <td class="enum_member_annotations"> </td>
2441 </tr>
2442 <tr>
2443 <td class="enum_member_name"><p><a name="STUN-MESSAGE-RETURN-NOT-ENOUGH-SPACE:CAPS"></a>STUN_MESSAGE_RETURN_NOT_ENOUGH_SPACE</p></td>
2444 <td class="enum_member_description">
2445 <p>There is not enough space in the
2446 message to append data to it, or not enough in an argument to fill it with
2447 the data requested.</p>
2448 </td>
2449 <td class="enum_member_annotations"> </td>
2450 </tr>
2451 <tr>
2452 <td class="enum_member_name"><p><a name="STUN-MESSAGE-RETURN-UNSUPPORTED-ADDRESS:CAPS"></a>STUN_MESSAGE_RETURN_UNSUPPORTED_ADDRESS</p></td>
2453 <td class="enum_member_description">
2454 <p>The address in the arguments or in
2455 the STUN message is not supported.</p>
2456 </td>
2457 <td class="enum_member_annotations"> </td>
2458 </tr>
2459 </tbody>
2460 </table></div>
2461 </div>
2462 </div>
2463 <hr>
2464 <div class="refsect2">
2465 <a name="STUN-MESSAGE-BUFFER-INCOMPLETE:CAPS"></a><h3>STUN_MESSAGE_BUFFER_INCOMPLETE</h3>
2466 <pre class="programlisting">#define STUN_MESSAGE_BUFFER_INCOMPLETE 0
2467 </pre>
2468 <p>Convenience macro for <a class="link" href="libnice-StunMessage.html#stun-message-validate-buffer-length" title="stun_message_validate_buffer_length ()"><code class="function">stun_message_validate_buffer_length()</code></a> meaning that the
2469 data to validate does not hold a complete STUN message</p>
2470 </div>
2471 <hr>
2472 <div class="refsect2">
2473 <a name="STUN-MESSAGE-BUFFER-INVALID:CAPS"></a><h3>STUN_MESSAGE_BUFFER_INVALID</h3>
2474 <pre class="programlisting">#define STUN_MESSAGE_BUFFER_INVALID -1
2475 </pre>
2476 <p>Convenience macro for <a class="link" href="libnice-StunMessage.html#stun-message-validate-buffer-length" title="stun_message_validate_buffer_length ()"><code class="function">stun_message_validate_buffer_length()</code></a> meaning that the
2477 data to validate is not a valid STUN message</p>
2478 </div>
2479 <hr>
2480 <div class="refsect2">
2481 <a name="StunInputVector"></a><h3>StunInputVector</h3>
2482 <pre class="programlisting">typedef struct {
2483   const uint8_t *buffer;
2484   size_t size;
2485 } StunInputVector;
2486 </pre>
2487 <p>Container for a single buffer which also stores its length. This is designed
2488 for vectored I/O: typically an array of <a href="libnice-StunMessage.html#StunInputVector"><span class="type">StunInputVectors</span></a> is passed to
2489 functions, providing multiple buffers which store logically contiguous
2490 received data.</p>
2491 <p>This is guaranteed to be layed out identically in memory to <a href="/usr/share/gtk-doc/html/gio/GSocket.html#GInputVector"><span class="type">GInputVector</span></a>.</p>
2492 <div class="refsect3">
2493 <a name="StunInputVector.members"></a><h4>Members</h4>
2494 <div class="informaltable"><table class="informaltable" width="100%" border="0">
2495 <colgroup>
2496 <col width="300px" class="struct_members_name">
2497 <col class="struct_members_description">
2498 <col width="200px" class="struct_members_annotations">
2499 </colgroup>
2500 <tbody>
2501 <tr>
2502 <td class="struct_member_name"><p>const <span class="type">uint8_t</span> *<em class="structfield"><code><a name="StunInputVector.buffer"></a>buffer</code></em>;</p></td>
2503 <td class="struct_member_description"><p>a buffer containing already-received binary data</p></td>
2504 <td class="struct_member_annotations"> </td>
2505 </tr>
2506 <tr>
2507 <td class="struct_member_name"><p><span class="type">size_t</span> <em class="structfield"><code><a name="StunInputVector.size"></a>size</code></em>;</p></td>
2508 <td class="struct_member_description"><p>length of <em class="parameter"><code>buffer</code></em>
2509 , in bytes</p></td>
2510 <td class="struct_member_annotations"> </td>
2511 </tr>
2512 </tbody>
2513 </table></div>
2514 </div>
2515 <p class="since">Since: <a class="link" href="ix10.html#api-index-0.1.5">0.1.5</a></p>
2516 </div>
2517 </div>
2518 <div class="refsect1">
2519 <a name="libnice-StunMessage.see-also"></a><h2>See Also</h2>
2520 <p><a class="link" href="libnice-StunAgent.html#StunAgent" title="StunAgent"><span class="type">StunAgent</span></a></p>
2521 </div>
2522 </div>
2523 <div class="footer">
2524 <hr>Generated by GTK-Doc V1.29</div>
2525 </body>
2526 </html>