From: Bogdan Drutu Date: Sat, 4 Jun 2011 08:31:53 +0000 (+0300) Subject: Fix invalid socket and file descriptor is not a socket test X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=commitdiff_plain;h=3e8fc262bfbea69c2476a3499c0b6e81d6f41c17;p=swifty.git Fix invalid socket and file descriptor is not a socket test --- diff --git a/src/raw/swift_raw.c b/src/raw/swift_raw.c index 4f26551..12f8fb5 100644 --- a/src/raw/swift_raw.c +++ b/src/raw/swift_raw.c @@ -142,20 +142,14 @@ ssize_t sw_sendto(int __fd, __const void *__buf, size_t __n, struct msghdr __msgh; struct sockaddr_sw *__sw_addr = (struct sockaddr_sw *) __addr; - printf("=== ADDR: %s ===", ntohl(__sw_addr->sin_addr.s_addr)); list = list_elem_from_socket(__fd); - if (list == NULL) { - errno = EBADF; - goto sock_err; - } - - - if (list->bind_state == STATE_NOTBOUND) { - errno = EDESTADDRREQ; + if (list != NULL && list->bind_state == STATE_NOTBOUND) { + errno = EAFNOSUPPORT; goto sock_err; } - + printf("=== ADDR: %s ===\n", ntohl(__sw_addr->sin_addr.s_addr)); + /* Specify the components of the message in an "iovec". */ __iov[0].iov_base = (void *) __buf; __iov[0].iov_len = __n;