diff options
author | Ron Yorston <rmy@pobox.com> | 2024-02-11 10:32:08 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2024-02-11 10:32:08 +0000 |
commit | 5809565f70bd51451ef51da7dfc33716458abec3 (patch) | |
tree | ee3343303b7f6f06c1bba556025226c1e655f961 | |
parent | 5604ec323049c89b09ec7b5f4c816ab659e25dfc (diff) | |
download | busybox-w32-5809565f70bd51451ef51da7dfc33716458abec3.tar.gz busybox-w32-5809565f70bd51451ef51da7dfc33716458abec3.tar.bz2 busybox-w32-5809565f70bd51451ef51da7dfc33716458abec3.zip |
httpd: code shrink
When setting up the arguments for the CGI handler:
- Use '-I0' rather than two separate arguments.
- Use memcpy() to copy the server arguments.
Saves 32 bytes.
-rw-r--r-- | networking/httpd.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/networking/httpd.c b/networking/httpd.c index 0853eaad1..26656fd16 100644 --- a/networking/httpd.c +++ b/networking/httpd.c | |||
@@ -1656,7 +1656,6 @@ static void send_cgi_and_exit( | |||
1656 | int pid; | 1656 | int pid; |
1657 | #if ENABLE_PLATFORM_MINGW32 | 1657 | #if ENABLE_PLATFORM_MINGW32 |
1658 | char **argv; | 1658 | char **argv; |
1659 | int i; | ||
1660 | #endif | 1659 | #endif |
1661 | 1660 | ||
1662 | /* Make a copy. NB: caller guarantees: | 1661 | /* Make a copy. NB: caller guarantees: |
@@ -1752,19 +1751,17 @@ static void send_cgi_and_exit( | |||
1752 | } | 1751 | } |
1753 | script++; | 1752 | script++; |
1754 | 1753 | ||
1755 | argv = xzalloc((server_argc + 9) * sizeof(char *)); | 1754 | argv = xzalloc((server_argc + 8) * sizeof(char *)); |
1756 | argv[0] = (char *)bb_busybox_exec_path; | 1755 | argv[0] = (char *)bb_busybox_exec_path; |
1757 | argv[1] = (char *)"--busybox"; | 1756 | argv[1] = (char *)"--busybox"; |
1758 | argv[2] = (char *)"-httpd"; // don't daemonise in main() | 1757 | argv[2] = (char *)"-httpd"; // don't daemonise in main() |
1759 | argv[3] = (char *)"-I"; | 1758 | argv[3] = (char *)"-I0"; |
1760 | argv[4] = (char *)"0"; | 1759 | memcpy(argv + 4, server_argv, sizeof(*argv) * server_argc); |
1761 | for (i = 0; i < server_argc; ++i) | 1760 | argv[server_argc + 4] = xasprintf("%d:%d:%d:%d", toCgi.wr, toCgi.rd, |
1762 | argv[i + 5] = server_argv[i]; | ||
1763 | argv[server_argc + 5] = xasprintf("%d:%d:%d:%d", toCgi.wr, toCgi.rd, | ||
1764 | fromCgi.wr, fromCgi.rd); | 1761 | fromCgi.wr, fromCgi.rd); |
1765 | argv[server_argc + 6] = (char *)url + 1; // script directory | 1762 | argv[server_argc + 5] = (char *)url + 1; // script directory |
1766 | argv[server_argc + 7] = (char *)script; // script name | 1763 | argv[server_argc + 6] = (char *)script; // script name |
1767 | /* argv[server_argc + 8] = NULL; - xzalloc did it */ | 1764 | /* argv[server_argc + 7] = NULL; - xzalloc did it */ |
1768 | 1765 | ||
1769 | pid = foreground ? mingw_spawn(argv) : mingw_spawn_detach(argv); | 1766 | pid = foreground ? mingw_spawn(argv) : mingw_spawn_detach(argv); |
1770 | if (pid == -1) | 1767 | if (pid == -1) |