Mercurial > hgrepos > FreeBSD > ports > www > uwsginl
annotate files/patch-core_socket.c @ 174:72804fc47f7c origin
Update to latest snapshot of 2.0.28.
Has been tagged at 2024-10-26.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 08 Mar 2025 19:34:51 +0100 |
| parents | |
| children |
| rev | line source |
|---|---|
|
174
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
1 Fix SOCK_NONBLOCK handling for FreeBSD, copied from NetBSD. |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
2 --- core/socket.c.orig 2024-06-05 01:53:18 UTC |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
3 +++ core/socket.c |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
4 @@ -413,7 +413,7 @@ static int connect_to_unix(char *socket_name, int time |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
5 memcpy(uws_addr.sun_path, socket_name, UMIN(strlen(socket_name), 102)); |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
6 } |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
7 |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
8 -#if defined(__linux__) && defined(SOCK_NONBLOCK) && !defined(OBSOLETE_LINUX_KERNEL) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
9 +#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SOCK_NONBLOCK) && !defined(OBSOLETE_LINUX_KERNEL) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
10 uwsgi_poll.fd = socket(AF_UNIX, SOCK_STREAM | SOCK_NONBLOCK, 0); |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
11 #else |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
12 uwsgi_poll.fd = socket(AF_UNIX, SOCK_STREAM, 0); |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
13 @@ -453,7 +453,7 @@ static int connect_to_tcp(char *socket_name, int port, |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
14 uws_addr.sin_addr.s_addr = inet_addr(socket_name); |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
15 } |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
16 |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
17 -#if defined(__linux__) && defined(SOCK_NONBLOCK) && !defined(OBSOLETE_LINUX_KERNEL) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
18 +#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SOCK_NONBLOCK) && !defined(OBSOLETE_LINUX_KERNEL) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
19 uwsgi_poll.fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0); |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
20 #else |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
21 uwsgi_poll.fd = socket(AF_INET, SOCK_STREAM, 0); |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
22 @@ -827,7 +827,7 @@ int timed_connect(struct pollfd *fdpoll, const struct |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
23 int cnt; |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
24 /* set non-blocking socket */ |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
25 |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
26 -#if defined(__linux__) && defined(SOCK_NONBLOCK) && !defined(OBSOLETE_LINUX_KERNEL) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
27 +#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SOCK_NONBLOCK) && !defined(OBSOLETE_LINUX_KERNEL) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
28 // hmm, nothing to do, as we are already non-blocking |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
29 #else |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
30 int arg = fcntl(fdpoll->fd, F_GETFL, NULL); |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
31 @@ -861,7 +861,7 @@ int timed_connect(struct pollfd *fdpoll, const struct |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
32 } |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
33 |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
34 |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
35 -#if defined(__linux__) && defined(SOCK_NONBLOCK) && !defined(OBSOLETE_LINUX_KERNEL) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
36 +#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SOCK_NONBLOCK) && !defined(OBSOLETE_LINUX_KERNEL) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
37 uwsgi_socket_b(fdpoll->fd); |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
38 #else |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
39 /* re-set blocking socket */ |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
40 @@ -1907,7 +1907,7 @@ int uwsgi_accept(int server_fd) { |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
41 struct sockaddr_un client_src; |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
42 memset(&client_src, 0, sizeof(struct sockaddr_un)); |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
43 socklen_t client_src_len = 0; |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
44 -#if defined(__linux__) && defined(SOCK_NONBLOCK) && !defined(OBSOLETE_LINUX_KERNEL) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
45 +#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SOCK_NONBLOCK) && !defined(OBSOLETE_LINUX_KERNEL) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
46 return accept4(server_fd, (struct sockaddr *) &client_src, &client_src_len, SOCK_NONBLOCK); |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
47 #elif defined(__linux__) |
|
72804fc47f7c
Update to latest snapshot of 2.0.28.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
48 int client_fd = accept(server_fd, (struct sockaddr *) &client_src, &client_src_len); |
