|
|
|
@ -707,7 +707,7 @@ void* uasync_add_socket(struct UASYNC* ua, int fd, socket_callback_t read_cbk, s |
|
|
|
} |
|
|
|
} |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_SYS, "socket_add fd=%d name='%s' type=FD r=%p w=%p e=%p ud=%p", |
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_SOCKET, "socket_add fd=%d name='%s' type=FD r=%p w=%p e=%p ud=%p", |
|
|
|
fd, name ? name : "?", (void*)read_cbk, (void*)write_cbk, (void*)except_cbk, user_data); |
|
|
|
fd, name ? name : "?", (void*)read_cbk, (void*)write_cbk, (void*)except_cbk, user_data); |
|
|
|
|
|
|
|
|
|
|
|
// Return index-based handle
|
|
|
|
// Return index-based handle
|
|
|
|
@ -736,7 +736,7 @@ err_t uasync_remove_socket(struct UASYNC* ua, void* s_id) { |
|
|
|
if (ret == 0) { |
|
|
|
if (ret == 0) { |
|
|
|
ua->socket_free_count++; |
|
|
|
ua->socket_free_count++; |
|
|
|
ua->poll_fds_dirty = 1; // Mark poll_fds as needing rebuild
|
|
|
|
ua->poll_fds_dirty = 1; // Mark poll_fds as needing rebuild
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_SYS, "socket_remove fd=%d name='%s'", fd, rname); |
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_SOCKET, "socket_remove fd=%d name='%s'", fd, rname); |
|
|
|
return ERR_OK; |
|
|
|
return ERR_OK; |
|
|
|
} |
|
|
|
} |
|
|
|
return ERR_FAIL; |
|
|
|
return ERR_FAIL; |
|
|
|
@ -775,7 +775,7 @@ void* uasync_add_socket_t(struct UASYNC* ua, socket_t sock, socket_t_callback_t |
|
|
|
} |
|
|
|
} |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_SYS, "socket_add fd=%d name='%s' type=SOCK r=%p w=%p e=%p ud=%p", |
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_SOCKET, "socket_add fd=%d name='%s' type=SOCK r=%p w=%p e=%p ud=%p", |
|
|
|
(int)sock, name ? name : "?", (void*)read_cbk, (void*)write_cbk, (void*)except_cbk, user_data); |
|
|
|
(int)sock, name ? name : "?", (void*)read_cbk, (void*)write_cbk, (void*)except_cbk, user_data); |
|
|
|
|
|
|
|
|
|
|
|
return (void*)(uintptr_t)(index + 1); /* +1: index 0 ≠ NULL */ |
|
|
|
return (void*)(uintptr_t)(index + 1); /* +1: index 0 ≠ NULL */ |
|
|
|
@ -809,7 +809,7 @@ err_t uasync_remove_socket_t(struct UASYNC* ua, socket_t sock) { |
|
|
|
if (ret == 0) { |
|
|
|
if (ret == 0) { |
|
|
|
ua->socket_free_count++; |
|
|
|
ua->socket_free_count++; |
|
|
|
ua->poll_fds_dirty = 1; |
|
|
|
ua->poll_fds_dirty = 1; |
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_SYS, "socket_remove fd=%d name='%s'", fd, rname); |
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_SOCKET, "socket_remove fd=%d name='%s'", fd, rname); |
|
|
|
return ERR_OK; |
|
|
|
return ERR_OK; |
|
|
|
} |
|
|
|
} |
|
|
|
return ERR_FAIL; |
|
|
|
return ERR_FAIL; |
|
|
|
@ -1024,7 +1024,7 @@ static void process_epoll_events(struct UASYNC* ua, struct epoll_event* events, |
|
|
|
struct socket_node* n = socket_array_get(ua->sockets, fd); |
|
|
|
struct socket_node* n = socket_array_get(ua->sockets, fd); |
|
|
|
if (!n) n = socket_array_get_by_sock(ua->sockets, fd); |
|
|
|
if (!n) n = socket_array_get_by_sock(ua->sockets, fd); |
|
|
|
if (n && n->active && n->gen == ev_gen) { |
|
|
|
if (n && n->active && n->gen == ev_gen) { |
|
|
|
DEBUG_WARN(DEBUG_CATEGORY_SYS, "socket HUP/ERR without except handler: fd=%d name='%s' type=%s r=%p w=%p — unregister", |
|
|
|
DEBUG_WARN(DEBUG_CATEGORY_SOCKET, "socket HUP/ERR without except handler: fd=%d name='%s' type=%s r=%p w=%p — unregister", |
|
|
|
fd, n->name ? n->name : "?", |
|
|
|
fd, n->name ? n->name : "?", |
|
|
|
n->type == SOCKET_NODE_TYPE_SOCK ? "SOCK" : "FD", |
|
|
|
n->type == SOCKET_NODE_TYPE_SOCK ? "SOCK" : "FD", |
|
|
|
(void*)(n->type == SOCKET_NODE_TYPE_SOCK ? (void*)n->read_cbk_sock : (void*)n->read_cbk), |
|
|
|
(void*)(n->type == SOCKET_NODE_TYPE_SOCK ? (void*)n->read_cbk_sock : (void*)n->read_cbk), |
|
|
|
@ -1364,7 +1364,7 @@ void uasync_poll(struct UASYNC* ua, int timeout_tb) { |
|
|
|
if (node->except_cbk) { |
|
|
|
if (node->except_cbk) { |
|
|
|
node->except_cbk(node->fd, node->user_data); |
|
|
|
node->except_cbk(node->fd, node->user_data); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
DEBUG_WARN(DEBUG_CATEGORY_SYS, "socket HUP/ERR/NVAL without except handler: fd=%d rev=0x%x name='%s' type=%s r=%p w=%p — unregister", |
|
|
|
DEBUG_WARN(DEBUG_CATEGORY_SOCKET, "socket HUP/ERR/NVAL without except handler: fd=%d rev=0x%x name='%s' type=%s r=%p w=%p — unregister", |
|
|
|
fd, ua->poll_fds[i].revents, node->name ? node->name : "?", |
|
|
|
fd, ua->poll_fds[i].revents, node->name ? node->name : "?", |
|
|
|
node->type == SOCKET_NODE_TYPE_SOCK ? "SOCK" : "FD", |
|
|
|
node->type == SOCKET_NODE_TYPE_SOCK ? "SOCK" : "FD", |
|
|
|
(void*)(node->type == SOCKET_NODE_TYPE_SOCK ? (void*)node->read_cbk_sock : (void*)node->read_cbk), |
|
|
|
(void*)(node->type == SOCKET_NODE_TYPE_SOCK ? (void*)node->read_cbk_sock : (void*)node->read_cbk), |
|
|
|
|