36
36
#include "shared-bindings/socketpool/Socket.h"
37
37
#include "shared-bindings/socketpool/SocketPool.h"
38
38
39
+ #define SOCKETPOOL_EAI_NONAME (-2)
40
+
39
41
//| class SocketPool:
40
42
//| """A pool of socket resources available for the given radio. Only one
41
43
//| SocketPool can be created for each radio.
@@ -63,12 +65,20 @@ STATIC mp_obj_t socketpool_socketpool_make_new(const mp_obj_type_t *type, size_t
63
65
64
66
return MP_OBJ_FROM_PTR (s );
65
67
}
68
+
69
+ //| class gaierror(OSError):
70
+ //| """Errors raised by getaddrinfo"""
71
+ //|
72
+ MP_DEFINE_EXCEPTION (gaierror , OSError )
73
+
74
+ //|
66
75
//| AF_INET: int
67
76
//| AF_INET6: int
68
77
//|
69
78
//| SOCK_STREAM: int
70
79
//| SOCK_DGRAM: int
71
80
//| SOCK_RAW: int
81
+ //| EAI_NONAME: int
72
82
//|
73
83
//| TCP_NODELAY: int
74
84
//|
@@ -145,7 +155,11 @@ STATIC mp_obj_t socketpool_socketpool_getaddrinfo(size_t n_args, const mp_obj_t
145
155
}
146
156
147
157
if (ip_str == mp_const_none ) {
148
- mp_raise_OSError (-2 ); // socket.EAI_NONAME from CPython
158
+ mp_obj_t exc_args [2 ] = {
159
+ MP_OBJ_NEW_SMALL_INT (SOCKETPOOL_EAI_NONAME ),
160
+ MP_OBJ_NEW_QSTR (MP_QSTR_Name_space_or_space_service_space_not_space_known ),
161
+ };
162
+ nlr_raise (mp_obj_new_exception_args (& mp_type_gaierror , 2 , exc_args ));
149
163
}
150
164
151
165
mp_obj_tuple_t * tuple = MP_OBJ_TO_PTR (mp_obj_new_tuple (5 , NULL ));
@@ -164,6 +178,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(socketpool_socketpool_getaddrinfo_obj, 1, sock
164
178
STATIC const mp_rom_map_elem_t socketpool_socketpool_locals_dict_table [] = {
165
179
{ MP_ROM_QSTR (MP_QSTR_socket ), MP_ROM_PTR (& socketpool_socketpool_socket_obj ) },
166
180
{ MP_ROM_QSTR (MP_QSTR_getaddrinfo ), MP_ROM_PTR (& socketpool_socketpool_getaddrinfo_obj ) },
181
+ { MP_ROM_QSTR (MP_QSTR_gaierror ), MP_ROM_PTR (& mp_type_gaierror ) },
167
182
168
183
// class constants
169
184
{ MP_ROM_QSTR (MP_QSTR_AF_INET ), MP_ROM_INT (SOCKETPOOL_AF_INET ) },
@@ -176,6 +191,8 @@ STATIC const mp_rom_map_elem_t socketpool_socketpool_locals_dict_table[] = {
176
191
{ MP_ROM_QSTR (MP_QSTR_TCP_NODELAY ), MP_ROM_INT (SOCKETPOOL_TCP_NODELAY ) },
177
192
178
193
{ MP_ROM_QSTR (MP_QSTR_IPPROTO_TCP ), MP_ROM_INT (SOCKETPOOL_IPPROTO_TCP ) },
194
+
195
+ { MP_ROM_QSTR (MP_QSTR_EAI_NONAME ), MP_ROM_INT (SOCKETPOOL_EAI_NONAME ) },
179
196
};
180
197
181
198
STATIC MP_DEFINE_CONST_DICT (socketpool_socketpool_locals_dict , socketpool_socketpool_locals_dict_table );
0 commit comments