Loading prrt/time-protocol.h +25 −8 Original line number Diff line number Diff line #include <assert.h> #ifdef XLAP Loading @@ -12,6 +11,7 @@ # include <sys/socket.h> # include <netdb.h> # include <unistd.h> # include <netinet/in.h> typedef int socket_t; Loading Loading @@ -45,17 +45,18 @@ static inline socket_t _open_sender(struct arguments *args) static inline socket_t _open_receiver(struct arguments *args) { int ssock = socket(AF_INET6, SOCK_STREAM, 0); int ssock = socket(AF_INET, SOCK_STREAM, 0); assert(ssock >= 0); int yes = 1; setsockopt(ssock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); struct sockaddr_in6 address = { .sin6_family = AF_INET6, .sin6_port = htons(args->port), .sin6_addr = in6addr_any, struct sockaddr_in address = { .sin_family = AF_INET, .sin_port = htons(args->port), }; memset(address.sin_zero, '\0', sizeof(address.sin_zero)); address.sin_addr.s_addr = htonl(INADDR_ANY); assert(0 == bind(ssock, (const struct sockaddr *) &address, sizeof(address))); assert(0 == listen(ssock, SOMAXCONN)); Loading @@ -70,12 +71,28 @@ static inline socket_t _open_receiver(struct arguments *args) static inline void _send(socket_t conn, const char *buf, size_t size) { write(conn, buf, size); int written = 0; int n = 0; while (written < size) { n = send(conn, buf, size, 0); written += n; buf += n; } } static inline ssize_t _recv(socket_t conn, char *buf, size_t size) { return read(conn, buf, size); ssize_t received = 0; int n = 0; while (received < size) { n = recv(conn, buf, size - received, 0); if (n == 0) { break; } buf += n; received += n; } return received; } static inline void _close(socket_t conn) Loading Loading
prrt/time-protocol.h +25 −8 Original line number Diff line number Diff line #include <assert.h> #ifdef XLAP Loading @@ -12,6 +11,7 @@ # include <sys/socket.h> # include <netdb.h> # include <unistd.h> # include <netinet/in.h> typedef int socket_t; Loading Loading @@ -45,17 +45,18 @@ static inline socket_t _open_sender(struct arguments *args) static inline socket_t _open_receiver(struct arguments *args) { int ssock = socket(AF_INET6, SOCK_STREAM, 0); int ssock = socket(AF_INET, SOCK_STREAM, 0); assert(ssock >= 0); int yes = 1; setsockopt(ssock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); struct sockaddr_in6 address = { .sin6_family = AF_INET6, .sin6_port = htons(args->port), .sin6_addr = in6addr_any, struct sockaddr_in address = { .sin_family = AF_INET, .sin_port = htons(args->port), }; memset(address.sin_zero, '\0', sizeof(address.sin_zero)); address.sin_addr.s_addr = htonl(INADDR_ANY); assert(0 == bind(ssock, (const struct sockaddr *) &address, sizeof(address))); assert(0 == listen(ssock, SOMAXCONN)); Loading @@ -70,12 +71,28 @@ static inline socket_t _open_receiver(struct arguments *args) static inline void _send(socket_t conn, const char *buf, size_t size) { write(conn, buf, size); int written = 0; int n = 0; while (written < size) { n = send(conn, buf, size, 0); written += n; buf += n; } } static inline ssize_t _recv(socket_t conn, char *buf, size_t size) { return read(conn, buf, size); ssize_t received = 0; int n = 0; while (received < size) { n = recv(conn, buf, size - received, 0); if (n == 0) { break; } buf += n; received += n; } return received; } static inline void _close(socket_t conn) Loading