configthreads_types.h [plain text]
#ifndef _CONFIGTHREADS_TYPES_H
#define _CONFIGTHREADS_TYPES_H
#include <netinet/in.h>
typedef enum {
ip6config_status_success_e = 0,
ip6config_status_invalid_parameter_e = 1,
ip6config_status_invalid_operation_e = 2,
ip6config_status_allocation_failed_e = 3,
ip6config_status_internal_error_e = 4,
ip6config_status_operation_not_supported_e = 5,
ip6config_status_address_in_use_e = 6,
ip6config_status_media_inactive_e = 7,
ip6config_status_no_rtadv_response_e = 8,
ip6config_status_last_e
} ip6config_status_t;
static __inline__ const char *
ip6config_status_string(ip6config_status_t status)
{
static const char * str[] = {
"operation succeded",
"invalid parameter",
"invalid operation",
"allocation failed",
"internal error",
"operation not supported",
"address in use",
"media inactive",
"no router advertisement response"
};
if (status < 0 || status >= ip6config_status_last_e)
return ("<unknown>");
return (str[status]);
}
typedef enum {
ip6config_method_none_e = 0,
ip6config_method_automatic_e = 1,
ip6config_method_rtadv_e = 2,
ip6config_method_manual_e = 3,
ip6config_method_6to4_e = 4,
ip6config_method_linklocal_e = 5,
ip6config_method_last_e
} ip6config_method_t;
static __inline__ const char *
ip6config_method_string(ip6config_method_t m)
{
static const char * str[] = {
"NONE",
"AUTOMATIC",
"RTADV",
"MANUAL",
"6TO4",
"LINKLOCAL"
};
if (m < 0 || m >= ip6config_method_last_e)
return ("<unknown>");
return (str[m]);
}
typedef enum {
relay_address_type_none_e = 0,
relay_address_type_ipv6_e = 1,
relay_address_type_ipv4_e = 2,
relay_address_type_dns_e = 3,
relay_address_type_last_e
} relay_address_type_t;
static __inline__ const char *
relay_address_type_string(relay_address_type_t m)
{
static const char * str[] = {
"NONE",
"IPV6",
"IPV4",
"DNS"
};
if (m < 0 || m >= relay_address_type_last_e)
return ("<unknown>");
return (str[m]);
}
typedef struct {
relay_address_type_t addr_type;
union {
struct in6_addr ip6_relay_addr;
struct in_addr ip4_relay_addr;
char * dns_relay_addr;
} relay_address_u;
} relay_address_t;
typedef struct {
unsigned char n_ip4;
relay_address_t relay_address;
struct in_addr * ip4_addrs_list;
} stf_method_data_t;
typedef struct {
unsigned char n_ip6;
stf_method_data_t stf_data;
struct {
struct in6_addr addr;
int prefixLen;
int flags;
} ip6[0];
} ip6config_method_data_t;
typedef struct {
struct in6_addr addr;
int prefixlen;
int flags;
} ip6_addrinfo_t;
typedef struct {
int n_addrs;
ip6_addrinfo_t * addr_list;
} ip6_addrinfo_list_t;
#endif _CONFIGTHREADS_TYPES_H