mptcpd
Multipath TCP Daemon
Loading...
Searching...
No Matches
Functions
sockaddr.c File Reference

mptcpd struct sockaddr related utility functions. More...

#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <ell/ell.h>
#include <mptcpd/private/sockaddr.h>
Include dependency graph for sockaddr.c:

Functions

bool mptcpd_sockaddr_storage_init (in_addr_t const *addr4, struct in6_addr const *addr6, in_port_t port, struct sockaddr_storage *addr)
 Initialize sockaddr_storage instance.
 
struct sockaddr * mptcpd_sockaddr_copy (struct sockaddr const *sa)
 Deep copy a sockaddr.
 

Detailed Description

mptcpd struct sockaddr related utility functions.

Copyright (c) 2019-2022, Intel Corporation

Function Documentation

◆ mptcpd_sockaddr_copy()

struct sockaddr * mptcpd_sockaddr_copy ( struct sockaddr const *  sa)

Deep copy a sockaddr.

Copy the address family-specific contents of a sockaddr. For an AF_INET address family, a struct sockaddr_in will be dynamically allocated and copied from sa. Similarly, struct sockaddr_in6 will be allocated and copied from sa for the AF_INET6 address family case.

Returns
Dynamically allocated copy of sa if the sa_family member is AF_INET or AF_INET6, and NULL otherwise. Deallocate with l_free().

◆ mptcpd_sockaddr_storage_init()

bool mptcpd_sockaddr_storage_init ( in_addr_t const *  addr4,
struct in6_addr const *  addr6,
in_port_t  port,
struct sockaddr_storage *  addr 
)

Initialize sockaddr_storage instance.

Initialize a sockaddr_storage instance with the provided IPv4 or IPv6 address. Only one is required and used. The port may be zero in cases where it is optional.

Parameters
[in]addr4IPv4 internet address (network byte order).
[in]addr6IPv6 internet address.
[in]portTCP port (network byte order).
[in,out]addrmptcpd network address information.
Returns
true on success. false otherwise.