1226031Sstas<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2226031Sstas<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3226031Sstas<title>HeimdalKerberos5library: Heimdal Kerberos 5 address functions</title>
4226031Sstas<link href="doxygen.css" rel="stylesheet" type="text/css">
5226031Sstas<link href="tabs.css" rel="stylesheet" type="text/css">
6226031Sstas</head><body>
7226031Sstas<p>
8226031Sstas<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
9226031Sstas</p>
10226031Sstas<!-- end of header marker -->
11226031Sstas<!-- Generated by Doxygen 1.5.6 -->
12226031Sstas<div class="navigation" id="top">
13226031Sstas  <div class="tabs">
14226031Sstas    <ul>
15226031Sstas      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
16226031Sstas      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
17226031Sstas      <li><a href="modules.html"><span>Modules</span></a></li>
18226031Sstas      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
19226031Sstas    </ul>
20226031Sstas  </div>
21226031Sstas</div>
22226031Sstas<div class="contents">
23226031Sstas<h1>Heimdal Kerberos 5 address functions</h1><table border="0" cellpadding="0" cellspacing="0">
24226031Sstas<tr><td></td></tr>
25226031Sstas<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
26226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
27226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#gec34704845bdaee3c08ebba2fa87d61e">krb5_sockaddr2address</a> (krb5_context context, const struct sockaddr *sa, krb5_address *addr)</td></tr>
28226031Sstas
29226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
30226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g76125115a2c040a3f70a4f66eada77aa">krb5_sockaddr2port</a> (krb5_context context, const struct sockaddr *sa, int16_t *port)</td></tr>
31226031Sstas
32226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
33226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g88b9c3052f35dc5a44fdfe9747c36cc5">krb5_addr2sockaddr</a> (krb5_context context, const krb5_address *addr, struct sockaddr *sa, krb5_socklen_t *sa_size, int port)</td></tr>
34226031Sstas
35226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION size_t <br>
36226031SstasKRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g55bd20d9a185cf7963e2117c1c804c85">krb5_max_sockaddr_size</a> (void)</td></tr>
37226031Sstas
38226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
39226031SstasKRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#gc4c55c7ef3d078993b0177649593088c">krb5_sockaddr_uninteresting</a> (const struct sockaddr *sa)</td></tr>
40226031Sstas
41226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
42226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g51cd06ac365188aa989256b99b706f80">krb5_h_addr2sockaddr</a> (krb5_context context, int af, const char *addr, struct sockaddr *sa, krb5_socklen_t *sa_size, int port)</td></tr>
43226031Sstas
44226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
45226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#gb8901409302e9e7bb95187e4d5e6a179">krb5_h_addr2addr</a> (krb5_context context, int af, const char *haddr, krb5_address *addr)</td></tr>
46226031Sstas
47226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
48226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g9cfbb00b2bed85766f86b63541cc7752">krb5_anyaddr</a> (krb5_context context, int af, struct sockaddr *sa, krb5_socklen_t *sa_size, int port)</td></tr>
49226031Sstas
50226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
51226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g6e9adff4c8738f92fa2637698c06ccb9">krb5_print_address</a> (const krb5_address *addr, char *str, size_t len, size_t *ret_len)</td></tr>
52226031Sstas
53226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
54226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#gd7bc7e348e6d36c4cf09dcd2ee5a92a3">krb5_parse_address</a> (krb5_context context, const char *string, krb5_addresses *addresses)</td></tr>
55226031Sstas
56226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION int KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#gc743b9d3c7e4a1f71659ffd28b1fd9fb">krb5_address_order</a> (krb5_context context, const krb5_address *addr1, const krb5_address *addr2)</td></tr>
57226031Sstas
58226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
59226031SstasKRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g7771724e9a25914395dabac15b705e33">krb5_address_compare</a> (krb5_context context, const krb5_address *addr1, const krb5_address *addr2)</td></tr>
60226031Sstas
61226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean <br>
62226031SstasKRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#ge2720bd07b737e73c8b6924403e5b7e1">krb5_address_search</a> (krb5_context context, const krb5_address *addr, const krb5_addresses *addrlist)</td></tr>
63226031Sstas
64226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
65226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g705d91f9f2a2311b656371e553af66a3">krb5_free_address</a> (krb5_context context, krb5_address *address)</td></tr>
66226031Sstas
67226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
68226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g3b5f1c170a4af0de561bc30486983cc5">krb5_free_addresses</a> (krb5_context context, krb5_addresses *addresses)</td></tr>
69226031Sstas
70226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
71226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#gf965da6155d3b086a6ca2e47b391f5df">krb5_copy_address</a> (krb5_context context, const krb5_address *inaddr, krb5_address *outaddr)</td></tr>
72226031Sstas
73226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
74226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g8b73a9ee0e1259a7f10809b329483b85">krb5_copy_addresses</a> (krb5_context context, const krb5_addresses *inaddr, krb5_addresses *outaddr)</td></tr>
75226031Sstas
76226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
77226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#gf56d02edcc81b3edd3c5a1e2e16e99e3">krb5_append_addresses</a> (krb5_context context, krb5_addresses *dest, const krb5_addresses *source)</td></tr>
78226031Sstas
79226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
80226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#gc50ffb71832862424c35c1ace9bbe14d">krb5_make_addrport</a> (krb5_context context, krb5_address **res, const krb5_address *addr, int16_t port)</td></tr>
81226031Sstas
82226031Sstas<tr><td class="memItemLeft" nowrap align="right" valign="top">KRB5_LIB_FUNCTION <br>
83226031Sstaskrb5_error_code KRB5_LIB_CALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__address.html#g3164f6fcff3b1029b93d316e14b017cf">krb5_address_prefixlen_boundary</a> (krb5_context context, const krb5_address *inaddr, unsigned long prefixlen, krb5_address *low, krb5_address *high)</td></tr>
84226031Sstas
85226031Sstas</table>
86226031Sstas<hr><a name="_details"></a><h2>Detailed Description</h2>
87226031Sstas<hr><h2>Function Documentation</h2>
88226031Sstas<a class="anchor" name="g88b9c3052f35dc5a44fdfe9747c36cc5"></a><!-- doxytag: member="addr_families.c::krb5_addr2sockaddr" ref="g88b9c3052f35dc5a44fdfe9747c36cc5" args="(krb5_context context, const krb5_address *addr, struct sockaddr *sa, krb5_socklen_t *sa_size, int port)" -->
89226031Sstas<div class="memitem">
90226031Sstas<div class="memproto">
91226031Sstas      <table class="memname">
92226031Sstas        <tr>
93226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_addr2sockaddr           </td>
94226031Sstas          <td>(</td>
95226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
96226031Sstas          <td class="paramname"> <em>context</em>, </td>
97226031Sstas        </tr>
98226031Sstas        <tr>
99226031Sstas          <td class="paramkey"></td>
100226031Sstas          <td></td>
101226031Sstas          <td class="paramtype">const krb5_address *&nbsp;</td>
102226031Sstas          <td class="paramname"> <em>addr</em>, </td>
103226031Sstas        </tr>
104226031Sstas        <tr>
105226031Sstas          <td class="paramkey"></td>
106226031Sstas          <td></td>
107226031Sstas          <td class="paramtype">struct sockaddr *&nbsp;</td>
108226031Sstas          <td class="paramname"> <em>sa</em>, </td>
109226031Sstas        </tr>
110226031Sstas        <tr>
111226031Sstas          <td class="paramkey"></td>
112226031Sstas          <td></td>
113226031Sstas          <td class="paramtype">krb5_socklen_t *&nbsp;</td>
114226031Sstas          <td class="paramname"> <em>sa_size</em>, </td>
115226031Sstas        </tr>
116226031Sstas        <tr>
117226031Sstas          <td class="paramkey"></td>
118226031Sstas          <td></td>
119226031Sstas          <td class="paramtype">int&nbsp;</td>
120226031Sstas          <td class="paramname"> <em>port</em></td><td>&nbsp;</td>
121226031Sstas        </tr>
122226031Sstas        <tr>
123226031Sstas          <td></td>
124226031Sstas          <td>)</td>
125226031Sstas          <td></td><td></td><td></td>
126226031Sstas        </tr>
127226031Sstas      </table>
128226031Sstas</div>
129226031Sstas<div class="memdoc">
130226031Sstas
131226031Sstas<p>
132226031Sstaskrb5_addr2sockaddr sets the "struct sockaddr sockaddr" from addr and port. The argument sa_size should initially contain the size of the sa and after the call, it will contain the actual length of the address. In case of the sa is too small to fit the whole address, the up to *sa_size will be stored, and then *sa_size will be set to the required length.<p>
133226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
134226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
135226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
136226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>the address to copy the from </td></tr>
137226031Sstas    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>the struct sockaddr that will be filled in </td></tr>
138226031Sstas    <tr><td valign="top"></td><td valign="top"><em>sa_size</em>&nbsp;</td><td>pointer to length of sa, and after the call, it will contain the actual length of the address. </td></tr>
139226031Sstas    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>set port in sa.</td></tr>
140226031Sstas  </table>
141226031Sstas</dl>
142226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. Will return KRB5_PROG_ATYPE_NOSUPP in case address type is not supported. </dd></dl>
143226031Sstas
144226031Sstas</div>
145226031Sstas</div><p>
146226031Sstas<a class="anchor" name="g7771724e9a25914395dabac15b705e33"></a><!-- doxytag: member="addr_families.c::krb5_address_compare" ref="g7771724e9a25914395dabac15b705e33" args="(krb5_context context, const krb5_address *addr1, const krb5_address *addr2)" -->
147226031Sstas<div class="memitem">
148226031Sstas<div class="memproto">
149226031Sstas      <table class="memname">
150226031Sstas        <tr>
151226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_address_compare           </td>
152226031Sstas          <td>(</td>
153226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
154226031Sstas          <td class="paramname"> <em>context</em>, </td>
155226031Sstas        </tr>
156226031Sstas        <tr>
157226031Sstas          <td class="paramkey"></td>
158226031Sstas          <td></td>
159226031Sstas          <td class="paramtype">const krb5_address *&nbsp;</td>
160226031Sstas          <td class="paramname"> <em>addr1</em>, </td>
161226031Sstas        </tr>
162226031Sstas        <tr>
163226031Sstas          <td class="paramkey"></td>
164226031Sstas          <td></td>
165226031Sstas          <td class="paramtype">const krb5_address *&nbsp;</td>
166226031Sstas          <td class="paramname"> <em>addr2</em></td><td>&nbsp;</td>
167226031Sstas        </tr>
168226031Sstas        <tr>
169226031Sstas          <td></td>
170226031Sstas          <td>)</td>
171226031Sstas          <td></td><td></td><td></td>
172226031Sstas        </tr>
173226031Sstas      </table>
174226031Sstas</div>
175226031Sstas<div class="memdoc">
176226031Sstas
177226031Sstas<p>
178226031Sstaskrb5_address_compare compares the addresses addr1 and addr2. Returns TRUE if the two addresses are the same.<p>
179226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
180226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
181226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
182226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr1</em>&nbsp;</td><td>address to compare </td></tr>
183226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr2</em>&nbsp;</td><td>address to compare</td></tr>
184226031Sstas  </table>
185226031Sstas</dl>
186226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an TRUE is the address are the same FALSE if not </dd></dl>
187226031Sstas
188226031Sstas</div>
189226031Sstas</div><p>
190226031Sstas<a class="anchor" name="gc743b9d3c7e4a1f71659ffd28b1fd9fb"></a><!-- doxytag: member="addr_families.c::krb5_address_order" ref="gc743b9d3c7e4a1f71659ffd28b1fd9fb" args="(krb5_context context, const krb5_address *addr1, const krb5_address *addr2)" -->
191226031Sstas<div class="memitem">
192226031Sstas<div class="memproto">
193226031Sstas      <table class="memname">
194226031Sstas        <tr>
195226031Sstas          <td class="memname">KRB5_LIB_FUNCTION int KRB5_LIB_CALL krb5_address_order           </td>
196226031Sstas          <td>(</td>
197226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
198226031Sstas          <td class="paramname"> <em>context</em>, </td>
199226031Sstas        </tr>
200226031Sstas        <tr>
201226031Sstas          <td class="paramkey"></td>
202226031Sstas          <td></td>
203226031Sstas          <td class="paramtype">const krb5_address *&nbsp;</td>
204226031Sstas          <td class="paramname"> <em>addr1</em>, </td>
205226031Sstas        </tr>
206226031Sstas        <tr>
207226031Sstas          <td class="paramkey"></td>
208226031Sstas          <td></td>
209226031Sstas          <td class="paramtype">const krb5_address *&nbsp;</td>
210226031Sstas          <td class="paramname"> <em>addr2</em></td><td>&nbsp;</td>
211226031Sstas        </tr>
212226031Sstas        <tr>
213226031Sstas          <td></td>
214226031Sstas          <td>)</td>
215226031Sstas          <td></td><td></td><td></td>
216226031Sstas        </tr>
217226031Sstas      </table>
218226031Sstas</div>
219226031Sstas<div class="memdoc">
220226031Sstas
221226031Sstas<p>
222226031Sstaskrb5_address_order compares the addresses addr1 and addr2 so that it can be used for sorting addresses. If the addresses are the same address krb5_address_order will return 0. Behavies like memcmp(2).<p>
223226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
224226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
225226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
226226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr1</em>&nbsp;</td><td>krb5_address to compare </td></tr>
227226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr2</em>&nbsp;</td><td>krb5_address to compare</td></tr>
228226031Sstas  </table>
229226031Sstas</dl>
230226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>&lt; 0 if address addr1 in "less" then addr2. 0 if addr1 and addr2 is the same address, &gt; 0 if addr2 is "less" then addr1. </dd></dl>
231226031Sstas
232226031Sstas</div>
233226031Sstas</div><p>
234226031Sstas<a class="anchor" name="g3164f6fcff3b1029b93d316e14b017cf"></a><!-- doxytag: member="addr_families.c::krb5_address_prefixlen_boundary" ref="g3164f6fcff3b1029b93d316e14b017cf" args="(krb5_context context, const krb5_address *inaddr, unsigned long prefixlen, krb5_address *low, krb5_address *high)" -->
235226031Sstas<div class="memitem">
236226031Sstas<div class="memproto">
237226031Sstas      <table class="memname">
238226031Sstas        <tr>
239226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_address_prefixlen_boundary           </td>
240226031Sstas          <td>(</td>
241226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
242226031Sstas          <td class="paramname"> <em>context</em>, </td>
243226031Sstas        </tr>
244226031Sstas        <tr>
245226031Sstas          <td class="paramkey"></td>
246226031Sstas          <td></td>
247226031Sstas          <td class="paramtype">const krb5_address *&nbsp;</td>
248226031Sstas          <td class="paramname"> <em>inaddr</em>, </td>
249226031Sstas        </tr>
250226031Sstas        <tr>
251226031Sstas          <td class="paramkey"></td>
252226031Sstas          <td></td>
253226031Sstas          <td class="paramtype">unsigned long&nbsp;</td>
254226031Sstas          <td class="paramname"> <em>prefixlen</em>, </td>
255226031Sstas        </tr>
256226031Sstas        <tr>
257226031Sstas          <td class="paramkey"></td>
258226031Sstas          <td></td>
259226031Sstas          <td class="paramtype">krb5_address *&nbsp;</td>
260226031Sstas          <td class="paramname"> <em>low</em>, </td>
261226031Sstas        </tr>
262226031Sstas        <tr>
263226031Sstas          <td class="paramkey"></td>
264226031Sstas          <td></td>
265226031Sstas          <td class="paramtype">krb5_address *&nbsp;</td>
266226031Sstas          <td class="paramname"> <em>high</em></td><td>&nbsp;</td>
267226031Sstas        </tr>
268226031Sstas        <tr>
269226031Sstas          <td></td>
270226031Sstas          <td>)</td>
271226031Sstas          <td></td><td></td><td></td>
272226031Sstas        </tr>
273226031Sstas      </table>
274226031Sstas</div>
275226031Sstas<div class="memdoc">
276226031Sstas
277226031Sstas<p>
278226031SstasCalculate the boundary addresses of `inaddr'/`prefixlen' and store them in `low' and `high'.<p>
279226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
280226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
281226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
282226031Sstas    <tr><td valign="top"></td><td valign="top"><em>inaddr</em>&nbsp;</td><td>address in prefixlen that the bondery searched </td></tr>
283226031Sstas    <tr><td valign="top"></td><td valign="top"><em>prefixlen</em>&nbsp;</td><td>width of boundery </td></tr>
284226031Sstas    <tr><td valign="top"></td><td valign="top"><em>low</em>&nbsp;</td><td>lowest address </td></tr>
285226031Sstas    <tr><td valign="top"></td><td valign="top"><em>high</em>&nbsp;</td><td>highest address</td></tr>
286226031Sstas  </table>
287226031Sstas</dl>
288226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
289226031Sstas
290226031Sstas</div>
291226031Sstas</div><p>
292226031Sstas<a class="anchor" name="ge2720bd07b737e73c8b6924403e5b7e1"></a><!-- doxytag: member="addr_families.c::krb5_address_search" ref="ge2720bd07b737e73c8b6924403e5b7e1" args="(krb5_context context, const krb5_address *addr, const krb5_addresses *addrlist)" -->
293226031Sstas<div class="memitem">
294226031Sstas<div class="memproto">
295226031Sstas      <table class="memname">
296226031Sstas        <tr>
297226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_address_search           </td>
298226031Sstas          <td>(</td>
299226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
300226031Sstas          <td class="paramname"> <em>context</em>, </td>
301226031Sstas        </tr>
302226031Sstas        <tr>
303226031Sstas          <td class="paramkey"></td>
304226031Sstas          <td></td>
305226031Sstas          <td class="paramtype">const krb5_address *&nbsp;</td>
306226031Sstas          <td class="paramname"> <em>addr</em>, </td>
307226031Sstas        </tr>
308226031Sstas        <tr>
309226031Sstas          <td class="paramkey"></td>
310226031Sstas          <td></td>
311226031Sstas          <td class="paramtype">const krb5_addresses *&nbsp;</td>
312226031Sstas          <td class="paramname"> <em>addrlist</em></td><td>&nbsp;</td>
313226031Sstas        </tr>
314226031Sstas        <tr>
315226031Sstas          <td></td>
316226031Sstas          <td>)</td>
317226031Sstas          <td></td><td></td><td></td>
318226031Sstas        </tr>
319226031Sstas      </table>
320226031Sstas</div>
321226031Sstas<div class="memdoc">
322226031Sstas
323226031Sstas<p>
324226031Sstaskrb5_address_search checks if the address addr is a member of the address set list addrlist .<p>
325226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
326226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
327226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context. </td></tr>
328226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>address to search for. </td></tr>
329226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addrlist</em>&nbsp;</td><td>list of addresses to look in for addr.</td></tr>
330226031Sstas  </table>
331226031Sstas</dl>
332226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
333226031Sstas
334226031Sstas</div>
335226031Sstas</div><p>
336226031Sstas<a class="anchor" name="g9cfbb00b2bed85766f86b63541cc7752"></a><!-- doxytag: member="addr_families.c::krb5_anyaddr" ref="g9cfbb00b2bed85766f86b63541cc7752" args="(krb5_context context, int af, struct sockaddr *sa, krb5_socklen_t *sa_size, int port)" -->
337226031Sstas<div class="memitem">
338226031Sstas<div class="memproto">
339226031Sstas      <table class="memname">
340226031Sstas        <tr>
341226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_anyaddr           </td>
342226031Sstas          <td>(</td>
343226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
344226031Sstas          <td class="paramname"> <em>context</em>, </td>
345226031Sstas        </tr>
346226031Sstas        <tr>
347226031Sstas          <td class="paramkey"></td>
348226031Sstas          <td></td>
349226031Sstas          <td class="paramtype">int&nbsp;</td>
350226031Sstas          <td class="paramname"> <em>af</em>, </td>
351226031Sstas        </tr>
352226031Sstas        <tr>
353226031Sstas          <td class="paramkey"></td>
354226031Sstas          <td></td>
355226031Sstas          <td class="paramtype">struct sockaddr *&nbsp;</td>
356226031Sstas          <td class="paramname"> <em>sa</em>, </td>
357226031Sstas        </tr>
358226031Sstas        <tr>
359226031Sstas          <td class="paramkey"></td>
360226031Sstas          <td></td>
361226031Sstas          <td class="paramtype">krb5_socklen_t *&nbsp;</td>
362226031Sstas          <td class="paramname"> <em>sa_size</em>, </td>
363226031Sstas        </tr>
364226031Sstas        <tr>
365226031Sstas          <td class="paramkey"></td>
366226031Sstas          <td></td>
367226031Sstas          <td class="paramtype">int&nbsp;</td>
368226031Sstas          <td class="paramname"> <em>port</em></td><td>&nbsp;</td>
369226031Sstas        </tr>
370226031Sstas        <tr>
371226031Sstas          <td></td>
372226031Sstas          <td>)</td>
373226031Sstas          <td></td><td></td><td></td>
374226031Sstas        </tr>
375226031Sstas      </table>
376226031Sstas</div>
377226031Sstas<div class="memdoc">
378226031Sstas
379226031Sstas<p>
380226031Sstaskrb5_anyaddr fills in a "struct sockaddr sa" that can be used to bind(2) to. The argument sa_size should initially contain the size of the sa, and after the call, it will contain the actual length of the address.<p>
381226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
382226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
383226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
384226031Sstas    <tr><td valign="top"></td><td valign="top"><em>af</em>&nbsp;</td><td>address family </td></tr>
385226031Sstas    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>sockaddr </td></tr>
386226031Sstas    <tr><td valign="top"></td><td valign="top"><em>sa_size</em>&nbsp;</td><td>lenght of sa. </td></tr>
387226031Sstas    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>for to fill into sa.</td></tr>
388226031Sstas  </table>
389226031Sstas</dl>
390226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
391226031Sstas
392226031Sstas</div>
393226031Sstas</div><p>
394226031Sstas<a class="anchor" name="gf56d02edcc81b3edd3c5a1e2e16e99e3"></a><!-- doxytag: member="addr_families.c::krb5_append_addresses" ref="gf56d02edcc81b3edd3c5a1e2e16e99e3" args="(krb5_context context, krb5_addresses *dest, const krb5_addresses *source)" -->
395226031Sstas<div class="memitem">
396226031Sstas<div class="memproto">
397226031Sstas      <table class="memname">
398226031Sstas        <tr>
399226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_append_addresses           </td>
400226031Sstas          <td>(</td>
401226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
402226031Sstas          <td class="paramname"> <em>context</em>, </td>
403226031Sstas        </tr>
404226031Sstas        <tr>
405226031Sstas          <td class="paramkey"></td>
406226031Sstas          <td></td>
407226031Sstas          <td class="paramtype">krb5_addresses *&nbsp;</td>
408226031Sstas          <td class="paramname"> <em>dest</em>, </td>
409226031Sstas        </tr>
410226031Sstas        <tr>
411226031Sstas          <td class="paramkey"></td>
412226031Sstas          <td></td>
413226031Sstas          <td class="paramtype">const krb5_addresses *&nbsp;</td>
414226031Sstas          <td class="paramname"> <em>source</em></td><td>&nbsp;</td>
415226031Sstas        </tr>
416226031Sstas        <tr>
417226031Sstas          <td></td>
418226031Sstas          <td>)</td>
419226031Sstas          <td></td><td></td><td></td>
420226031Sstas        </tr>
421226031Sstas      </table>
422226031Sstas</div>
423226031Sstas<div class="memdoc">
424226031Sstas
425226031Sstas<p>
426226031Sstaskrb5_append_addresses adds the set of addresses in source to dest. While copying the addresses, duplicates are also sorted out.<p>
427226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
428226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
429226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
430226031Sstas    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>destination of copy operation </td></tr>
431226031Sstas    <tr><td valign="top"></td><td valign="top"><em>source</em>&nbsp;</td><td>adresses that are going to be added to dest</td></tr>
432226031Sstas  </table>
433226031Sstas</dl>
434226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
435226031Sstas
436226031Sstas</div>
437226031Sstas</div><p>
438226031Sstas<a class="anchor" name="gf965da6155d3b086a6ca2e47b391f5df"></a><!-- doxytag: member="addr_families.c::krb5_copy_address" ref="gf965da6155d3b086a6ca2e47b391f5df" args="(krb5_context context, const krb5_address *inaddr, krb5_address *outaddr)" -->
439226031Sstas<div class="memitem">
440226031Sstas<div class="memproto">
441226031Sstas      <table class="memname">
442226031Sstas        <tr>
443226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_address           </td>
444226031Sstas          <td>(</td>
445226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
446226031Sstas          <td class="paramname"> <em>context</em>, </td>
447226031Sstas        </tr>
448226031Sstas        <tr>
449226031Sstas          <td class="paramkey"></td>
450226031Sstas          <td></td>
451226031Sstas          <td class="paramtype">const krb5_address *&nbsp;</td>
452226031Sstas          <td class="paramname"> <em>inaddr</em>, </td>
453226031Sstas        </tr>
454226031Sstas        <tr>
455226031Sstas          <td class="paramkey"></td>
456226031Sstas          <td></td>
457226031Sstas          <td class="paramtype">krb5_address *&nbsp;</td>
458226031Sstas          <td class="paramname"> <em>outaddr</em></td><td>&nbsp;</td>
459226031Sstas        </tr>
460226031Sstas        <tr>
461226031Sstas          <td></td>
462226031Sstas          <td>)</td>
463226031Sstas          <td></td><td></td><td></td>
464226031Sstas        </tr>
465226031Sstas      </table>
466226031Sstas</div>
467226031Sstas<div class="memdoc">
468226031Sstas
469226031Sstas<p>
470226031Sstaskrb5_copy_address copies the content of address inaddr to outaddr.<p>
471226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
472226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
473226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
474226031Sstas    <tr><td valign="top"></td><td valign="top"><em>inaddr</em>&nbsp;</td><td>pointer to source address </td></tr>
475226031Sstas    <tr><td valign="top"></td><td valign="top"><em>outaddr</em>&nbsp;</td><td>pointer to destination address</td></tr>
476226031Sstas  </table>
477226031Sstas</dl>
478226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
479226031Sstas
480226031Sstas</div>
481226031Sstas</div><p>
482226031Sstas<a class="anchor" name="g8b73a9ee0e1259a7f10809b329483b85"></a><!-- doxytag: member="addr_families.c::krb5_copy_addresses" ref="g8b73a9ee0e1259a7f10809b329483b85" args="(krb5_context context, const krb5_addresses *inaddr, krb5_addresses *outaddr)" -->
483226031Sstas<div class="memitem">
484226031Sstas<div class="memproto">
485226031Sstas      <table class="memname">
486226031Sstas        <tr>
487226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_addresses           </td>
488226031Sstas          <td>(</td>
489226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
490226031Sstas          <td class="paramname"> <em>context</em>, </td>
491226031Sstas        </tr>
492226031Sstas        <tr>
493226031Sstas          <td class="paramkey"></td>
494226031Sstas          <td></td>
495226031Sstas          <td class="paramtype">const krb5_addresses *&nbsp;</td>
496226031Sstas          <td class="paramname"> <em>inaddr</em>, </td>
497226031Sstas        </tr>
498226031Sstas        <tr>
499226031Sstas          <td class="paramkey"></td>
500226031Sstas          <td></td>
501226031Sstas          <td class="paramtype">krb5_addresses *&nbsp;</td>
502226031Sstas          <td class="paramname"> <em>outaddr</em></td><td>&nbsp;</td>
503226031Sstas        </tr>
504226031Sstas        <tr>
505226031Sstas          <td></td>
506226031Sstas          <td>)</td>
507226031Sstas          <td></td><td></td><td></td>
508226031Sstas        </tr>
509226031Sstas      </table>
510226031Sstas</div>
511226031Sstas<div class="memdoc">
512226031Sstas
513226031Sstas<p>
514226031Sstaskrb5_copy_addresses copies the content of addresses inaddr to outaddr.<p>
515226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
516226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
517226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
518226031Sstas    <tr><td valign="top"></td><td valign="top"><em>inaddr</em>&nbsp;</td><td>pointer to source addresses </td></tr>
519226031Sstas    <tr><td valign="top"></td><td valign="top"><em>outaddr</em>&nbsp;</td><td>pointer to destination addresses</td></tr>
520226031Sstas  </table>
521226031Sstas</dl>
522226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
523226031Sstas
524226031Sstas</div>
525226031Sstas</div><p>
526226031Sstas<a class="anchor" name="g705d91f9f2a2311b656371e553af66a3"></a><!-- doxytag: member="addr_families.c::krb5_free_address" ref="g705d91f9f2a2311b656371e553af66a3" args="(krb5_context context, krb5_address *address)" -->
527226031Sstas<div class="memitem">
528226031Sstas<div class="memproto">
529226031Sstas      <table class="memname">
530226031Sstas        <tr>
531226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_address           </td>
532226031Sstas          <td>(</td>
533226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
534226031Sstas          <td class="paramname"> <em>context</em>, </td>
535226031Sstas        </tr>
536226031Sstas        <tr>
537226031Sstas          <td class="paramkey"></td>
538226031Sstas          <td></td>
539226031Sstas          <td class="paramtype">krb5_address *&nbsp;</td>
540226031Sstas          <td class="paramname"> <em>address</em></td><td>&nbsp;</td>
541226031Sstas        </tr>
542226031Sstas        <tr>
543226031Sstas          <td></td>
544226031Sstas          <td>)</td>
545226031Sstas          <td></td><td></td><td></td>
546226031Sstas        </tr>
547226031Sstas      </table>
548226031Sstas</div>
549226031Sstas<div class="memdoc">
550226031Sstas
551226031Sstas<p>
552226031Sstaskrb5_free_address frees the data stored in the address that is alloced with any of the krb5_address functions.<p>
553226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
554226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
555226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
556226031Sstas    <tr><td valign="top"></td><td valign="top"><em>address</em>&nbsp;</td><td>addresss to be freed.</td></tr>
557226031Sstas  </table>
558226031Sstas</dl>
559226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
560226031Sstas
561226031Sstas</div>
562226031Sstas</div><p>
563226031Sstas<a class="anchor" name="g3b5f1c170a4af0de561bc30486983cc5"></a><!-- doxytag: member="addr_families.c::krb5_free_addresses" ref="g3b5f1c170a4af0de561bc30486983cc5" args="(krb5_context context, krb5_addresses *addresses)" -->
564226031Sstas<div class="memitem">
565226031Sstas<div class="memproto">
566226031Sstas      <table class="memname">
567226031Sstas        <tr>
568226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_free_addresses           </td>
569226031Sstas          <td>(</td>
570226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
571226031Sstas          <td class="paramname"> <em>context</em>, </td>
572226031Sstas        </tr>
573226031Sstas        <tr>
574226031Sstas          <td class="paramkey"></td>
575226031Sstas          <td></td>
576226031Sstas          <td class="paramtype">krb5_addresses *&nbsp;</td>
577226031Sstas          <td class="paramname"> <em>addresses</em></td><td>&nbsp;</td>
578226031Sstas        </tr>
579226031Sstas        <tr>
580226031Sstas          <td></td>
581226031Sstas          <td>)</td>
582226031Sstas          <td></td><td></td><td></td>
583226031Sstas        </tr>
584226031Sstas      </table>
585226031Sstas</div>
586226031Sstas<div class="memdoc">
587226031Sstas
588226031Sstas<p>
589226031Sstaskrb5_free_addresses frees the data stored in the address that is alloced with any of the krb5_address functions.<p>
590226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
591226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
592226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
593226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addresses</em>&nbsp;</td><td>addressses to be freed.</td></tr>
594226031Sstas  </table>
595226031Sstas</dl>
596226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
597226031Sstas
598226031Sstas</div>
599226031Sstas</div><p>
600226031Sstas<a class="anchor" name="gb8901409302e9e7bb95187e4d5e6a179"></a><!-- doxytag: member="addr_families.c::krb5_h_addr2addr" ref="gb8901409302e9e7bb95187e4d5e6a179" args="(krb5_context context, int af, const char *haddr, krb5_address *addr)" -->
601226031Sstas<div class="memitem">
602226031Sstas<div class="memproto">
603226031Sstas      <table class="memname">
604226031Sstas        <tr>
605226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_h_addr2addr           </td>
606226031Sstas          <td>(</td>
607226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
608226031Sstas          <td class="paramname"> <em>context</em>, </td>
609226031Sstas        </tr>
610226031Sstas        <tr>
611226031Sstas          <td class="paramkey"></td>
612226031Sstas          <td></td>
613226031Sstas          <td class="paramtype">int&nbsp;</td>
614226031Sstas          <td class="paramname"> <em>af</em>, </td>
615226031Sstas        </tr>
616226031Sstas        <tr>
617226031Sstas          <td class="paramkey"></td>
618226031Sstas          <td></td>
619226031Sstas          <td class="paramtype">const char *&nbsp;</td>
620226031Sstas          <td class="paramname"> <em>haddr</em>, </td>
621226031Sstas        </tr>
622226031Sstas        <tr>
623226031Sstas          <td class="paramkey"></td>
624226031Sstas          <td></td>
625226031Sstas          <td class="paramtype">krb5_address *&nbsp;</td>
626226031Sstas          <td class="paramname"> <em>addr</em></td><td>&nbsp;</td>
627226031Sstas        </tr>
628226031Sstas        <tr>
629226031Sstas          <td></td>
630226031Sstas          <td>)</td>
631226031Sstas          <td></td><td></td><td></td>
632226031Sstas        </tr>
633226031Sstas      </table>
634226031Sstas</div>
635226031Sstas<div class="memdoc">
636226031Sstas
637226031Sstas<p>
638226031Sstaskrb5_h_addr2addr works like krb5_h_addr2sockaddr with the exception that it operates on a krb5_address instead of a struct sockaddr.<p>
639226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
640226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
641226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
642226031Sstas    <tr><td valign="top"></td><td valign="top"><em>af</em>&nbsp;</td><td>address family </td></tr>
643226031Sstas    <tr><td valign="top"></td><td valign="top"><em>haddr</em>&nbsp;</td><td>host address from struct hostent. </td></tr>
644226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>returned krb5_address.</td></tr>
645226031Sstas  </table>
646226031Sstas</dl>
647226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
648226031Sstas
649226031Sstas</div>
650226031Sstas</div><p>
651226031Sstas<a class="anchor" name="g51cd06ac365188aa989256b99b706f80"></a><!-- doxytag: member="addr_families.c::krb5_h_addr2sockaddr" ref="g51cd06ac365188aa989256b99b706f80" args="(krb5_context context, int af, const char *addr, struct sockaddr *sa, krb5_socklen_t *sa_size, int port)" -->
652226031Sstas<div class="memitem">
653226031Sstas<div class="memproto">
654226031Sstas      <table class="memname">
655226031Sstas        <tr>
656226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_h_addr2sockaddr           </td>
657226031Sstas          <td>(</td>
658226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
659226031Sstas          <td class="paramname"> <em>context</em>, </td>
660226031Sstas        </tr>
661226031Sstas        <tr>
662226031Sstas          <td class="paramkey"></td>
663226031Sstas          <td></td>
664226031Sstas          <td class="paramtype">int&nbsp;</td>
665226031Sstas          <td class="paramname"> <em>af</em>, </td>
666226031Sstas        </tr>
667226031Sstas        <tr>
668226031Sstas          <td class="paramkey"></td>
669226031Sstas          <td></td>
670226031Sstas          <td class="paramtype">const char *&nbsp;</td>
671226031Sstas          <td class="paramname"> <em>addr</em>, </td>
672226031Sstas        </tr>
673226031Sstas        <tr>
674226031Sstas          <td class="paramkey"></td>
675226031Sstas          <td></td>
676226031Sstas          <td class="paramtype">struct sockaddr *&nbsp;</td>
677226031Sstas          <td class="paramname"> <em>sa</em>, </td>
678226031Sstas        </tr>
679226031Sstas        <tr>
680226031Sstas          <td class="paramkey"></td>
681226031Sstas          <td></td>
682226031Sstas          <td class="paramtype">krb5_socklen_t *&nbsp;</td>
683226031Sstas          <td class="paramname"> <em>sa_size</em>, </td>
684226031Sstas        </tr>
685226031Sstas        <tr>
686226031Sstas          <td class="paramkey"></td>
687226031Sstas          <td></td>
688226031Sstas          <td class="paramtype">int&nbsp;</td>
689226031Sstas          <td class="paramname"> <em>port</em></td><td>&nbsp;</td>
690226031Sstas        </tr>
691226031Sstas        <tr>
692226031Sstas          <td></td>
693226031Sstas          <td>)</td>
694226031Sstas          <td></td><td></td><td></td>
695226031Sstas        </tr>
696226031Sstas      </table>
697226031Sstas</div>
698226031Sstas<div class="memdoc">
699226031Sstas
700226031Sstas<p>
701226031Sstaskrb5_h_addr2sockaddr initializes a "struct sockaddr sa" from af and the "struct hostent" (see gethostbyname(3) ) h_addr_list component. The argument sa_size should initially contain the size of the sa, and after the call, it will contain the actual length of the address.<p>
702226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
703226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
704226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
705226031Sstas    <tr><td valign="top"></td><td valign="top"><em>af</em>&nbsp;</td><td>addresses </td></tr>
706226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>address </td></tr>
707226031Sstas    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>returned struct sockaddr </td></tr>
708226031Sstas    <tr><td valign="top"></td><td valign="top"><em>sa_size</em>&nbsp;</td><td>size of sa </td></tr>
709226031Sstas    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>port to set in sa.</td></tr>
710226031Sstas  </table>
711226031Sstas</dl>
712226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
713226031Sstas
714226031Sstas</div>
715226031Sstas</div><p>
716226031Sstas<a class="anchor" name="gc50ffb71832862424c35c1ace9bbe14d"></a><!-- doxytag: member="addr_families.c::krb5_make_addrport" ref="gc50ffb71832862424c35c1ace9bbe14d" args="(krb5_context context, krb5_address **res, const krb5_address *addr, int16_t port)" -->
717226031Sstas<div class="memitem">
718226031Sstas<div class="memproto">
719226031Sstas      <table class="memname">
720226031Sstas        <tr>
721226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_make_addrport           </td>
722226031Sstas          <td>(</td>
723226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
724226031Sstas          <td class="paramname"> <em>context</em>, </td>
725226031Sstas        </tr>
726226031Sstas        <tr>
727226031Sstas          <td class="paramkey"></td>
728226031Sstas          <td></td>
729226031Sstas          <td class="paramtype">krb5_address **&nbsp;</td>
730226031Sstas          <td class="paramname"> <em>res</em>, </td>
731226031Sstas        </tr>
732226031Sstas        <tr>
733226031Sstas          <td class="paramkey"></td>
734226031Sstas          <td></td>
735226031Sstas          <td class="paramtype">const krb5_address *&nbsp;</td>
736226031Sstas          <td class="paramname"> <em>addr</em>, </td>
737226031Sstas        </tr>
738226031Sstas        <tr>
739226031Sstas          <td class="paramkey"></td>
740226031Sstas          <td></td>
741226031Sstas          <td class="paramtype">int16_t&nbsp;</td>
742226031Sstas          <td class="paramname"> <em>port</em></td><td>&nbsp;</td>
743226031Sstas        </tr>
744226031Sstas        <tr>
745226031Sstas          <td></td>
746226031Sstas          <td>)</td>
747226031Sstas          <td></td><td></td><td></td>
748226031Sstas        </tr>
749226031Sstas      </table>
750226031Sstas</div>
751226031Sstas<div class="memdoc">
752226031Sstas
753226031Sstas<p>
754226031SstasCreate an address of type KRB5_ADDRESS_ADDRPORT from (addr, port)<p>
755226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
756226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
757226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
758226031Sstas    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>built address from addr/port </td></tr>
759226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>address to use </td></tr>
760226031Sstas    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>port to use</td></tr>
761226031Sstas  </table>
762226031Sstas</dl>
763226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
764226031Sstas
765226031Sstas</div>
766226031Sstas</div><p>
767226031Sstas<a class="anchor" name="g55bd20d9a185cf7963e2117c1c804c85"></a><!-- doxytag: member="addr_families.c::krb5_max_sockaddr_size" ref="g55bd20d9a185cf7963e2117c1c804c85" args="(void)" -->
768226031Sstas<div class="memitem">
769226031Sstas<div class="memproto">
770226031Sstas      <table class="memname">
771226031Sstas        <tr>
772226031Sstas          <td class="memname">KRB5_LIB_FUNCTION size_t KRB5_LIB_CALL krb5_max_sockaddr_size           </td>
773226031Sstas          <td>(</td>
774226031Sstas          <td class="paramtype">void&nbsp;</td>
775226031Sstas          <td class="paramname">          </td>
776226031Sstas          <td>&nbsp;)&nbsp;</td>
777226031Sstas          <td></td>
778226031Sstas        </tr>
779226031Sstas      </table>
780226031Sstas</div>
781226031Sstas<div class="memdoc">
782226031Sstas
783226031Sstas<p>
784226031Sstaskrb5_max_sockaddr_size returns the max size of the .Li struct sockaddr that the Kerberos library will return.<p>
785226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an size_t of the maximum struct sockaddr. </dd></dl>
786226031Sstas
787226031Sstas</div>
788226031Sstas</div><p>
789226031Sstas<a class="anchor" name="gd7bc7e348e6d36c4cf09dcd2ee5a92a3"></a><!-- doxytag: member="addr_families.c::krb5_parse_address" ref="gd7bc7e348e6d36c4cf09dcd2ee5a92a3" args="(krb5_context context, const char *string, krb5_addresses *addresses)" -->
790226031Sstas<div class="memitem">
791226031Sstas<div class="memproto">
792226031Sstas      <table class="memname">
793226031Sstas        <tr>
794226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_parse_address           </td>
795226031Sstas          <td>(</td>
796226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
797226031Sstas          <td class="paramname"> <em>context</em>, </td>
798226031Sstas        </tr>
799226031Sstas        <tr>
800226031Sstas          <td class="paramkey"></td>
801226031Sstas          <td></td>
802226031Sstas          <td class="paramtype">const char *&nbsp;</td>
803226031Sstas          <td class="paramname"> <em>string</em>, </td>
804226031Sstas        </tr>
805226031Sstas        <tr>
806226031Sstas          <td class="paramkey"></td>
807226031Sstas          <td></td>
808226031Sstas          <td class="paramtype">krb5_addresses *&nbsp;</td>
809226031Sstas          <td class="paramname"> <em>addresses</em></td><td>&nbsp;</td>
810226031Sstas        </tr>
811226031Sstas        <tr>
812226031Sstas          <td></td>
813226031Sstas          <td>)</td>
814226031Sstas          <td></td><td></td><td></td>
815226031Sstas        </tr>
816226031Sstas      </table>
817226031Sstas</div>
818226031Sstas<div class="memdoc">
819226031Sstas
820226031Sstas<p>
821226031Sstaskrb5_parse_address returns the resolved hostname in string to the krb5_addresses addresses .<p>
822226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
823226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
824226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
825226031Sstas    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td></td></tr>
826226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addresses</em>&nbsp;</td><td></td></tr>
827226031Sstas  </table>
828226031Sstas</dl>
829226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
830226031Sstas
831226031Sstas</div>
832226031Sstas</div><p>
833226031Sstas<a class="anchor" name="g6e9adff4c8738f92fa2637698c06ccb9"></a><!-- doxytag: member="addr_families.c::krb5_print_address" ref="g6e9adff4c8738f92fa2637698c06ccb9" args="(const krb5_address *addr, char *str, size_t len, size_t *ret_len)" -->
834226031Sstas<div class="memitem">
835226031Sstas<div class="memproto">
836226031Sstas      <table class="memname">
837226031Sstas        <tr>
838226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_print_address           </td>
839226031Sstas          <td>(</td>
840226031Sstas          <td class="paramtype">const krb5_address *&nbsp;</td>
841226031Sstas          <td class="paramname"> <em>addr</em>, </td>
842226031Sstas        </tr>
843226031Sstas        <tr>
844226031Sstas          <td class="paramkey"></td>
845226031Sstas          <td></td>
846226031Sstas          <td class="paramtype">char *&nbsp;</td>
847226031Sstas          <td class="paramname"> <em>str</em>, </td>
848226031Sstas        </tr>
849226031Sstas        <tr>
850226031Sstas          <td class="paramkey"></td>
851226031Sstas          <td></td>
852226031Sstas          <td class="paramtype">size_t&nbsp;</td>
853226031Sstas          <td class="paramname"> <em>len</em>, </td>
854226031Sstas        </tr>
855226031Sstas        <tr>
856226031Sstas          <td class="paramkey"></td>
857226031Sstas          <td></td>
858226031Sstas          <td class="paramtype">size_t *&nbsp;</td>
859226031Sstas          <td class="paramname"> <em>ret_len</em></td><td>&nbsp;</td>
860226031Sstas        </tr>
861226031Sstas        <tr>
862226031Sstas          <td></td>
863226031Sstas          <td>)</td>
864226031Sstas          <td></td><td></td><td></td>
865226031Sstas        </tr>
866226031Sstas      </table>
867226031Sstas</div>
868226031Sstas<div class="memdoc">
869226031Sstas
870226031Sstas<p>
871226031Sstaskrb5_print_address prints the address in addr to the string string that have the length len. If ret_len is not NULL, it will be filled with the length of the string if size were unlimited (not including the final NUL) .<p>
872226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
873226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
874226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>address to be printed </td></tr>
875226031Sstas    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>pointer string to print the address into </td></tr>
876226031Sstas    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length that will fit into area pointed to by "str". </td></tr>
877226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ret_len</em>&nbsp;</td><td>return length the str.</td></tr>
878226031Sstas  </table>
879226031Sstas</dl>
880226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
881226031Sstas
882226031Sstas</div>
883226031Sstas</div><p>
884226031Sstas<a class="anchor" name="gec34704845bdaee3c08ebba2fa87d61e"></a><!-- doxytag: member="addr_families.c::krb5_sockaddr2address" ref="gec34704845bdaee3c08ebba2fa87d61e" args="(krb5_context context, const struct sockaddr *sa, krb5_address *addr)" -->
885226031Sstas<div class="memitem">
886226031Sstas<div class="memproto">
887226031Sstas      <table class="memname">
888226031Sstas        <tr>
889226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_sockaddr2address           </td>
890226031Sstas          <td>(</td>
891226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
892226031Sstas          <td class="paramname"> <em>context</em>, </td>
893226031Sstas        </tr>
894226031Sstas        <tr>
895226031Sstas          <td class="paramkey"></td>
896226031Sstas          <td></td>
897226031Sstas          <td class="paramtype">const struct sockaddr *&nbsp;</td>
898226031Sstas          <td class="paramname"> <em>sa</em>, </td>
899226031Sstas        </tr>
900226031Sstas        <tr>
901226031Sstas          <td class="paramkey"></td>
902226031Sstas          <td></td>
903226031Sstas          <td class="paramtype">krb5_address *&nbsp;</td>
904226031Sstas          <td class="paramname"> <em>addr</em></td><td>&nbsp;</td>
905226031Sstas        </tr>
906226031Sstas        <tr>
907226031Sstas          <td></td>
908226031Sstas          <td>)</td>
909226031Sstas          <td></td><td></td><td></td>
910226031Sstas        </tr>
911226031Sstas      </table>
912226031Sstas</div>
913226031Sstas<div class="memdoc">
914226031Sstas
915226031Sstas<p>
916226031Sstaskrb5_sockaddr2address stores a address a "struct sockaddr" sa in the krb5_address addr.<p>
917226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
918226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
919226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
920226031Sstas    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>a struct sockaddr to extract the address from </td></tr>
921226031Sstas    <tr><td valign="top"></td><td valign="top"><em>addr</em>&nbsp;</td><td>an Kerberos 5 address to store the address in.</td></tr>
922226031Sstas  </table>
923226031Sstas</dl>
924226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. </dd></dl>
925226031Sstas
926226031Sstas</div>
927226031Sstas</div><p>
928226031Sstas<a class="anchor" name="g76125115a2c040a3f70a4f66eada77aa"></a><!-- doxytag: member="addr_families.c::krb5_sockaddr2port" ref="g76125115a2c040a3f70a4f66eada77aa" args="(krb5_context context, const struct sockaddr *sa, int16_t *port)" -->
929226031Sstas<div class="memitem">
930226031Sstas<div class="memproto">
931226031Sstas      <table class="memname">
932226031Sstas        <tr>
933226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_sockaddr2port           </td>
934226031Sstas          <td>(</td>
935226031Sstas          <td class="paramtype">krb5_context&nbsp;</td>
936226031Sstas          <td class="paramname"> <em>context</em>, </td>
937226031Sstas        </tr>
938226031Sstas        <tr>
939226031Sstas          <td class="paramkey"></td>
940226031Sstas          <td></td>
941226031Sstas          <td class="paramtype">const struct sockaddr *&nbsp;</td>
942226031Sstas          <td class="paramname"> <em>sa</em>, </td>
943226031Sstas        </tr>
944226031Sstas        <tr>
945226031Sstas          <td class="paramkey"></td>
946226031Sstas          <td></td>
947226031Sstas          <td class="paramtype">int16_t *&nbsp;</td>
948226031Sstas          <td class="paramname"> <em>port</em></td><td>&nbsp;</td>
949226031Sstas        </tr>
950226031Sstas        <tr>
951226031Sstas          <td></td>
952226031Sstas          <td>)</td>
953226031Sstas          <td></td><td></td><td></td>
954226031Sstas        </tr>
955226031Sstas      </table>
956226031Sstas</div>
957226031Sstas<div class="memdoc">
958226031Sstas
959226031Sstas<p>
960226031Sstaskrb5_sockaddr2port extracts a port (if possible) from a "struct sockaddr.<p>
961226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
962226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
963226031Sstas    <tr><td valign="top"></td><td valign="top"><em>context</em>&nbsp;</td><td>a Keberos context </td></tr>
964226031Sstas    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>a struct sockaddr to extract the port from </td></tr>
965226031Sstas    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>a pointer to an int16_t store the port in.</td></tr>
966226031Sstas  </table>
967226031Sstas</dl>
968226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return an error code or 0. Will return KRB5_PROG_ATYPE_NOSUPP in case address type is not supported. </dd></dl>
969226031Sstas
970226031Sstas</div>
971226031Sstas</div><p>
972226031Sstas<a class="anchor" name="gc4c55c7ef3d078993b0177649593088c"></a><!-- doxytag: member="addr_families.c::krb5_sockaddr_uninteresting" ref="gc4c55c7ef3d078993b0177649593088c" args="(const struct sockaddr *sa)" -->
973226031Sstas<div class="memitem">
974226031Sstas<div class="memproto">
975226031Sstas      <table class="memname">
976226031Sstas        <tr>
977226031Sstas          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_sockaddr_uninteresting           </td>
978226031Sstas          <td>(</td>
979226031Sstas          <td class="paramtype">const struct sockaddr *&nbsp;</td>
980226031Sstas          <td class="paramname"> <em>sa</em>          </td>
981226031Sstas          <td>&nbsp;)&nbsp;</td>
982226031Sstas          <td></td>
983226031Sstas        </tr>
984226031Sstas      </table>
985226031Sstas</div>
986226031Sstas<div class="memdoc">
987226031Sstas
988226031Sstas<p>
989226031Sstaskrb5_sockaddr_uninteresting returns TRUE for all .Fa sa that the kerberos library thinks are uninteresting. One example are link local addresses.<p>
990226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
991226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
992226031Sstas    <tr><td valign="top"></td><td valign="top"><em>sa</em>&nbsp;</td><td>pointer to struct sockaddr that might be interesting.</td></tr>
993226031Sstas  </table>
994226031Sstas</dl>
995226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return a non zero for uninteresting addresses. </dd></dl>
996226031Sstas
997226031Sstas</div>
998226031Sstas</div><p>
999226031Sstas</div>
1000226031Sstas<hr size="1"><address style="text-align: right;"><small>
1001234027SstasGenerated on Wed Jan 11 14:07:47 2012 for HeimdalKerberos5library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>
1002226031Sstas</body>
1003226031Sstas</html>
1004