@@ -200,13 +200,22 @@ STATIC mp_obj_t ssl_sslsocket_send(mp_obj_t self_in, mp_obj_t buf_in) {
200
200
}
201
201
STATIC MP_DEFINE_CONST_FUN_OBJ_2 (ssl_sslsocket_send_obj , ssl_sslsocket_send );
202
202
203
- // //| def setsockopt(self, level: int, optname: int, value: int) -> None:
203
+ // //| def setsockopt(self, level: int, optname: int, value: int | ReadableBuffer ) -> None:
204
204
// //| """Sets socket options"""
205
205
// //| ...
206
206
// //|
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 );
210
219
211
220
//| def settimeout(self, value: int) -> None:
212
221
//| """Set the timeout value for this socket.
@@ -252,7 +261,7 @@ STATIC const mp_rom_map_elem_t ssl_sslsocket_locals_dict_table[] = {
252
261
{ MP_ROM_QSTR (MP_QSTR_recv_into ), MP_ROM_PTR (& ssl_sslsocket_recv_into_obj ) },
253
262
{ MP_ROM_QSTR (MP_QSTR_send ), MP_ROM_PTR (& ssl_sslsocket_send_obj ) },
254
263
{ 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 ) },
256
265
{ MP_ROM_QSTR (MP_QSTR_settimeout ), MP_ROM_PTR (& ssl_sslsocket_settimeout_obj ) },
257
266
};
258
267
0 commit comments