corosync 3.1.7
Macros | Functions
totemip.c File Reference
#include <config.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <net/if.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <assert.h>
#include <stdlib.h>
#include <unistd.h>
#include <ifaddrs.h>
#include <corosync/totem/totemip.h>
#include <corosync/logsys.h>
#include <corosync/swab.h>
Include dependency graph for totemip.c:

Go to the source code of this file.

Macros

#define LOCALHOST_IPV4   "127.0.0.1"
 
#define LOCALHOST_IPV6   "::1"
 
#define NETLINK_BUFSIZE   16384
 
#define TOTEMIP_UDP_HEADER_SIZE   8
 
#define TOTEMIP_IPV4_HEADER_SIZE   20
 
#define TOTEMIP_IPV6_HEADER_SIZE   40
 

Functions

int totemip_equal (const struct totem_ip_address *addr1, const struct totem_ip_address *addr2)
 
int totemip_sa_equal (const struct totem_ip_address *totem_ip, const struct sockaddr *sa)
 
void totemip_copy (struct totem_ip_address *addr1, const struct totem_ip_address *addr2)
 
int32_t totemip_is_mcast (struct totem_ip_address *ip_addr)
 
int totemip_compare (const void *a, const void *b)
 
int totemip_localhost (int family, struct totem_ip_address *localhost)
 
int totemip_localhost_check (const struct totem_ip_address *addr)
 
const char * totemip_sa_print (const struct sockaddr *sa)
 
const char * totemip_print (const struct totem_ip_address *addr)
 
int totemip_totemip_to_sockaddr_convert (struct totem_ip_address *ip_addr, uint16_t port, struct sockaddr_storage *saddr, int *addrlen)
 
int totemip_parse (struct totem_ip_address *totemip, const char *addr, enum totem_ip_version_enum ip_version)
 
int totemip_sockaddr_to_totemip_convert (const struct sockaddr_storage *saddr, struct totem_ip_address *ip_addr)
 
int totemip_getifaddrs (struct qb_list_head *addrs)
 
void totemip_freeifaddrs (struct qb_list_head *addrs)
 
int totemip_iface_check (struct totem_ip_address *bindnet, struct totem_ip_address *boundto, int *interface_up, int *interface_num, int mask_high_bit)
 
size_t totemip_udpip_header_size (int family)
 

Macro Definition Documentation

◆ LOCALHOST_IPV4

#define LOCALHOST_IPV4   "127.0.0.1"

Definition at line 58 of file totemip.c.

◆ LOCALHOST_IPV6

#define LOCALHOST_IPV6   "::1"

Definition at line 59 of file totemip.c.

◆ NETLINK_BUFSIZE

#define NETLINK_BUFSIZE   16384

Definition at line 61 of file totemip.c.

◆ TOTEMIP_IPV4_HEADER_SIZE

#define TOTEMIP_IPV4_HEADER_SIZE   20

Definition at line 605 of file totemip.c.

◆ TOTEMIP_IPV6_HEADER_SIZE

#define TOTEMIP_IPV6_HEADER_SIZE   40

Definition at line 606 of file totemip.c.

◆ TOTEMIP_UDP_HEADER_SIZE

#define TOTEMIP_UDP_HEADER_SIZE   8

Definition at line 604 of file totemip.c.

Function Documentation

◆ totemip_compare()

int totemip_compare ( const void *  a,
const void *  b 
)

◆ totemip_copy()

void totemip_copy ( struct totem_ip_address addr1,
const struct totem_ip_address addr2 
)

◆ totemip_equal()

int totemip_equal ( const struct totem_ip_address addr1,
const struct totem_ip_address addr2 
)

Definition at line 72 of file totemip.c.

References totem_ip_address::addr, and totem_ip_address::family.

Referenced by totemip_iface_check().

◆ totemip_freeifaddrs()

void totemip_freeifaddrs ( struct qb_list_head *  addrs)

Definition at line 514 of file totemip.c.

References totem_ip_if_address::list, and totem_ip_if_address::name.

Referenced by totemip_getifaddrs(), and totemip_iface_check().

◆ totemip_getifaddrs()

int totemip_getifaddrs ( struct qb_list_head *  addrs)

◆ totemip_iface_check()

int totemip_iface_check ( struct totem_ip_address bindnet,
struct totem_ip_address boundto,
int *  interface_up,
int *  interface_num,
int  mask_high_bit 
)

◆ totemip_is_mcast()

int32_t totemip_is_mcast ( struct totem_ip_address ip_addr)

Definition at line 134 of file totemip.c.

References addr, totem_ip_address::addr, and totem_ip_address::family.

Referenced by totem_config_validate().

◆ totemip_localhost()

int totemip_localhost ( int  family,
struct totem_ip_address localhost 
)

Definition at line 202 of file totemip.c.

◆ totemip_localhost_check()

int totemip_localhost_check ( const struct totem_ip_address addr)

Definition at line 225 of file totemip.c.

◆ totemip_parse()

int totemip_parse ( struct totem_ip_address totemip,
const char *  addr,
enum totem_ip_version_enum  ip_version 
)

◆ totemip_print()

const char * totemip_print ( const struct totem_ip_address addr)

◆ totemip_sa_equal()

int totemip_sa_equal ( const struct totem_ip_address totem_ip,
const struct sockaddr *  sa 
)

Definition at line 95 of file totemip.c.

References totem_ip_address::addr, and totem_ip_address::family.

◆ totemip_sa_print()

const char * totemip_sa_print ( const struct sockaddr *  sa)

Definition at line 234 of file totemip.c.

◆ totemip_sockaddr_to_totemip_convert()

int totemip_sockaddr_to_totemip_convert ( const struct sockaddr_storage *  saddr,
struct totem_ip_address ip_addr 
)

Definition at line 420 of file totemip.c.

References totem_ip_address::addr, totem_ip_address::family, and totem_ip_address::nodeid.

Referenced by totemip_getifaddrs().

◆ totemip_totemip_to_sockaddr_convert()

int totemip_totemip_to_sockaddr_convert ( struct totem_ip_address ip_addr,
uint16_t  port,
struct sockaddr_storage *  saddr,
int *  addrlen 
)

Definition at line 264 of file totemip.c.

References totem_ip_address::addr, and totem_ip_address::family.

Referenced by totemknet_member_add().

◆ totemip_udpip_header_size()

size_t totemip_udpip_header_size ( int  family)