@@ -182,6 +182,7 @@ STATIC void mark_user_socket(int fd, socketpool_socket_obj_t *obj) {
182182
183183STATIC bool _socketpool_socket (socketpool_socketpool_obj_t * self ,
184184 socketpool_socketpool_addressfamily_t family , socketpool_socketpool_sock_t type ,
185+ int proto ,
185186 socketpool_socket_obj_t * sock ) {
186187 int addr_family ;
187188 int ipproto ;
@@ -195,6 +196,8 @@ STATIC bool _socketpool_socket(socketpool_socketpool_obj_t *self,
195196 #endif
196197 }
197198
199+ ipproto = proto ;
200+
198201 int socket_type ;
199202 if (type == SOCKETPOOL_SOCK_STREAM ) {
200203 socket_type = SOCK_STREAM ;
@@ -226,9 +229,9 @@ STATIC bool _socketpool_socket(socketpool_socketpool_obj_t *self,
226229// special entry for workflow listener (register system socket)
227230bool socketpool_socket (socketpool_socketpool_obj_t * self ,
228231 socketpool_socketpool_addressfamily_t family , socketpool_socketpool_sock_t type ,
229- socketpool_socket_obj_t * sock ) {
232+ int proto , socketpool_socket_obj_t * sock ) {
230233
231- if (!_socketpool_socket (self , family , type , sock )) {
234+ if (!_socketpool_socket (self , family , type , proto , sock )) {
232235 return false;
233236 }
234237
@@ -241,15 +244,15 @@ bool socketpool_socket(socketpool_socketpool_obj_t *self,
241244}
242245
243246socketpool_socket_obj_t * common_hal_socketpool_socket (socketpool_socketpool_obj_t * self ,
244- socketpool_socketpool_addressfamily_t family , socketpool_socketpool_sock_t type ) {
247+ socketpool_socketpool_addressfamily_t family , int proto , socketpool_socketpool_sock_t type ) {
245248 if (family != SOCKETPOOL_AF_INET ) {
246249 mp_raise_NotImplementedError (translate ("Only IPv4 sockets supported" ));
247250 }
248251
249252 socketpool_socket_obj_t * sock = m_new_obj_with_finaliser (socketpool_socket_obj_t );
250253 sock -> base .type = & socketpool_socket_type ;
251254
252- if (!_socketpool_socket (self , family , type , sock )) {
255+ if (!_socketpool_socket (self , family , type , proto , sock )) {
253256 mp_raise_RuntimeError (translate ("Out of sockets" ));
254257 }
255258 mark_user_socket (sock -> num , sock );
0 commit comments