Functions | Variables
address_sorting.c File Reference
#include "address_sorting_internal.h"
#include <errno.h>
#include <inttypes.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
Include dependency graph for address_sorting.c:

Go to the source code of this file.

Functions

address_sorting_family address_sorting_abstract_get_family (const address_sorting_address *address)
 
static bool address_sorting_get_source_addr (const address_sorting_address *dest, address_sorting_address *source)
 
bool address_sorting_get_source_addr_for_testing (const address_sorting_address *dest, address_sorting_address *source)
 
void address_sorting_init ()
 
void address_sorting_override_source_addr_factory_for_testing (address_sorting_source_addr_factory *factory)
 
void address_sorting_rfc_6724_sort (address_sorting_sortable *sortables, size_t sortables_len)
 
void address_sorting_shutdown ()
 
static int compare_dest_precedence (const address_sorting_sortable *first, const address_sorting_sortable *second)
 
static int compare_dest_scope (const address_sorting_sortable *first, const address_sorting_sortable *second)
 
static int compare_source_addr_exists (const address_sorting_sortable *first, const address_sorting_sortable *second)
 
static int compare_source_dest_labels_match (const address_sorting_sortable *first, const address_sorting_sortable *second)
 
static int compare_source_dest_prefix_match_lengths (const address_sorting_sortable *first, const address_sorting_sortable *second)
 
static int compare_source_dest_scope_matches (const address_sorting_sortable *first, const address_sorting_sortable *second)
 
static int get_label_value (const address_sorting_address *resolved_addr)
 
static int get_precedence_value (const address_sorting_address *resolved_addr)
 
static int in6_is_addr_6bone (const struct in6_addr *ipv6_address)
 
static int in6_is_addr_6to4 (const struct in6_addr *ipv6_address)
 
static int in6_is_addr_linklocal (const struct in6_addr *ipv6_address)
 
static int in6_is_addr_loopback (const struct in6_addr *ipv6_address)
 
static int in6_is_addr_sitelocal (const struct in6_addr *ipv6_address)
 
static int in6_is_addr_teredo (const struct in6_addr *ipv6_address)
 
static int in6_is_addr_ula (const struct in6_addr *ipv6_address)
 
static int in6_is_addr_v4compat (const struct in6_addr *ipv6_address)
 
static int in6_is_addr_v4mapped (const struct in6_addr *ipv6_address)
 
static int ipv6_prefix_match_length (const struct sockaddr_in6 *sa, const struct sockaddr_in6 *sb)
 
static int rfc_6724_compare (const void *a, const void *b)
 
static void sanity_check_private_fields_are_unused (const address_sorting_sortable *sortable)
 
static int sockaddr_get_scope (const address_sorting_address *resolved_addr)
 

Variables

static address_sorting_source_addr_factoryg_current_source_addr_factory
 
static const int kIPv6AddrScopeGlobal = 3
 
static const int kIPv6AddrScopeLinkLocal = 1
 
static const int kIPv6AddrScopeSiteLocal = 2
 

Function Documentation

◆ address_sorting_abstract_get_family()

address_sorting_family address_sorting_abstract_get_family ( const address_sorting_address address)

Definition at line 135 of file address_sorting.c.

◆ address_sorting_get_source_addr()

static bool address_sorting_get_source_addr ( const address_sorting_address dest,
address_sorting_address source 
)
static

Definition at line 58 of file address_sorting.c.

◆ address_sorting_get_source_addr_for_testing()

bool address_sorting_get_source_addr_for_testing ( const address_sorting_address dest,
address_sorting_address source 
)

Definition at line 64 of file address_sorting.c.

◆ address_sorting_init()

void address_sorting_init ( )

Definition at line 361 of file address_sorting.c.

◆ address_sorting_override_source_addr_factory_for_testing()

void address_sorting_override_source_addr_factory_for_testing ( address_sorting_source_addr_factory factory)

Definition at line 329 of file address_sorting.c.

◆ address_sorting_rfc_6724_sort()

void address_sorting_rfc_6724_sort ( address_sorting_sortable sortables,
size_t  sortables_len 
)

Definition at line 349 of file address_sorting.c.

◆ address_sorting_shutdown()

void address_sorting_shutdown ( )

Definition at line 369 of file address_sorting.c.

◆ compare_dest_precedence()

static int compare_dest_precedence ( const address_sorting_sortable first,
const address_sorting_sortable second 
)
static

