iPXE
socket.c File Reference

Sockets. More...

#include <stddef.h>
#include <errno.h>
#include <ipxe/socket.h>

Go to the source code of this file.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)
const char * sock_ntoa (struct sockaddr *sa)
 Transcribe socket address.
int sock_aton (const char *string, struct sockaddr *sa)
 Parse socket address.

Detailed Description

Sockets.

Definition in file socket.c.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ sock_ntoa()

const char * sock_ntoa ( struct sockaddr * sa)

Transcribe socket address.

Parameters
saSocket address
Return values
stringSocket address string

Definition at line 43 of file socket.c.

43 {
44 struct sockaddr_converter *converter;
45
47 if ( converter->family == sa->sa_family )
48 return converter->ntoa ( sa );
49 }
50 return NULL;
51}
#define NULL
NULL pointer (VOID *)
Definition Base.h:322
#define SOCKADDR_CONVERTERS
Socket address converter table.
Definition socket.h:138
Socket address converter.
Definition socket.h:116
sa_family_t family
Socket address family.
Definition socket.h:121
const char *(* ntoa)(struct sockaddr *sa)
Transcribe socket address.
Definition socket.h:127
struct sockaddr sa
Definition syslog.c:57
#define for_each_table_entry(pointer, table)
Iterate through all entries within a linker table.
Definition tables.h:386

References sockaddr_converter::family, for_each_table_entry, sockaddr_converter::ntoa, NULL, sa, and SOCKADDR_CONVERTERS.

Referenced by apply_dns_settings(), apply_syslog_settings(), dns_resolved(), dns_send_packet(), ping_callback(), pxe_tftp_open(), tcp_open(), tftp_uri(), and x509_check_ipaddress().

◆ sock_aton()

int sock_aton ( const char * string,
struct sockaddr * sa )

Parse socket address.

Parameters
stringSocket address string
saSocket address to fill in
Return values
rcReturn status code

Definition at line 60 of file socket.c.

60 {
61 struct sockaddr_converter *converter;
62
64 if ( converter->aton ( string, sa ) == 0 ) {
65 sa->sa_family = converter->family;
66 return 0;
67 }
68 }
69 return -EINVAL;
70}
#define EINVAL
Invalid argument.
Definition errno.h:429
int(* aton)(const char *string, struct sockaddr *sa)
Parse socket address.
Definition socket.h:134

References sockaddr_converter::aton, EINVAL, sockaddr_converter::family, for_each_table_entry, sa, and SOCKADDR_CONVERTERS.

Referenced by numeric_resolv(), slam_parse_multicast_address(), and x509_check_ipaddress().