From f5a92f59e47a71647d76851c70fc543ed6b1f9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 4 Jul 2007 16:43:32 +0000 Subject: [PATCH] Cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21550 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/network/stack/net_socket.cpp | 87 ++++++++++++------- 1 file changed, 56 insertions(+), 31 deletions(-) diff --git a/src/add-ons/kernel/network/stack/net_socket.cpp b/src/add-ons/kernel/network/stack/net_socket.cpp index 65968b7fc2..443be52b32 100644 --- a/src/add-ons/kernel/network/stack/net_socket.cpp +++ b/src/add-ons/kernel/network/stack/net_socket.cpp @@ -39,7 +39,9 @@ struct net_socket_private : net_socket { void socket_delete(net_socket *socket); -int socket_bind(net_socket *socket, const struct sockaddr *address, socklen_t addressLength); +int socket_bind(net_socket *socket, const struct sockaddr *address, + socklen_t addressLength); + struct list sSocketList; benaphore sSocketLock; @@ -69,8 +71,10 @@ create_socket(int family, int type, int protocol, net_socket_private **_socket) socket->receive.low_water_mark = 1; socket->receive.timeout = B_INFINITE_TIMEOUT; - list_init_etc(&socket->pending_children, offsetof(net_socket_private, link)); - list_init_etc(&socket->connected_children, offsetof(net_socket_private, link)); + list_init_etc(&socket->pending_children, offsetof(net_socket_private, + link)); + list_init_etc(&socket->connected_children, offsetof(net_socket_private, + link)); status = get_domain_protocols(socket); if (status < B_OK) @@ -142,14 +146,16 @@ socket_free(net_socket *socket) status_t -socket_readv(net_socket *socket, const iovec *vecs, size_t vecCount, size_t *_length) +socket_readv(net_socket *socket, const iovec *vecs, size_t vecCount, + size_t *_length) { return -1; } status_t -socket_writev(net_socket *socket, const iovec *vecs, size_t vecCount, size_t *_length) +socket_writev(net_socket *socket, const iovec *vecs, size_t vecCount, + size_t *_length) { if (socket->peer.ss_len == 0) return ECONNRESET; @@ -253,7 +259,8 @@ socket_get_next_stat(uint32 *_cookie, int family, struct net_stat *stat) net_socket_private *socket = NULL; uint32 cookie = *_cookie; uint32 count = 0; - while ((socket = (net_socket_private *)list_get_next_item(&sSocketList, socket)) != NULL) { + while ((socket = (net_socket_private *)list_get_next_item(&sSocketList, + socket)) != NULL) { // TODO: also traverse the pending connections if (count == cookie) break; @@ -303,8 +310,8 @@ socket_spawn_pending(net_socket *_parent, net_socket **_socket) return ENOBUFS; net_socket_private *socket; - status_t status = create_socket(parent->family, parent->type, parent->protocol, - &socket); + status_t status = create_socket(parent->family, parent->type, + parent->protocol, &socket); if (status < B_OK) return status; @@ -381,10 +388,12 @@ socket_count_connected(net_socket *_parent) BenaphoreLocker _(parent->lock); - int count = 0; - for (void *it = list_get_first_item(&parent->connected_children); - it != NULL; it = list_get_next_item(&parent->connected_children, it)) + ssize_t count = 0; + void *item = NULL; + while ((item = list_get_next_item(&parent->connected_children, + item)) != NULL) { count++; + } return count; } @@ -401,15 +410,18 @@ socket_set_max_backlog(net_socket *_socket, uint32 backlog) benaphore_lock(&socket->lock); - // first remove the pending connections, then the already connected ones as needed + // first remove the pending connections, then the already connected + // ones as needed net_socket_private *child; while (socket->child_count > backlog - && (child = (net_socket_private *)list_remove_tail_item(&socket->pending_children)) != NULL) { + && (child = (net_socket_private *)list_remove_tail_item( + &socket->pending_children)) != NULL) { child->parent = NULL; socket->child_count--; } while (socket->child_count > backlog - && (child = (net_socket_private *)list_remove_tail_item(&socket->connected_children)) != NULL) { + && (child = (net_socket_private *)list_remove_tail_item( + &socket->connected_children)) != NULL) { child->parent = NULL; socket_delete(child); socket->child_count--; @@ -472,14 +484,16 @@ socket_request_notification(net_socket *_socket, uint8 event, uint32 ref, case B_SELECT_READ: { ssize_t available = socket_read_avail(socket); - if ((ssize_t)socket->receive.low_water_mark <= available || available < B_OK) + if ((ssize_t)socket->receive.low_water_mark <= available + || available < B_OK) notify_select_event(sync, ref, event); break; } case B_SELECT_WRITE: { ssize_t available = socket_send_avail(socket); - if ((ssize_t)socket->send.low_water_mark <= available || available < B_OK) + if ((ssize_t)socket->send.low_water_mark <= available + || available < B_OK) notify_select_event(sync, ref, event); break; } @@ -515,12 +529,14 @@ socket_notify(net_socket *_socket, uint8 event, int32 value) switch (event) { case B_SELECT_READ: - if ((ssize_t)socket->receive.low_water_mark > value && value >= B_OK) + if ((ssize_t)socket->receive.low_water_mark > value + && value >= B_OK) notify = false; break; case B_SELECT_WRITE: - if ((ssize_t)socket->send.low_water_mark > value && value >= B_OK) + if ((ssize_t)socket->send.low_water_mark > value + && value >= B_OK) notify = false; break; @@ -543,8 +559,8 @@ socket_notify(net_socket *_socket, uint8 event, int32 value) int -socket_accept(net_socket *socket, struct sockaddr *address, socklen_t *_addressLength, - net_socket **_acceptedSocket) +socket_accept(net_socket *socket, struct sockaddr *address, + socklen_t *_addressLength, net_socket **_acceptedSocket) { if ((socket->options & SO_ACCEPTCONN) == 0) return B_BAD_VALUE; @@ -567,7 +583,8 @@ socket_accept(net_socket *socket, struct sockaddr *address, socklen_t *_addressL int -socket_bind(net_socket *socket, const struct sockaddr *address, socklen_t addressLength) +socket_bind(net_socket *socket, const struct sockaddr *address, + socklen_t addressLength) { sockaddr empty; if (address == NULL) { @@ -601,7 +618,8 @@ socket_bind(net_socket *socket, const struct sockaddr *address, socklen_t addres int -socket_connect(net_socket *socket, const struct sockaddr *address, socklen_t addressLength) +socket_connect(net_socket *socket, const struct sockaddr *address, + socklen_t addressLength) { if (address == NULL || addressLength == 0) return ENETUNREACH; @@ -618,7 +636,8 @@ socket_connect(net_socket *socket, const struct sockaddr *address, socklen_t add int -socket_getpeername(net_socket *socket, struct sockaddr *address, socklen_t *_addressLength) +socket_getpeername(net_socket *socket, struct sockaddr *address, + socklen_t *_addressLength) { if (socket->peer.ss_len == 0) return ENOTCONN; @@ -630,12 +649,14 @@ socket_getpeername(net_socket *socket, struct sockaddr *address, socklen_t *_add int -socket_getsockname(net_socket *socket, struct sockaddr *address, socklen_t *_addressLength) +socket_getsockname(net_socket *socket, struct sockaddr *address, + socklen_t *_addressLength) { if (socket->address.ss_len == 0) return ENOTCONN; - memcpy(address, &socket->address, min_c(*_addressLength, socket->address.ss_len)); + memcpy(address, &socket->address, min_c(*_addressLength, + socket->address.ss_len)); *_addressLength = socket->address.ss_len; return B_OK; } @@ -759,7 +780,8 @@ socket_getsockopt(net_socket *socket, int level, int option, void *value, int socket_listen(net_socket *socket, int backlog) { - status_t status = socket->first_info->listen(socket->first_protocol, backlog); + status_t status = socket->first_info->listen(socket->first_protocol, + backlog); if (status == B_OK) socket->options |= SO_ACCEPTCONN; @@ -917,14 +939,16 @@ socket_send(net_socket *socket, msghdr *header, const void *data, if (header) { // copy additional data into buffer for (int i = 1; i < header->msg_iovlen; i++) { - iovec tmp; - if (user_memcpy(&tmp, header->msg_iov + i, sizeof(iovec)) < B_OK || - gNetBufferModule.append(buffer, tmp.iov_base, tmp.iov_len) < B_OK) { + iovec vec; + if (user_memcpy(&vec, header->msg_iov + i, sizeof(iovec)) < B_OK) + return B_BAD_ADDRESS; + if (gNetBufferModule.append(buffer, vec.iov_base, + vec.iov_len) < B_OK) { gNetBufferModule.free(buffer); return ENOBUFS; } - length += tmp.iov_len; + length += vec.iov_len; } } @@ -938,7 +962,8 @@ socket_send(net_socket *socket, msghdr *header, const void *data, size_t size = buffer->size; gNetBufferModule.free(buffer); - if (size != length && (status == B_INTERRUPTED || status == B_WOULD_BLOCK)) { + if (size != length + && (status == B_INTERRUPTED || status == B_WOULD_BLOCK)) { // this appears to be a partial write return length - size; }