diff --git a/README.md b/README.md index 12eb41a..e2ee734 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ int main(int argc, const char* argv[]) size_t bytes_received = 0; tcs_receive(client_socket, recv_buffer, sizeof(recv_buffer), TCS_MSG_WAITALL, &bytes_received); - tcs_shutdown(client_socket, TCS_SD_BOTH); + tcs_shutdown(client_socket, TCS_SHUTDOWN_BOTH); tcs_close(&client_socket); tcs_lib_free(); diff --git a/examples/tcp_client.c b/examples/tcp_client.c index a241610..fdd13a8 100644 --- a/examples/tcp_client.c +++ b/examples/tcp_client.c @@ -58,7 +58,7 @@ int main(void) recv_buffer[bytes_received] = '\0'; printf("received: %s\n", recv_buffer); - if (tcs_shutdown(client_socket, TCS_SD_BOTH) != TCS_SUCCESS) + if (tcs_shutdown(client_socket, TCS_SHUTDOWN_BOTH) != TCS_SUCCESS) return show_error("Could not shutdown socket"); if (tcs_close(&client_socket) != TCS_SUCCESS) diff --git a/examples/tcp_server.c b/examples/tcp_server.c index c1dbcec..84ebf91 100644 --- a/examples/tcp_server.c +++ b/examples/tcp_server.c @@ -65,7 +65,7 @@ int main(void) if (tcs_send(child_socket, (const uint8_t*)msg, sizeof(msg), TCS_MSG_SENDALL, NULL) != TCS_SUCCESS) return show_error("Could not send reply message"); - if (tcs_shutdown(child_socket, TCS_SD_BOTH) != TCS_SUCCESS) + if (tcs_shutdown(child_socket, TCS_SHUTDOWN_BOTH) != TCS_SUCCESS) return show_error("Could not shutdown socket"); if (tcs_close(&child_socket) != TCS_SUCCESS) diff --git a/include/tinycsocket.h b/include/tinycsocket.h index 5a85efe..c3c7e09 100644 --- a/include/tinycsocket.h +++ b/include/tinycsocket.h @@ -29,7 +29,7 @@ #ifndef TINYCSOCKET_INTERNAL_H_ #define TINYCSOCKET_INTERNAL_H_ -static const char* const TCS_VERSION_TXT = "v0.3.75"; +static const char* const TCS_VERSION_TXT = "v0.3.76"; static const char* const TCS_LICENSE_TXT = "Copyright 2018 Markus Lindelöw\n" "\n" @@ -77,7 +77,7 @@ static const char* const TCS_LICENSE_TXT = * - TcsResult tcs_connect_str(TcsSocket socket_ctx, const char* remote_address, uint16_t port); * - TcsResult tcs_listen(TcsSocket socket_ctx, int backlog); * - TcsResult tcs_accept(TcsSocket socket_ctx, TcsSocket* out_child_socket, struct TcsAddress* address); -* - TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsSocketDirection direction); +* - TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsShutdownDirection direction); * * Data Transfer: * - TcsResult tcs_send(TcsSocket socket_ctx, const uint8_t* buffer, size_t buffer_size, uint32_t flags, size_t* bytes_sent); @@ -274,8 +274,9 @@ struct TcsAddress { TcsInterfaceId interface_id; /**< Local interface index, use tcs_interface_list() to find valid interfaces. Native type. */ - uint16_t protocol; /**< Host byte order. E.i. TCS_ETH_P_ALL, 0 (block all until bind), ETH_P_TSN etc. */ - uint8_t mac[6]; /**< Typical destination mac address or local mac address when joining groups */ + uint16_t + protocol; /**< Host byte order. E.g. TCS_PROTOCOL_ETH_ALL, 0 (block all until bind), ETH_P_TSN etc. */ + uint8_t mac[6]; /**< Typical destination mac address or local mac address when joining groups */ } packet; } data; }; @@ -358,12 +359,7 @@ typedef uint16_t TcsProtocol; static const TcsProtocol TCS_PROTOCOL_IP_TCP = 6; /**< TCP, IANA-assigned (RFC 9293). Use with TCS_SOCK_STREAM. */ static const TcsProtocol TCS_PROTOCOL_IP_UDP = 17; /**< UDP, IANA-assigned (RFC 768). Use with TCS_SOCK_DGRAM. */ - -// Ethernet protocols (host byte order) -static const TcsProtocol TCS_ETH_P_ALL = 0x0003; /**< Receive all protocols. Use with TCS_FAMILY_PACKET for capture. */ - -// Flags -extern const uint32_t TCS_AI_PASSIVE; /**< Use this flag for pure listening sockets */ +static const TcsProtocol TCS_PROTOCOL_ETH_ALL = 3; /**< Receive all protocols. Use with TCS_FAMILY_PACKET. */ // Recv flags extern const uint32_t TCS_MSG_PEEK; @@ -379,10 +375,10 @@ extern const int TCS_BACKLOG_MAX; /**< Max number of queued sockets when listeni // Socket Direction typedef enum { - TCS_SD_RECEIVE, /**< To shutdown incoming packets for socket */ - TCS_SD_SEND, /**< To shutdown outgoing packets for socket */ - TCS_SD_BOTH, /**< To shutdown both incoming and outgoing packets for socket */ -} TcsSocketDirection; + TCS_SHUTDOWN_RECEIVE, /**< To shutdown incoming packets for socket */ + TCS_SHUTDOWN_SEND, /**< To shutdown outgoing packets for socket */ + TCS_SHUTDOWN_BOTH, /**< To shutdown both incoming and outgoing packets for socket */ +} TcsShutdownDirection; // Option levels extern const int TCS_SOL_SOCKET; /**< Socket option level for socket options */ @@ -397,19 +393,19 @@ extern const int TCS_SO_REUSEADDR; extern const int TCS_SO_REUSEPORT; extern const int TCS_SO_RCVBUF; /**< Byte size of receiving buffer */ extern const int TCS_SO_RCVTIMEO; -extern const int TCS_SO_SNDBUF; /**< Byte size of receiving buffer */ +extern const int TCS_SO_SNDBUF; /**< Byte size of sending buffer */ extern const int TCS_SO_OOBINLINE; extern const int TCS_SO_PRIORITY; // IP options -extern const int TCS_SO_IP_NODELAY; -extern const int TCS_SO_IP_MEMBERSHIP_ADD; -extern const int TCS_SO_IP_MEMBERSHIP_DROP; -extern const int TCS_SO_IP_MULTICAST_LOOP; +extern const int TCS_TCP_NODELAY; +extern const int TCS_IP_MEMBERSHIP_ADD; +extern const int TCS_IP_MEMBERSHIP_DROP; +extern const int TCS_IP_MULTICAST_LOOP; // Packet options -extern const int TCS_SO_PACKET_MEMBERSHIP_ADD; -extern const int TCS_SO_PACKET_MEMBERSHIP_DROP; +extern const int TCS_PACKET_MEMBERSHIP_ADD; +extern const int TCS_PACKET_MEMBERSHIP_DROP; // Use for timeout to wait until infinity happens extern const int TCS_WAIT_INF; @@ -1114,7 +1110,7 @@ TcsResult tcs_accept(TcsSocket socket_ctx, TcsSocket* out_child_socket, struct T * @param direction defines in which direction you want to turn off the communication. * @return #TCS_SUCCESS if successful, otherwise the error code. */ -TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsSocketDirection direction); +TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsShutdownDirection direction); /** * @brief Sends data on a socket, blocking @@ -1400,7 +1396,7 @@ TcsResult tcs_opt_set(TcsSocket socket_ctx, * @code * uint8_t c; * size_t a = sizeof(c); -* tcs_opt_get(socket, TCS_SOL_IP, TCS_SO_IP_MULTICAST_LOOP, &c, &a); +* tcs_opt_get(socket, TCS_SOL_IP, TCS_IP_MULTICAST_LOOP, &c, &a); * @endcode * * @param socket_ctx is your in-out socket context. @@ -2429,9 +2425,6 @@ const TcsSockType TCS_SOCK_STREAM = {SOCK_STREAM}; const TcsSockType TCS_SOCK_DGRAM = {SOCK_DGRAM}; const TcsSockType TCS_SOCK_RAW = {SOCK_RAW}; -// Flags -const uint32_t TCS_AI_PASSIVE = AI_PASSIVE; - // Recv flags const uint32_t TCS_MSG_PEEK = MSG_PEEK; const uint32_t TCS_MSG_OOB = MSG_OOB; @@ -2469,17 +2462,17 @@ const int TCS_SO_PRIORITY = -1; #endif // IP options -const int TCS_SO_IP_NODELAY = TCP_NODELAY; -const int TCS_SO_IP_MEMBERSHIP_ADD = IP_ADD_MEMBERSHIP; -const int TCS_SO_IP_MEMBERSHIP_DROP = IP_DROP_MEMBERSHIP; -const int TCS_SO_IP_MULTICAST_LOOP = IP_MULTICAST_LOOP; +const int TCS_TCP_NODELAY = TCP_NODELAY; +const int TCS_IP_MEMBERSHIP_ADD = IP_ADD_MEMBERSHIP; +const int TCS_IP_MEMBERSHIP_DROP = IP_DROP_MEMBERSHIP; +const int TCS_IP_MULTICAST_LOOP = IP_MULTICAST_LOOP; #if TCS_HAS_AF_PACKET -const int TCS_SO_PACKET_MEMBERSHIP_ADD = PACKET_ADD_MEMBERSHIP; -const int TCS_SO_PACKET_MEMBERSHIP_DROP = PACKET_DROP_MEMBERSHIP; +const int TCS_PACKET_MEMBERSHIP_ADD = PACKET_ADD_MEMBERSHIP; +const int TCS_PACKET_MEMBERSHIP_DROP = PACKET_DROP_MEMBERSHIP; #else -const int TCS_SO_PACKET_MEMBERSHIP_ADD = -1; -const int TCS_SO_PACKET_MEMBERSHIP_DROP = -1; +const int TCS_PACKET_MEMBERSHIP_ADD = -1; +const int TCS_PACKET_MEMBERSHIP_DROP = -1; #endif // Default flags @@ -2795,7 +2788,7 @@ TcsResult tcs_accept(TcsSocket socket_ctx, TcsSocket* out_child_socket, struct T } } -TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsSocketDirection direction) +TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsShutdownDirection direction) { const int LUT[] = {SHUT_RD, SHUT_WR, SHUT_RDWR}; @@ -4301,9 +4294,6 @@ const TcsSockType TCS_SOCK_STREAM = {SOCK_STREAM}; const TcsSockType TCS_SOCK_DGRAM = {SOCK_DGRAM}; const TcsSockType TCS_SOCK_RAW = {SOCK_RAW}; -// Flags -const uint32_t TCS_AI_PASSIVE = AI_PASSIVE; - // Recv flags const uint32_t TCS_MSG_PEEK = MSG_PEEK; const uint32_t TCS_MSG_OOB = MSG_OOB; @@ -4333,10 +4323,10 @@ const int TCS_SO_OOBINLINE = SO_OOBINLINE; const int TCS_SO_PRIORITY = -1; // IP options -const int TCS_SO_IP_NODELAY = TCP_NODELAY; -const int TCS_SO_IP_MEMBERSHIP_ADD = IP_ADD_MEMBERSHIP; -const int TCS_SO_IP_MEMBERSHIP_DROP = IP_DROP_MEMBERSHIP; -const int TCS_SO_IP_MULTICAST_LOOP = IP_MULTICAST_LOOP; +const int TCS_TCP_NODELAY = TCP_NODELAY; +const int TCS_IP_MEMBERSHIP_ADD = IP_ADD_MEMBERSHIP; +const int TCS_IP_MEMBERSHIP_DROP = IP_DROP_MEMBERSHIP; +const int TCS_IP_MULTICAST_LOOP = IP_MULTICAST_LOOP; // ######## Internal Helpers ######## @@ -4616,7 +4606,7 @@ TcsResult tcs_accept(TcsSocket socket_ctx, TcsSocket* out_child_socket, struct T } } -TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsSocketDirection direction) +TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsShutdownDirection direction) { const int LUT[] = {SD_RECEIVE, SD_SEND, SD_BOTH}; @@ -5490,7 +5480,7 @@ TcsResult tcs_opt_membership_add_to(TcsSocket socket_ctx, imr.imr_multiaddr.s_addr = htonl(multicast_address->data.ip4.address); if (local_address != NULL) imr.imr_interface.s_addr = htonl(local_address->data.ip4.address); - return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_SO_IP_MEMBERSHIP_ADD, &imr, sizeof(imr)); + return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_IP_MEMBERSHIP_ADD, &imr, sizeof(imr)); } else if (multicast_address->family.native == TCS_FAMILY_IP6.native) { @@ -5547,7 +5537,7 @@ TcsResult tcs_opt_membership_drop_from(TcsSocket socket_ctx, imr.imr_multiaddr.s_addr = htonl(multicast_address->data.ip4.address); if (local_address != NULL) imr.imr_interface.s_addr = htonl(local_address->data.ip4.address); - return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_SO_IP_MEMBERSHIP_DROP, &imr, sizeof(imr)); + return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_IP_MEMBERSHIP_DROP, &imr, sizeof(imr)); } else if (multicast_address->family.native == TCS_FAMILY_IP6.native) { @@ -6764,7 +6754,7 @@ TcsResult tcs_opt_ip_no_delay_set(TcsSocket socket_ctx, bool use_no_delay) return TCS_ERROR_INVALID_ARGUMENT; int b = use_no_delay ? 1 : 0; - return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_SO_IP_NODELAY, &b, sizeof(b)); + return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_TCP_NODELAY, &b, sizeof(b)); } TcsResult tcs_opt_ip_no_delay_get(TcsSocket socket_ctx, bool* is_no_delay_used) @@ -6773,7 +6763,7 @@ TcsResult tcs_opt_ip_no_delay_get(TcsSocket socket_ctx, bool* is_no_delay_used) return TCS_ERROR_INVALID_ARGUMENT; int b = 0; size_t s = sizeof(b); - TcsResult sts = tcs_opt_get(socket_ctx, TCS_SOL_IP, TCS_SO_IP_NODELAY, &b, &s); + TcsResult sts = tcs_opt_get(socket_ctx, TCS_SOL_IP, TCS_TCP_NODELAY, &b, &s); *is_no_delay_used = b; return sts; } diff --git a/src/tinycsocket_common.c b/src/tinycsocket_common.c index ad6a0c2..44bf702 100644 --- a/src/tinycsocket_common.c +++ b/src/tinycsocket_common.c @@ -756,7 +756,7 @@ TcsResult tcs_opt_ip_no_delay_set(TcsSocket socket_ctx, bool use_no_delay) return TCS_ERROR_INVALID_ARGUMENT; int b = use_no_delay ? 1 : 0; - return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_SO_IP_NODELAY, &b, sizeof(b)); + return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_TCP_NODELAY, &b, sizeof(b)); } TcsResult tcs_opt_ip_no_delay_get(TcsSocket socket_ctx, bool* is_no_delay_used) @@ -765,7 +765,7 @@ TcsResult tcs_opt_ip_no_delay_get(TcsSocket socket_ctx, bool* is_no_delay_used) return TCS_ERROR_INVALID_ARGUMENT; int b = 0; size_t s = sizeof(b); - TcsResult sts = tcs_opt_get(socket_ctx, TCS_SOL_IP, TCS_SO_IP_NODELAY, &b, &s); + TcsResult sts = tcs_opt_get(socket_ctx, TCS_SOL_IP, TCS_TCP_NODELAY, &b, &s); *is_no_delay_used = b; return sts; } diff --git a/src/tinycsocket_internal.h b/src/tinycsocket_internal.h index 5c5a808..8a96d56 100644 --- a/src/tinycsocket_internal.h +++ b/src/tinycsocket_internal.h @@ -23,7 +23,7 @@ #ifndef TINYCSOCKET_INTERNAL_H_ #define TINYCSOCKET_INTERNAL_H_ -static const char* const TCS_VERSION_TXT = "v0.3.75"; +static const char* const TCS_VERSION_TXT = "v0.3.76"; static const char* const TCS_LICENSE_TXT = "Copyright 2018 Markus Lindelöw\n" "\n" @@ -71,7 +71,7 @@ static const char* const TCS_LICENSE_TXT = * - TcsResult tcs_connect_str(TcsSocket socket_ctx, const char* remote_address, uint16_t port); * - TcsResult tcs_listen(TcsSocket socket_ctx, int backlog); * - TcsResult tcs_accept(TcsSocket socket_ctx, TcsSocket* out_child_socket, struct TcsAddress* address); -* - TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsSocketDirection direction); +* - TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsShutdownDirection direction); * * Data Transfer: * - TcsResult tcs_send(TcsSocket socket_ctx, const uint8_t* buffer, size_t buffer_size, uint32_t flags, size_t* bytes_sent); @@ -268,8 +268,9 @@ struct TcsAddress { TcsInterfaceId interface_id; /**< Local interface index, use tcs_interface_list() to find valid interfaces. Native type. */ - uint16_t protocol; /**< Host byte order. E.i. TCS_ETH_P_ALL, 0 (block all until bind), ETH_P_TSN etc. */ - uint8_t mac[6]; /**< Typical destination mac address or local mac address when joining groups */ + uint16_t + protocol; /**< Host byte order. E.g. TCS_PROTOCOL_ETH_ALL, 0 (block all until bind), ETH_P_TSN etc. */ + uint8_t mac[6]; /**< Typical destination mac address or local mac address when joining groups */ } packet; } data; }; @@ -352,12 +353,7 @@ typedef uint16_t TcsProtocol; static const TcsProtocol TCS_PROTOCOL_IP_TCP = 6; /**< TCP, IANA-assigned (RFC 9293). Use with TCS_SOCK_STREAM. */ static const TcsProtocol TCS_PROTOCOL_IP_UDP = 17; /**< UDP, IANA-assigned (RFC 768). Use with TCS_SOCK_DGRAM. */ - -// Ethernet protocols (host byte order) -static const TcsProtocol TCS_ETH_P_ALL = 0x0003; /**< Receive all protocols. Use with TCS_FAMILY_PACKET for capture. */ - -// Flags -extern const uint32_t TCS_AI_PASSIVE; /**< Use this flag for pure listening sockets */ +static const TcsProtocol TCS_PROTOCOL_ETH_ALL = 3; /**< Receive all protocols. Use with TCS_FAMILY_PACKET. */ // Recv flags extern const uint32_t TCS_MSG_PEEK; @@ -373,10 +369,10 @@ extern const int TCS_BACKLOG_MAX; /**< Max number of queued sockets when listeni // Socket Direction typedef enum { - TCS_SD_RECEIVE, /**< To shutdown incoming packets for socket */ - TCS_SD_SEND, /**< To shutdown outgoing packets for socket */ - TCS_SD_BOTH, /**< To shutdown both incoming and outgoing packets for socket */ -} TcsSocketDirection; + TCS_SHUTDOWN_RECEIVE, /**< To shutdown incoming packets for socket */ + TCS_SHUTDOWN_SEND, /**< To shutdown outgoing packets for socket */ + TCS_SHUTDOWN_BOTH, /**< To shutdown both incoming and outgoing packets for socket */ +} TcsShutdownDirection; // Option levels extern const int TCS_SOL_SOCKET; /**< Socket option level for socket options */ @@ -391,19 +387,19 @@ extern const int TCS_SO_REUSEADDR; extern const int TCS_SO_REUSEPORT; extern const int TCS_SO_RCVBUF; /**< Byte size of receiving buffer */ extern const int TCS_SO_RCVTIMEO; -extern const int TCS_SO_SNDBUF; /**< Byte size of receiving buffer */ +extern const int TCS_SO_SNDBUF; /**< Byte size of sending buffer */ extern const int TCS_SO_OOBINLINE; extern const int TCS_SO_PRIORITY; // IP options -extern const int TCS_SO_IP_NODELAY; -extern const int TCS_SO_IP_MEMBERSHIP_ADD; -extern const int TCS_SO_IP_MEMBERSHIP_DROP; -extern const int TCS_SO_IP_MULTICAST_LOOP; +extern const int TCS_TCP_NODELAY; +extern const int TCS_IP_MEMBERSHIP_ADD; +extern const int TCS_IP_MEMBERSHIP_DROP; +extern const int TCS_IP_MULTICAST_LOOP; // Packet options -extern const int TCS_SO_PACKET_MEMBERSHIP_ADD; -extern const int TCS_SO_PACKET_MEMBERSHIP_DROP; +extern const int TCS_PACKET_MEMBERSHIP_ADD; +extern const int TCS_PACKET_MEMBERSHIP_DROP; // Use for timeout to wait until infinity happens extern const int TCS_WAIT_INF; @@ -1108,7 +1104,7 @@ TcsResult tcs_accept(TcsSocket socket_ctx, TcsSocket* out_child_socket, struct T * @param direction defines in which direction you want to turn off the communication. * @return #TCS_SUCCESS if successful, otherwise the error code. */ -TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsSocketDirection direction); +TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsShutdownDirection direction); /** * @brief Sends data on a socket, blocking @@ -1394,7 +1390,7 @@ TcsResult tcs_opt_set(TcsSocket socket_ctx, * @code * uint8_t c; * size_t a = sizeof(c); -* tcs_opt_get(socket, TCS_SOL_IP, TCS_SO_IP_MULTICAST_LOOP, &c, &a); +* tcs_opt_get(socket, TCS_SOL_IP, TCS_IP_MULTICAST_LOOP, &c, &a); * @endcode * * @param socket_ctx is your in-out socket context. diff --git a/src/tinycsocket_posix.c b/src/tinycsocket_posix.c index 52f90a9..2092c2e 100644 --- a/src/tinycsocket_posix.c +++ b/src/tinycsocket_posix.c @@ -129,9 +129,6 @@ const TcsSockType TCS_SOCK_STREAM = {SOCK_STREAM}; const TcsSockType TCS_SOCK_DGRAM = {SOCK_DGRAM}; const TcsSockType TCS_SOCK_RAW = {SOCK_RAW}; -// Flags -const uint32_t TCS_AI_PASSIVE = AI_PASSIVE; - // Recv flags const uint32_t TCS_MSG_PEEK = MSG_PEEK; const uint32_t TCS_MSG_OOB = MSG_OOB; @@ -169,17 +166,17 @@ const int TCS_SO_PRIORITY = -1; #endif // IP options -const int TCS_SO_IP_NODELAY = TCP_NODELAY; -const int TCS_SO_IP_MEMBERSHIP_ADD = IP_ADD_MEMBERSHIP; -const int TCS_SO_IP_MEMBERSHIP_DROP = IP_DROP_MEMBERSHIP; -const int TCS_SO_IP_MULTICAST_LOOP = IP_MULTICAST_LOOP; +const int TCS_TCP_NODELAY = TCP_NODELAY; +const int TCS_IP_MEMBERSHIP_ADD = IP_ADD_MEMBERSHIP; +const int TCS_IP_MEMBERSHIP_DROP = IP_DROP_MEMBERSHIP; +const int TCS_IP_MULTICAST_LOOP = IP_MULTICAST_LOOP; #if TCS_HAS_AF_PACKET -const int TCS_SO_PACKET_MEMBERSHIP_ADD = PACKET_ADD_MEMBERSHIP; -const int TCS_SO_PACKET_MEMBERSHIP_DROP = PACKET_DROP_MEMBERSHIP; +const int TCS_PACKET_MEMBERSHIP_ADD = PACKET_ADD_MEMBERSHIP; +const int TCS_PACKET_MEMBERSHIP_DROP = PACKET_DROP_MEMBERSHIP; #else -const int TCS_SO_PACKET_MEMBERSHIP_ADD = -1; -const int TCS_SO_PACKET_MEMBERSHIP_DROP = -1; +const int TCS_PACKET_MEMBERSHIP_ADD = -1; +const int TCS_PACKET_MEMBERSHIP_DROP = -1; #endif // Default flags @@ -495,7 +492,7 @@ TcsResult tcs_accept(TcsSocket socket_ctx, TcsSocket* out_child_socket, struct T } } -TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsSocketDirection direction) +TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsShutdownDirection direction) { const int LUT[] = {SHUT_RD, SHUT_WR, SHUT_RDWR}; diff --git a/src/tinycsocket_win32.c b/src/tinycsocket_win32.c index aa40ad9..cf9dd57 100644 --- a/src/tinycsocket_win32.c +++ b/src/tinycsocket_win32.c @@ -119,9 +119,6 @@ const TcsSockType TCS_SOCK_STREAM = {SOCK_STREAM}; const TcsSockType TCS_SOCK_DGRAM = {SOCK_DGRAM}; const TcsSockType TCS_SOCK_RAW = {SOCK_RAW}; -// Flags -const uint32_t TCS_AI_PASSIVE = AI_PASSIVE; - // Recv flags const uint32_t TCS_MSG_PEEK = MSG_PEEK; const uint32_t TCS_MSG_OOB = MSG_OOB; @@ -151,10 +148,10 @@ const int TCS_SO_OOBINLINE = SO_OOBINLINE; const int TCS_SO_PRIORITY = -1; // IP options -const int TCS_SO_IP_NODELAY = TCP_NODELAY; -const int TCS_SO_IP_MEMBERSHIP_ADD = IP_ADD_MEMBERSHIP; -const int TCS_SO_IP_MEMBERSHIP_DROP = IP_DROP_MEMBERSHIP; -const int TCS_SO_IP_MULTICAST_LOOP = IP_MULTICAST_LOOP; +const int TCS_TCP_NODELAY = TCP_NODELAY; +const int TCS_IP_MEMBERSHIP_ADD = IP_ADD_MEMBERSHIP; +const int TCS_IP_MEMBERSHIP_DROP = IP_DROP_MEMBERSHIP; +const int TCS_IP_MULTICAST_LOOP = IP_MULTICAST_LOOP; // ######## Internal Helpers ######## @@ -434,7 +431,7 @@ TcsResult tcs_accept(TcsSocket socket_ctx, TcsSocket* out_child_socket, struct T } } -TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsSocketDirection direction) +TcsResult tcs_shutdown(TcsSocket socket_ctx, TcsShutdownDirection direction) { const int LUT[] = {SD_RECEIVE, SD_SEND, SD_BOTH}; @@ -1308,7 +1305,7 @@ TcsResult tcs_opt_membership_add_to(TcsSocket socket_ctx, imr.imr_multiaddr.s_addr = htonl(multicast_address->data.ip4.address); if (local_address != NULL) imr.imr_interface.s_addr = htonl(local_address->data.ip4.address); - return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_SO_IP_MEMBERSHIP_ADD, &imr, sizeof(imr)); + return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_IP_MEMBERSHIP_ADD, &imr, sizeof(imr)); } else if (multicast_address->family.native == TCS_FAMILY_IP6.native) { @@ -1365,7 +1362,7 @@ TcsResult tcs_opt_membership_drop_from(TcsSocket socket_ctx, imr.imr_multiaddr.s_addr = htonl(multicast_address->data.ip4.address); if (local_address != NULL) imr.imr_interface.s_addr = htonl(local_address->data.ip4.address); - return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_SO_IP_MEMBERSHIP_DROP, &imr, sizeof(imr)); + return tcs_opt_set(socket_ctx, TCS_SOL_IP, TCS_IP_MEMBERSHIP_DROP, &imr, sizeof(imr)); } else if (multicast_address->family.native == TCS_FAMILY_IP6.native) { diff --git a/tests/tests.cpp b/tests/tests.cpp index 4f1ce93..cebf6c0 100644 --- a/tests/tests.cpp +++ b/tests/tests.cpp @@ -114,7 +114,7 @@ TEST_CASE("Example from README") size_t bytes_received = 0; tcs_receive(client_socket, recv_buffer, sizeof(recv_buffer), TCS_MSG_WAITALL, &bytes_received); CHECK(bytes_received > 0); - TcsResult shutdown_res = tcs_shutdown(client_socket, TCS_SD_BOTH); + TcsResult shutdown_res = tcs_shutdown(client_socket, TCS_SHUTDOWN_BOTH); CHECK((shutdown_res == TCS_SUCCESS || shutdown_res == TCS_ERROR_NOT_CONNECTED || shutdown_res == TCS_ERROR_CONNECTION_RESET || shutdown_res == TCS_ERROR_SOCKET_CLOSED)); CHECK(tcs_close(&client_socket) == TCS_SUCCESS); @@ -598,7 +598,7 @@ TEST_CASE("shutdown") uint8_t buffer1[1024]; tcs_receive(peer1, buffer1, 1024, TCS_NO_FLAGS, NULL); - tcs_shutdown(peer2, TCS_SD_RECEIVE); + tcs_shutdown(peer2, TCS_SHUTDOWN_RECEIVE); tcs_close(&peer1); t1.join(); @@ -1680,7 +1680,7 @@ TEST_CASE("Simple AVTP talker") REQUIRE(tcs_lib_init() == TCS_SUCCESS); TcsSocket socket = TCS_SOCKET_INVALID; - CHECK(tcs_socket(&socket, TCS_FAMILY_PACKET, TCS_SOCK_RAW, TCS_ETH_P_ALL) == TCS_SUCCESS); + CHECK(tcs_socket(&socket, TCS_FAMILY_PACKET, TCS_SOCK_RAW, TCS_PROTOCOL_ETH_ALL) == TCS_SUCCESS); TcsAddress address = TCS_ADDRESS_NONE; tcs_address_parse("", &address); @@ -1919,7 +1919,7 @@ TEST_CASE("Create packet socket") TcsSocket socket = TCS_SOCKET_INVALID; // When - CHECK(tcs_socket(&socket, TCS_FAMILY_PACKET, TCS_SOCK_RAW, TCS_ETH_P_ALL) == TCS_SUCCESS); + CHECK(tcs_socket(&socket, TCS_FAMILY_PACKET, TCS_SOCK_RAW, TCS_PROTOCOL_ETH_ALL) == TCS_SUCCESS); // Then CHECK(socket != TCS_SOCKET_INVALID); @@ -1992,7 +1992,7 @@ TEST_CASE("TSN Create talker socket bind") TcsSocket socket = TCS_SOCKET_INVALID; // When - CHECK(tcs_socket(&socket, TCS_FAMILY_PACKET, TCS_SOCK_RAW, TCS_ETH_P_ALL) == TCS_SUCCESS); + CHECK(tcs_socket(&socket, TCS_FAMILY_PACKET, TCS_SOCK_RAW, TCS_PROTOCOL_ETH_ALL) == TCS_SUCCESS); CHECK(tcs_opt_priority_set(socket, 6) == TCS_SUCCESS); // Set priority to 6 (VLAN priority 6) struct TcsInterfaceAddress addr[20]; @@ -2036,7 +2036,7 @@ TEST_CASE("TSN Create listener") TcsSocket socket = TCS_SOCKET_INVALID; // When - CHECK(tcs_socket(&socket, TCS_FAMILY_PACKET, TCS_SOCK_RAW, TCS_ETH_P_ALL) == TCS_SUCCESS); + CHECK(tcs_socket(&socket, TCS_FAMILY_PACKET, TCS_SOCK_RAW, TCS_PROTOCOL_ETH_ALL) == TCS_SUCCESS); struct TcsInterfaceAddress addr[20]; size_t addresses_found = 0; @@ -2070,7 +2070,7 @@ TEST_CASE("Create DGRAM packet socket with preset") TcsSocket socket = TCS_SOCKET_INVALID; // When - CHECK(tcs_socket(&socket, TCS_FAMILY_PACKET, TCS_SOCK_DGRAM, TCS_ETH_P_ALL) == TCS_SUCCESS); + CHECK(tcs_socket(&socket, TCS_FAMILY_PACKET, TCS_SOCK_DGRAM, TCS_PROTOCOL_ETH_ALL) == TCS_SUCCESS); // Then CHECK(socket != TCS_SOCKET_INVALID); @@ -2345,7 +2345,7 @@ TEST_CASE("Sentinel handling: TCS_FAMILY_PACKET on unsupported platform") // Probe whether this platform supports AF_PACKET by trying to create one. TcsSocket probe = TCS_SOCKET_INVALID; - TcsResult probe_res = tcs_socket(&probe, TCS_FAMILY_PACKET, TCS_SOCK_RAW, TCS_ETH_P_ALL); + TcsResult probe_res = tcs_socket(&probe, TCS_FAMILY_PACKET, TCS_SOCK_RAW, TCS_PROTOCOL_ETH_ALL); if (probe_res == TCS_ERROR_NOT_SUPPORTED) {