su_localinfo.c File Reference


Detailed Description

Obtain list of local addresses.

Author:
Pekka Pessi <Pekka.Pessi@nokia-email.address.hidden>
Date:
Created: Wed Oct 4 14:09:29 EET 2000 ppessi

#include "config.h"
#include "sofia-sip/su.h"
#include "sofia-sip/su_localinfo.h"
#include "su_module_debug.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <stddef.h>
#include <sys/types.h>

Include dependency graph for su_localinfo.c:

Functions

int su_getlocalinfo (su_localinfo_t const *hints, su_localinfo_t **return_localinfo)
 Request local address information.
void su_freelocalinfo (su_localinfo_t *tbf)
 Free local address information.
char const * su_gli_strerror (int error)
 Describe su_localinfo errors.
su_localinfo_tsu_copylocalinfo (su_localinfo_t const *li0)
 Copy a localinfo structure.
int su_sockaddr_scope (su_sockaddr_t const *su, socklen_t sulen)
 Return the scope of address in the sockaddr structure.
int su_getlocalip (su_sockaddr_t *sa)
 Return local IP address.


Function Documentation

void su_freelocalinfo ( su_localinfo_t tbf  ) 

Free local address information.

Free a list of su_localinfo_t structures obtained with su_getlocalinfo() or su_copylocalinfo() along with socket addresses and strings associated with them.

See also:
su_getlocalinfo(), su_copylocalinfo(), su_localinfo_t

int su_getlocalinfo ( su_localinfo_t const *  hints,
su_localinfo_t **  return_localinfo 
)

Request local address information.

Gather the network interfaces and the addresses corresponding to them, check if they match to the search criteria specifed by hints and return a list of matching local address information in the return_localinfo. The local address information may include IPv4/IPv6 addresses, interface name, interface index, address scope, and domain names corresponding to the local addresses.

Parameters:
[in] hints specifies selection criteria
[out] return_localinfo return list of local addresses
Selection criteria - hints
The selection criteria hints is used to select which addresses are returned and what kind of information is included in the res list.

Selection by flags - hints->li_flags
The hints->li_flags contain flags, which can be combined with bit-wise or. The currently defined flags are as follows:

Selection by address family - hints->li_family
The address family can have three values: 0, AF_INET and AF_INET6. If address family hints->li_family, both IPv4 and IPv6 addresses are returned.

Selection by interface index - hints->li_index
If the field hints->li_index is non-zero, only the addresses assigned to the interface with given index are returned. The list of interface indices and names can be obtained by the function su_if_names().

Selection by interface name - hints->li_ifname
If the field hints->li_ifname is not NULL, only the addresses assigned to the named interface are returned. The list of interface names can be obtained by the function su_if_names().

Selection by address scope - hints->li_scope
If the field hints->li_scope is nonzero, only the addresses with matching scope are returned. The different address scopes can be combined with bitwise or. They are defined as follows

For instance, setting hints->li_scope to LI_SCOPE_GLOBAL | LI_SCOPE_SITE, both the global and site-local addresses are returned.

See also:
RFC 1918, RFC 4291, su_sockaddr_scope()
Selection by domain name - hints->li_canonname
If this field is non-null, the domain name (DNS PTR) corresponding to local IP addresses should match to the name given in this field.

Returns:
Zero (ELI_NOERROR) when successful, or negative error code when failed.
Diagnostics
Use su_gli_strerror() in order to obtain a string describing the error code returned by su_getlocalinfo().

int su_getlocalip ( su_sockaddr_t sa  ) 

Return local IP address.

Deprecated:
Use su_getlocalinfo() instead.

char const* su_gli_strerror ( int  error  ) 

Describe su_localinfo errors.

The function su_gli_strerror() returns a string describing the error condition indicated by the code that was returned by the function su_getlocalinfo().

Parameters:
error error code returned by su_getlocalinfo()
Returns:
A pointer to string describing the error condition.


Sofia-SIP 1.12.6work - Copyright (C) 2006 Nokia Corporation. All rights reserved. Licensed under the terms of the GNU Lesser General Public License.