@@ -173,7 +173,7 @@ os_socket_getbooloption(bh_socket_t socket, int level, int optname,
173173 int optval ;
174174 socklen_t optval_size = sizeof (optval );
175175
176- if (zsock_setsockopt (socket -> fd , level , optname , & optval , optval_size )
176+ if (zsock_getsockopt (socket -> fd , level , optname , & optval , & optval_size )
177177 != 0 ) {
178178 return BHT_ERROR ;
179179 }
@@ -190,7 +190,7 @@ os_socket_create(bh_socket_t *sock, bool is_ipv4, bool is_tcp)
190190
191191 * (sock ) = BH_MALLOC (sizeof (zephyr_handle ));
192192
193- if (!sock ) {
193+ if (!* sock ) {
194194 return BHT_ERROR ;
195195 }
196196
@@ -262,8 +262,13 @@ os_socket_settimeout(bh_socket_t socket, uint64 timeout_us)
262262 timeout .tv_sec = timeout_us / 1000000 ;
263263 timeout .tv_usec = timeout_us % 1000000 ;
264264
265- return zsock_setsockopt (socket -> fd , SOL_SOCKET , SO_RCVTIMEO , & timeout ,
266- sizeof (timeout ));
265+ if (zsock_setsockopt (socket -> fd , SOL_SOCKET , SO_RCVTIMEO , & timeout ,
266+ sizeof (timeout ))
267+ != 0 ) {
268+ return BHT_ERROR ;
269+ }
270+
271+ return BHT_OK ;
267272}
268273
269274int
@@ -277,7 +282,7 @@ os_socket_accept(bh_socket_t server_sock, bh_socket_t *sock, void *addr,
277282 unsigned int * addrlen )
278283{
279284 * sock = BH_MALLOC (sizeof (zephyr_handle ));
280- if (!sock ) {
285+ if (!* sock ) {
281286 return BHT_ERROR ;
282287 }
283288
@@ -609,7 +614,7 @@ os_socket_get_send_timeout(bh_socket_t socket, uint64 *timeout_us)
609614 struct timeval tv ;
610615 socklen_t tv_len = sizeof (tv );
611616
612- if (zsock_setsockopt (socket -> fd , SOL_SOCKET , SO_SNDTIMEO , & tv , tv_len )
617+ if (zsock_getsockopt (socket -> fd , SOL_SOCKET , SO_SNDTIMEO , & tv , & tv_len )
613618 != 0 ) {
614619 return BHT_ERROR ;
615620 }
@@ -639,7 +644,7 @@ os_socket_get_recv_timeout(bh_socket_t socket, uint64 *timeout_us)
639644 struct timeval tv ;
640645 socklen_t tv_len = sizeof (tv );
641646
642- if (zsock_setsockopt (socket -> fd , SOL_SOCKET , SO_RCVTIMEO , & tv , tv_len )
647+ if (zsock_getsockopt (socket -> fd , SOL_SOCKET , SO_RCVTIMEO , & tv , & tv_len )
643648 != 0 ) {
644649 return BHT_ERROR ;
645650 }
@@ -760,17 +765,17 @@ os_socket_get_tcp_keep_idle(bh_socket_t socket, uint32_t *time_s)
760765 socklen_t time_s_len = sizeof (time_s_int );
761766
762767#ifdef TCP_KEEPIDLE
763- if (zsock_setsockopt (socket -> fd , IPPROTO_TCP , TCP_KEEPIDLE , & time_s_int ,
764- time_s_len )
768+ if (zsock_getsockopt (socket -> fd , IPPROTO_TCP , TCP_KEEPIDLE , & time_s_int ,
769+ & time_s_len )
765770 != 0 ) {
766771 return BHT_ERROR ;
767772 }
768773 * time_s = (uint32 )time_s_int ;
769774
770775 return BHT_OK ;
771776#elif defined(TCP_KEEPALIVE )
772- if (zsock_setsockopt (socket -> fd , IPPROTO_TCP , TCP_KEEPALIVE , & time_s_int ,
773- time_s_len )
777+ if (zsock_getsockopt (socket -> fd , IPPROTO_TCP , TCP_KEEPALIVE , & time_s_int ,
778+ & time_s_len )
774779 != 0 ) {
775780 return BHT_ERROR ;
776781 }
@@ -965,13 +970,13 @@ os_socket_set_ip_ttl(bh_socket_t socket, uint8_t ttl_s)
965970int
966971os_socket_get_ip_ttl (bh_socket_t socket , uint8_t * ttl_s )
967972{
968- socklen_t opt_len = sizeof (* ttl_s );
969-
970- if (zsock_setsockopt (socket -> fd , IPPROTO_IP , IP_MULTICAST_TTL , ttl_s ,
971- opt_len )
972- != 0 ) {
973+ /* Most socket-level options utilize an int argument for optval */
974+ int opt ;
975+ socklen_t opt_len = sizeof (opt );
976+ if (zsock_getsockopt (socket -> fd , IPPROTO_IP , IP_TTL , & opt , & opt_len ) != 0 ) {
973977 return BHT_ERROR ;
974978 }
979+ * ttl_s = (uint8_t )opt ;
975980
976981 return BHT_OK ;
977982}
@@ -991,13 +996,15 @@ os_socket_set_ip_multicast_ttl(bh_socket_t socket, uint8_t ttl_s)
991996int
992997os_socket_get_ip_multicast_ttl (bh_socket_t socket , uint8_t * ttl_s )
993998{
994- socklen_t opt_len = sizeof (* ttl_s );
995-
996- if (zsock_setsockopt (socket -> fd , IPPROTO_IP , IP_MULTICAST_TTL , ttl_s ,
997- opt_len )
999+ /* Most socket-level options utilize an int argument for optval */
1000+ int opt ;
1001+ socklen_t opt_len = sizeof (opt );
1002+ if (zsock_getsockopt (socket -> fd , IPPROTO_IP , IP_MULTICAST_TTL , & opt ,
1003+ & opt_len )
9981004 != 0 ) {
9991005 return BHT_ERROR ;
10001006 }
1007+ * ttl_s = (uint8_t )opt ;
10011008
10021009 return BHT_OK ;
10031010}
@@ -1059,4 +1066,4 @@ int
10591066os_poll (os_poll_file_handle * fds , os_nfds_t nfs , int timeout )
10601067{
10611068 return zsock_poll (fds , nfs , timeout );
1062- }
1069+ }
0 commit comments