Compare commits
3 Commits
440a18edc6
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
28f4011780 | ||
|
|
077bd91f98 | ||
|
|
8c0ccb628e |
15
sock.h
15
sock.h
@@ -4,7 +4,7 @@
|
|||||||
# @@@@@@ #
|
# @@@@@@ #
|
||||||
# @ @ #
|
# @ @ #
|
||||||
# @====@ #
|
# @====@ #
|
||||||
# @ @ sock.h - v1.7.3 #
|
# @ @ sock.h - v1.7.5 #
|
||||||
# @ @ MIT License #
|
# @ @ MIT License #
|
||||||
# @@% .@ @ #
|
# @@% .@ @ #
|
||||||
# @@ @ @ https://github.com/seajee/sock.h #
|
# @@ @ @ https://github.com/seajee/sock.h #
|
||||||
@@ -375,6 +375,7 @@ SockAddrList sock_dns(const char *addr, int port, SockAddrType addr_hint, SockTy
|
|||||||
|
|
||||||
struct addrinfo *res;
|
struct addrinfo *res;
|
||||||
if (getaddrinfo(addr, service, &hints, &res) != 0) {
|
if (getaddrinfo(addr, service, &hints, &res) != 0) {
|
||||||
|
sock_addr_list_free(&list);
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -514,7 +515,7 @@ bool sock_async_accept(Sock *sock, SockThreadCallback fn, void *user_data)
|
|||||||
|
|
||||||
if (sock->type != SOCK_TCP) {
|
if (sock->type != SOCK_TCP) {
|
||||||
sock->last_errno = EINVAL;
|
sock->last_errno = EINVAL;
|
||||||
return NULL;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Sock *client = sock_accept(sock);
|
Sock *client = sock_accept(sock);
|
||||||
@@ -555,7 +556,7 @@ bool sock_connect(Sock *sock, SockAddr addr)
|
|||||||
|
|
||||||
if (sock->type != SOCK_TCP) {
|
if (sock->type != SOCK_TCP) {
|
||||||
sock->last_errno = EINVAL;
|
sock->last_errno = EINVAL;
|
||||||
return NULL;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (connect(sock->fd, &addr.sockaddr, addr.len) < 0) {
|
if (connect(sock->fd, &addr.sockaddr, addr.len) < 0) {
|
||||||
@@ -578,7 +579,7 @@ ssize_t sock_send(Sock *sock, const void *buf, size_t size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
ssize_t n = send(sock->fd, buf, size, 0);
|
ssize_t n = send(sock->fd, buf, size, MSG_NOSIGNAL);
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
if (errno == EINTR) {
|
if (errno == EINTR) {
|
||||||
continue;
|
continue;
|
||||||
@@ -677,7 +678,8 @@ ssize_t sock_sendto(Sock *sock, const void *buf, size_t size, SockAddr addr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
ssize_t n = sendto(sock->fd, buf, size, 0, &addr.sockaddr, addr.len);
|
ssize_t n = sendto(sock->fd, buf, size, MSG_NOSIGNAL, &addr.sockaddr,
|
||||||
|
addr.len);
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
if (errno == EINTR) {
|
if (errno == EINTR) {
|
||||||
continue;
|
continue;
|
||||||
@@ -820,6 +822,9 @@ void sock__convert_addr(SockAddr *addr)
|
|||||||
/*
|
/*
|
||||||
Revision history:
|
Revision history:
|
||||||
|
|
||||||
|
1.7.5 (2025-12-13) Return false instead of NULL when returning a bool;
|
||||||
|
Fixed memory leak in sock_dns()
|
||||||
|
1.7.4 (2025-12-13) Ignore signals in send and sendto
|
||||||
1.7.3 (2025-09-20) Changed sock_send_all() signature; drain buffers on
|
1.7.3 (2025-09-20) Changed sock_send_all() signature; drain buffers on
|
||||||
sock_close() to prevent data loss
|
sock_close() to prevent data loss
|
||||||
1.7.2 (2025-09-17) New functions sock_recv_all() and sock_send_all();
|
1.7.2 (2025-09-17) New functions sock_recv_all() and sock_send_all();
|
||||||
|
|||||||
Reference in New Issue
Block a user