aboutsummaryrefslogtreecommitdiff
path: root/networking
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2023-04-28 14:05:59 +0100
committerRon Yorston <rmy@pobox.com>2023-04-28 14:05:59 +0100
commit5d417695bcd5af331acf69690312deff61b233d0 (patch)
tree71f632f40cc05e9ac1f3dea798c34c887b6a8bba /networking
parente790046619f539356b950a5b07cba2f477401b4b (diff)
downloadbusybox-w32-5d417695bcd5af331acf69690312deff61b233d0.tar.gz
busybox-w32-5d417695bcd5af331acf69690312deff61b233d0.tar.bz2
busybox-w32-5d417695bcd5af331acf69690312deff61b233d0.zip
win32: code shrink copying of argv
There are two places where a copy of an argv array is made with extra space at the start. Move this code into a function. Saves 56-64 bytes.
Diffstat (limited to 'networking')
-rw-r--r--networking/httpd.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/networking/httpd.c b/networking/httpd.c
index 302d1611d..2b2d14076 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -2804,7 +2804,7 @@ static void mini_httpd_win32(int fg, int sock, int argc, char **argv)
2804 2804
2805 argv_copy[0] = (char *)bb_busybox_exec_path; 2805 argv_copy[0] = (char *)bb_busybox_exec_path;
2806 argv_copy[1] = (char *)"--busybox"; 2806 argv_copy[1] = (char *)"--busybox";
2807 argv_copy[2] = (char *)"httpd"; 2807 argv_copy[2] = (char *)"-httpd" + 1; // skip '-'
2808 argv_copy[3] = (char *)"-I"; 2808 argv_copy[3] = (char *)"-I";
2809 memcpy(&argv_copy[5], &argv[1], argc * sizeof(argv[0])); 2809 memcpy(&argv_copy[5], &argv[1], argc * sizeof(argv[0]));
2810 2810
@@ -2850,14 +2850,12 @@ static void mini_httpd_inetd(void)
2850static void mingw_daemonize(char **argv) 2850static void mingw_daemonize(char **argv)
2851{ 2851{
2852 char **new_argv; 2852 char **new_argv;
2853 int argc, fd; 2853 int fd;
2854 2854
2855 argc = string_array_len((char **)argv); 2855 new_argv = grow_argv(argv + 1, 3);
2856 new_argv = xmalloc(sizeof(*argv)*(argc+3));
2857 new_argv[0] = (char *)bb_busybox_exec_path; 2856 new_argv[0] = (char *)bb_busybox_exec_path;
2858 new_argv[1] = (char *)"--busybox"; 2857 new_argv[1] = (char *)"--busybox";
2859 new_argv[2] = (char *)"-httpd"; 2858 new_argv[2] = (char *)"-httpd"; // '-' marks the daemonised process
2860 memcpy(&new_argv[3], &argv[1], sizeof(*argv)*argc);
2861 2859
2862 fd = xopen(bb_dev_null, O_RDWR); 2860 fd = xopen(bb_dev_null, O_RDWR);
2863 xdup2(fd, 0); 2861 xdup2(fd, 0);