33
33
* Create a new datagram instance of given size.
34
34
* If size is 0, make it as large as supported by UDP.
35
35
*/
36
- datagram * datagram_new (size_t size )
36
+ datagram *
37
+ datagram_new (size_t size )
37
38
{
38
- if (size == 0 )
39
+ if (size == 0 )
39
40
size = UDP_DGM_MAXSIZE ;
40
41
datagram * dgm = NULL ;
41
42
mem_allocate (& dgm , sizeof (datagram ));
@@ -49,9 +50,10 @@ datagram * datagram_new(size_t size)
49
50
/*
50
51
* Free a datagram instance.
51
52
*/
52
- void datagram_free (datagram * dgm )
53
+ void
54
+ datagram_free (datagram * dgm )
53
55
{
54
- if (dgm ) {
56
+ if (dgm ) {
55
57
mem_free (& dgm -> data );
56
58
free (dgm );
57
59
}
@@ -63,13 +65,14 @@ void datagram_free(datagram *dgm)
63
65
* Open a UDP socket on the given port.
64
66
* Will quit on errors.
65
67
*/
66
- udp_socket * udp_socket_new (uint16_t port )
68
+ udp_socket *
69
+ udp_socket_new (uint16_t port )
67
70
{
68
71
udp_socket * s = NULL ;
69
72
mem_allocate (& s , sizeof (udp_socket ));
70
73
s -> port = port ;
71
74
s -> fd = socket (PF_INET , SOCK_DGRAM , 0 );
72
- if (s -> fd < 0 ) {
75
+ if (s -> fd < 0 ) {
73
76
fprintf (stderr , "FATAL: socket(udp) returned %d: %s (%d)\n" ,
74
77
s -> fd , strerror (errno ), errno );
75
78
exit (-1 );
@@ -80,7 +83,7 @@ udp_socket * udp_socket_new(uint16_t port)
80
83
sa .sin_port = htons (s -> port );
81
84
sa .sin_addr .s_addr = htonl (INADDR_ANY );
82
85
int ret = bind (s -> fd , (struct sockaddr * )& sa , sizeof (sa ));
83
- if (ret < 0 ) {
86
+ if (ret < 0 ) {
84
87
fprintf (stderr , "FATAL: bind(%d/udp) returned %d: %s (%d)\n" ,
85
88
s -> port , ret , strerror (errno ), errno );
86
89
exit (-1 );
@@ -92,9 +95,10 @@ udp_socket * udp_socket_new(uint16_t port)
92
95
/*
93
96
* Close UDP socket.
94
97
*/
95
- void udp_socket_free (udp_socket * s )
98
+ void
99
+ udp_socket_free (udp_socket * s )
96
100
{
97
- if (s ) {
101
+ if (s ) {
98
102
close (s -> fd );
99
103
free (s );
100
104
}
@@ -104,14 +108,15 @@ void udp_socket_free(udp_socket *s)
104
108
* Receive next incoming UDP datagram on socket s.
105
109
* Blocks until a datagram is received.
106
110
*/
107
- datagram * udp_socket_recv (udp_socket * s )
111
+ datagram *
112
+ udp_socket_recv (udp_socket * s )
108
113
{
109
114
char buf [UDP_DGM_MAXSIZE ];
110
115
struct sockaddr_in sa ;
111
116
socklen_t sa_len = sizeof (sa );
112
117
int ret = recvfrom (s -> fd , buf , sizeof (buf ), 0 ,
113
118
(struct sockaddr * )& sa , & sa_len );
114
- if (ret < 0 ) {
119
+ if (ret < 0 ) {
115
120
log_printf (NULL , "ERROR: recvfrom(%d) returned %d: %s (%d)\n" ,
116
121
s -> fd , ret , strerror (errno ), errno );
117
122
}
@@ -126,11 +131,12 @@ datagram * udp_socket_recv(udp_socket *s)
126
131
/*
127
132
* Send a UDP datagram onto socket s.
128
133
*/
129
- void udp_socket_send (udp_socket * s , datagram * dgm )
134
+ void
135
+ udp_socket_send (udp_socket * s , datagram * dgm )
130
136
{
131
137
int ret = sendto (s -> fd , dgm -> data , dgm -> len , 0 ,
132
138
(struct sockaddr * )& dgm -> peer_addr , sizeof (dgm -> peer_addr ));
133
- if (ret < 0 ) {
139
+ if (ret < 0 ) {
134
140
log_printf (NULL , "ERROR: sendto(%d to %s:%d) returned %d: %s (%d)\n" ,
135
141
s -> fd , inet_ntoa (dgm -> peer_addr .sin_addr ),
136
142
ntohs (dgm -> peer_addr .sin_port ),
0 commit comments