M src/libood/ood/inet/socket.c => src/libood/ood/inet/socket.c +1 -1
@@ 116,7 116,7 @@ ood_inet_socket_listen(struct ood_inet_socket *listener, int backlog)
return ood_error;
}
- int result = bind(listener->fd, &listener->address->generic, sizeof listener->address->ipv4);
+ int result = sa_bind(listener->fd, listener->address);
if (result < 0) {
close_socket(listener);
return ood_error;
M src/sa/sa.c => src/sa/sa.c +6 -0
@@ 129,3 129,9 @@ sa_str(struct sa_address const *address)
default: return "(unsupported)";
}
}
+
+extern int
+sa_bind(int socket, struct sa_address const *address);
+
+extern int
+sa_connect(int socket, struct sa_address const *address);
M src/sa/sa.h => src/sa/sa.h +13 -0
@@ 67,4 67,17 @@ char const *
sa_str(struct sa_address const *address);
+inline int
+sa_bind(int socket, struct sa_address const *address)
+{
+ return bind(socket, &address->generic, sa_len(address));
+}
+
+inline int
+sa_connect(int socket, struct sa_address const *address)
+{
+ return connect(socket, &address->generic, sa_len(address));
+}
+
+
#endif