![]() | ![]() | ![]() | libsoup Reference Manual | ![]() |
---|
SoupAddressSoupAddress — Higher-level IP address object |
enum SoupAddressFamily; #define SOUP_ADDRESS_ANY_PORT SoupAddress* soup_address_new (const char *name, guint port); SoupAddress* soup_address_new_from_sockaddr (struct sockaddr *sa, int len); SoupAddress* soup_address_new_any (SoupAddressFamily family, guint port); void (*SoupAddressCallback) (SoupAddress *addr, guint status, gpointer data); void soup_address_resolve_async (SoupAddress *addr, SoupAddressCallback callback, gpointer user_data); guint soup_address_resolve_sync (SoupAddress *addr); const char* soup_address_get_name (SoupAddress *addr);
SoupAddress represents the address of a TCP connection endpoint; both the IP address and the port. (It is somewhat like an object-oriented version of struct sockaddr.)
If libsoup was built with IPv6 support, SoupAddress will allow both IPv4 and IPv6 addresses.
typedef enum { SOUP_ADDRESS_FAMILY_IPV4 = AF_INET, SOUP_ADDRESS_FAMILY_IPV6 = AF_INET6 } SoupAddressFamily;
The supported address families. Note that the
SOUP_ADDRESS_FAMILY_IPV6
constant is available even if libsoup was
built without IPv6 support, but attempting to create an IPv6 address
will fail in that case.
SOUP_ADDRESS_FAMILY_IPV4 | an IPv4 address |
SOUP_ADDRESS_FAMILY_IPV6 | an IPv6 address |
#define SOUP_ADDRESS_ANY_PORT 0
This can be passed to any SoupAddress method that expects a port to indicate that you don't care what port is used.
SoupAddress* soup_address_new (const char *name, guint port);
Creates a SoupAddress from name
and port
. The SoupAddress's IP
address may not be available right away; the caller can call
soup_address_resolve_async()
or soup_address_resolve_sync()
to
force a DNS resolution.
name : | a hostname or physical address |
port : | a port number |
Returns : | a SoupAddress |
SoupAddress* soup_address_new_from_sockaddr (struct sockaddr *sa, int len);
Returns a SoupAddress equivalent to sa
(or NULL
if sa
's
address family isn't supported)
sa : | a pointer to a sockaddr |
len : | size of sa
|
Returns : | the new SoupAddress |
SoupAddress* soup_address_new_any (SoupAddressFamily family, guint port);
Returns a SoupAddress corresponding to the "any" address
for family
(or NULL
if family
isn't supported), suitable for
passing to soup_socket_server_new()
.
family : | the address family |
port : | the port number (usually SOUP_ADDRESS_ANY_PORT )
|
Returns : | the new SoupAddress |
void (*SoupAddressCallback) (SoupAddress *addr, guint status, gpointer data);
The callback function passed to soup_address_resolve_async()
.
addr : | the SoupAddress that was resolved |
status : | SOUP_STATUS_OK or SOUP_STATUS_CANT_RESOLVE
|
data : | the user data that was passed to soup_address_resolve_async()
|
void soup_address_resolve_async (SoupAddress *addr, SoupAddressCallback callback, gpointer user_data);
Asynchronously resolves the missing half of addr
. (Its IP address
if it was created with soup_address_new()
, or its hostname if it
was created with soup_address_new_from_sockaddr()
or
soup_address_new_any()
.) callback
will be called when the
resolution finishes (successfully or not).
addr : | a SoupAddress |
callback : | callback to call with the result |
user_data : | data for callback
|
guint soup_address_resolve_sync (SoupAddress *addr);
Synchronously resolves the missing half of addr
, as with
soup_address_resolve_async()
.
addr : | a SoupAddress |
Returns : | SOUP_STATUS_OK or SOUP_STATUS_CANT_RESOLVE
|
<< soup-dns | SoupAuth >> |