Definition at line 268 of file address_sorting.c.

◆ compare_dest_scope()

static int compare_dest_scope ( const address_sorting_sortable first,
const address_sorting_sortable second 
)
static

Definition at line 274 of file address_sorting.c.

◆ compare_source_addr_exists()

static int compare_source_addr_exists ( const address_sorting_sortable first,
const address_sorting_sortable second 
)
static

Definition at line 222 of file address_sorting.c.

◆ compare_source_dest_labels_match()

static int compare_source_dest_labels_match ( const address_sorting_sortable first,
const address_sorting_sortable second 
)
static

Definition at line 249 of file address_sorting.c.

◆ compare_source_dest_prefix_match_lengths()

static int compare_source_dest_prefix_match_lengths ( const address_sorting_sortable first,
const address_sorting_sortable second 
)
static

Definition at line 280 of file address_sorting.c.

◆ compare_source_dest_scope_matches()

static int compare_source_dest_scope_matches ( const address_sorting_sortable first,
const address_sorting_sortable second 
)
static

Definition at line 230 of file address_sorting.c.

◆ get_label_value()

static int get_label_value ( const address_sorting_address resolved_addr)
static

Definition at line 147 of file address_sorting.c.

◆ get_precedence_value()

static int get_precedence_value ( const address_sorting_address resolved_addr)
static

Definition at line 176 of file address_sorting.c.

◆ in6_is_addr_6bone()

static int in6_is_addr_6bone ( const struct in6_addr *  ipv6_address)
static

Definition at line 130 of file address_sorting.c.

◆ in6_is_addr_6to4()

static int in6_is_addr_6to4 ( const struct in6_addr *  ipv6_address)
static

Definition at line 114 of file address_sorting.c.

◆ in6_is_addr_linklocal()

static int in6_is_addr_linklocal ( const struct in6_addr *  ipv6_address)
static

Definition at line 109 of file address_sorting.c.

◆ in6_is_addr_loopback()

static int in6_is_addr_loopback ( const struct in6_addr *  ipv6_address)
static

Definition at line 87 of file address_sorting.c.

◆ in6_is_addr_sitelocal()

static int in6_is_addr_sitelocal ( const struct in6_addr *  ipv6_address)
static

Definition at line 104 of file address_sorting.c.

◆ in6_is_addr_teredo()

static int in6_is_addr_teredo ( const struct in6_addr *  ipv6_address)
static

Definition at line 124 of file address_sorting.c.

◆ in6_is_addr_ula()

static int in6_is_addr_ula ( const struct in6_addr *  ipv6_address)
static

Definition at line 119 of file address_sorting.c.

◆ in6_is_addr_v4compat()

static int in6_is_addr_v4compat ( const struct in6_addr *  ipv6_address)
static

Definition at line 98 of file address_sorting.c.

◆ in6_is_addr_v4mapped()

static int in6_is_addr_v4mapped ( const struct in6_addr *  ipv6_address)
static

Definition at line 93 of file address_sorting.c.

◆ ipv6_prefix_match_length()

static int ipv6_prefix_match_length ( const struct sockaddr_in6 sa,
const struct sockaddr_in6 sb 
)
static

Definition at line 69 of file address_sorting.c.

◆ rfc_6724_compare()

static int rfc_6724_compare ( const void *  a,
const void *  b 
)
static

Definition at line 300 of file address_sorting.c.

◆ sanity_check_private_fields_are_unused()

static void sanity_check_private_fields_are_unused ( const address_sorting_sortable sortable)
static

Definition at line 338 of file address_sorting.c.

◆ sockaddr_get_scope()

static int sockaddr_get_scope ( const address_sorting_address resolved_addr)
static

Definition at line 203 of file address_sorting.c.

Variable Documentation

◆ g_current_source_addr_factory

address_sorting_source_addr_factory* g_current_source_addr_factory
static
Initial value:
=
NULL

Definition at line 55 of file address_sorting.c.

◆ kIPv6AddrScopeGlobal

const int kIPv6AddrScopeGlobal = 3
static

Definition at line 53 of file address_sorting.c.

◆ kIPv6AddrScopeLinkLocal

const int kIPv6AddrScopeLinkLocal = 1
static

Definition at line 51 of file address_sorting.c.

◆ kIPv6AddrScopeSiteLocal

const int kIPv6AddrScopeSiteLocal = 2
static

Definition at line 52 of file address_sorting.c.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:02