@@ -200,13 +200,22 @@ STATIC mp_obj_t ssl_sslsocket_send(mp_obj_t self_in, mp_obj_t buf_in) {
200200}
201201STATIC MP_DEFINE_CONST_FUN_OBJ_2 (ssl_sslsocket_send_obj , ssl_sslsocket_send );
202202
203- // //| def setsockopt(self, level: int, optname: int, value: int) -> None:
203+ // //| def setsockopt(self, level: int, optname: int, value: int | ReadableBuffer ) -> None:
204204// //| """Sets socket options"""
205205// //| ...
206206// //|
207- // STATIC mp_obj_t ssl_sslsocket_setsockopt(size_t n_args, const mp_obj_t *args) {
208- // }
209- // STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(ssl_sslsocket_setsockopt_obj, 4, 4, ssl_sslsocket_setsockopt);
207+ STATIC mp_obj_t ssl_sslsocket_setsockopt (size_t n_args , const mp_obj_t * args ) {
208+ ssl_sslsocket_obj_t * self = MP_OBJ_TO_PTR (args [0 ]);
209+ mp_obj_t level = args [1 ];
210+ mp_obj_t optname = args [2 ];
211+ mp_obj_t optval = args [3 ];
212+
213+ // throws on error
214+ common_hal_ssl_sslsocket_setsockopt (self , level , optname , optval );
215+
216+ return mp_const_none ;
217+ }
218+ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (ssl_sslsocket_setsockopt_obj , 4 , 4 , ssl_sslsocket_setsockopt );
210219
211220//| def settimeout(self, value: int) -> None:
212221//| """Set the timeout value for this socket.
@@ -252,7 +261,7 @@ STATIC const mp_rom_map_elem_t ssl_sslsocket_locals_dict_table[] = {
252261 { MP_ROM_QSTR (MP_QSTR_recv_into ), MP_ROM_PTR (& ssl_sslsocket_recv_into_obj ) },
253262 { MP_ROM_QSTR (MP_QSTR_send ), MP_ROM_PTR (& ssl_sslsocket_send_obj ) },
254263 { MP_ROM_QSTR (MP_QSTR_setblocking ), MP_ROM_PTR (& ssl_sslsocket_setblocking_obj ) },
255- // { MP_ROM_QSTR(MP_QSTR_setsockopt), MP_ROM_PTR(&ssl_sslsocket_setsockopt_obj) },
264+ { MP_ROM_QSTR (MP_QSTR_setsockopt ), MP_ROM_PTR (& ssl_sslsocket_setsockopt_obj ) },
256265 { MP_ROM_QSTR (MP_QSTR_settimeout ), MP_ROM_PTR (& ssl_sslsocket_settimeout_obj ) },
257266};
258267
0 commit comments