diff options
author | Ron Yorston <rmy@pobox.com> | 2023-12-20 13:45:32 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2023-12-20 13:59:17 +0000 |
commit | 8d85a4a5be88931978fad594b94e762313d37afc (patch) | |
tree | 0f964f6cd9b0c71b02de5011a2f815e1470c8740 /configs | |
parent | 4f9b703c31e6360d1e7ffe7d3410e42e5118b4fd (diff) | |
download | busybox-w32-8d85a4a5be88931978fad594b94e762313d37afc.tar.gz busybox-w32-8d85a4a5be88931978fad594b94e762313d37afc.tar.bz2 busybox-w32-8d85a4a5be88931978fad594b94e762313d37afc.zip |
httpd: enable support for CGI
The upstream code uses fork/exec when running a CGI process.
Emulate this by:
- Spawning a child httpd process with the special '-I 0' option,
along with the options provided on the server command line. This
sets up the proper state then calls the cgi_handler() function.
- The cgi_handler() function fixes the pipe file descriptors and
starts another child process to run the CGI script.
These processes are detached from the console on creation. When
spawn() functions are run in P_DETACH mode they don't connect to
the standard file descriptors. Normally this doesn't matter but
the process which runs the CGI scripts needs to inherit the pipe
endpoints. The create_detached_process() function handles this.
See:
https://github.com/rprichard/win32-console-docs/blob/master/README.md
Adds about 2.9Kb to the size of the binary.
(GitHub issue #266)
Diffstat (limited to 'configs')
-rw-r--r-- | configs/mingw32_defconfig | 4 | ||||
-rw-r--r-- | configs/mingw64_defconfig | 4 | ||||
-rw-r--r-- | configs/mingw64u_defconfig | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/configs/mingw32_defconfig b/configs/mingw32_defconfig index ee01330d1..0f674d45c 100644 --- a/configs/mingw32_defconfig +++ b/configs/mingw32_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Busybox version: 1.37.0.git | 3 | # Busybox version: 1.37.0.git |
4 | # Sat Dec 9 09:38:58 2023 | 4 | # Wed Dec 20 13:23:38 2023 |
5 | # | 5 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_HAVE_DOT_CONFIG=y |
7 | # CONFIG_PLATFORM_POSIX is not set | 7 | # CONFIG_PLATFORM_POSIX is not set |
@@ -916,7 +916,7 @@ CONFIG_FEATURE_HTTPD_RANGES=y | |||
916 | # CONFIG_FEATURE_HTTPD_SETUID is not set | 916 | # CONFIG_FEATURE_HTTPD_SETUID is not set |
917 | CONFIG_FEATURE_HTTPD_BASIC_AUTH=y | 917 | CONFIG_FEATURE_HTTPD_BASIC_AUTH=y |
918 | # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set | 918 | # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set |
919 | # CONFIG_FEATURE_HTTPD_CGI is not set | 919 | CONFIG_FEATURE_HTTPD_CGI=y |
920 | # CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set | 920 | # CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set |
921 | # CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set | 921 | # CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set |
922 | CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y | 922 | CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y |
diff --git a/configs/mingw64_defconfig b/configs/mingw64_defconfig index 3fed1c99b..37f95f4c8 100644 --- a/configs/mingw64_defconfig +++ b/configs/mingw64_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Busybox version: 1.37.0.git | 3 | # Busybox version: 1.37.0.git |
4 | # Sat Dec 9 09:38:58 2023 | 4 | # Wed Dec 20 13:23:38 2023 |
5 | # | 5 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_HAVE_DOT_CONFIG=y |
7 | # CONFIG_PLATFORM_POSIX is not set | 7 | # CONFIG_PLATFORM_POSIX is not set |
@@ -916,7 +916,7 @@ CONFIG_FEATURE_HTTPD_RANGES=y | |||
916 | # CONFIG_FEATURE_HTTPD_SETUID is not set | 916 | # CONFIG_FEATURE_HTTPD_SETUID is not set |
917 | CONFIG_FEATURE_HTTPD_BASIC_AUTH=y | 917 | CONFIG_FEATURE_HTTPD_BASIC_AUTH=y |
918 | # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set | 918 | # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set |
919 | # CONFIG_FEATURE_HTTPD_CGI is not set | 919 | CONFIG_FEATURE_HTTPD_CGI=y |
920 | # CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set | 920 | # CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set |
921 | # CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set | 921 | # CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set |
922 | CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y | 922 | CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y |
diff --git a/configs/mingw64u_defconfig b/configs/mingw64u_defconfig index f3391a206..f26b17ec9 100644 --- a/configs/mingw64u_defconfig +++ b/configs/mingw64u_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Busybox version: 1.37.0.git | 3 | # Busybox version: 1.37.0.git |
4 | # Sat Dec 9 09:38:58 2023 | 4 | # Wed Dec 20 13:23:38 2023 |
5 | # | 5 | # |
6 | CONFIG_HAVE_DOT_CONFIG=y | 6 | CONFIG_HAVE_DOT_CONFIG=y |
7 | # CONFIG_PLATFORM_POSIX is not set | 7 | # CONFIG_PLATFORM_POSIX is not set |
@@ -916,7 +916,7 @@ CONFIG_FEATURE_HTTPD_RANGES=y | |||
916 | # CONFIG_FEATURE_HTTPD_SETUID is not set | 916 | # CONFIG_FEATURE_HTTPD_SETUID is not set |
917 | CONFIG_FEATURE_HTTPD_BASIC_AUTH=y | 917 | CONFIG_FEATURE_HTTPD_BASIC_AUTH=y |
918 | # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set | 918 | # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set |
919 | # CONFIG_FEATURE_HTTPD_CGI is not set | 919 | CONFIG_FEATURE_HTTPD_CGI=y |
920 | # CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set | 920 | # CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set |
921 | # CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set | 921 | # CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set |
922 | CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y | 922 | CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y |