Vodz' last_patch31
authorEric Andersen <andersen@codepoet.org>
Tue, 18 Dec 2001 14:06:03 +0000 (14:06 -0000)
committerEric Andersen <andersen@codepoet.org>
Tue, 18 Dec 2001 14:06:03 +0000 (14:06 -0000)
    Very minimal last corrections:

    1) busybox.c: fix warining
    2) docs/: add applets for list from pwd_grp
    3) usage.h: add -n option for route
    4) run_parts.c: many todo fix for busybox style
    5) addgroup.c: add #ifdef CONFIG_FEATURE_SHADOWPASSWDS, reduce one
    perror_msg
    6) adduser.c: fix bug "variable i not initialize" and
       add #ifdef CONFIG_FEATURE_SHADOWPASSWDS

applets/busybox.c
docs/busybox.sgml
docs/busybox_footer.pod
docs/busybox_header.pod
include/usage.h
init/run_parts.c

index e6e5eca2d20ff7c1ed2700a3d45fa08f94cb1f31..85835817564a4d5ba38ec28c9508b0789a5a72ae 100644 (file)
@@ -35,7 +35,7 @@ typedef int (*__link_f)(const char *, const char *);
  *             malloc'd string w/ full pathname of busybox's location
  *             NULL on failure
  */
-static char *busybox_fullpath()
+static char *busybox_fullpath(void)
 {
        return xreadlink("/proc/self/exe");
 }
index 34559dab45023cf831dddaa09543ddc591d0d518..0a2683faf44624ebb58cec3afdda3147e610a1ec 100644 (file)
                </para>
 
                <para>
-               ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear,
-               cp, cut, date, dc, dd, deallocvt, df, dirname, dmesg, dpkg-deb,
-               du, dumpkmap, dutmp, echo, false, fbset, fdflush, find, free,
-               freeramdisk, fsck.minix, grep, gunzip, gzip, halt, head,
-               hostid, hostname, id, init, insmod, kill, killall, length, ln,
-               loadacm, loadfont, loadkmap, logger, logname, ls, lsmod,
-               makedevs, mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp,
-               more, mount, mt, mv, nc, nslookup, ping, poweroff, printf, ps,
-               pwd, reboot, renice, reset, rm, rmdir, rmmod, run-parts, sed, setkeycodes, sh, sleep,
-               sort, swapoff, swapon, sync, syslogd, tail, tar, tee, telnet,
-               test, touch, tr, true, tty, umount, uname, uniq, update,
-               uptime, usleep, uudecode, uuencode, wc, which, whoami, yes,
-               zcat, [
+               addgroup, adduser,  adjtimex,  ar,  basename,  busybox,  cat,
+               chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, cpio, cut,
+               date,  dc,  dd,  deallocvt,  deluser,  df,  dirname,   dmesg,
+               dos2unix, dpkg, dpkg-deb, du, dumpkmap,  dutmp,  echo,  expr,
+               false, fbset, fdflush, find, free,  freeramdisk,  fsck.minix,
+               getopt,  getty,  grep,  gunzip,  gzip,  halt,  head,  hostid,
+               hostname, id, ifconfig, init, insmod, kill,  killall,  klogd,
+               length, ln, loadacm, loadfont, loadkmap, logger, logname, ls,
+               lsmod, makedevs, md5sum, mkdir,  mkfifo,  mkfs.minix,  mknod,
+               mkswap, mktemp, more, mount,  mt,  mv,  nc,  nslookup,  ping,
+               pivot_root,  poweroff,  printf,  ps,  pwd,  rdate,  readlink,
+               reboot, renice, reset, rm,  rmdir,  rmmod,  route,  rpm2cpio,
+               sed, setkeycodes, sh, sleep,  sort,  stty,  swapoff,  swapon,
+               sync, syslogd, tail, tar, tee, telnet, test, tftp, touch, tr,
+               true, tty, umount, uname,  uniq,  unix2dos,  update,  uptime,
+               usleep,  uudecode,  uuencode,  watchdog,  wc,  wget,   which,
+               whoami, xargs, yes, zcat, [
                </para>
        </sect1>
 
        Enrique Zanardi &lt;ezanardi@ull.es&gt;
        </para>
 
+       <para>
+       Vladimir Oleynik &lt;dzo@simtreas.ru&gt;
+       </para>
+
 
   </chapter>
 </book>    <!-- End of the book -->
index 2ab4e166ef75a0b8307e02b01badae42943b74e5..7c02003fc0e7ac1a8b1bec4a74c1a69382db1769 100644 (file)
@@ -113,7 +113,7 @@ Glenn McGrath <bug1@netconnect.com.au>
 
 Vladimir Oleynik <dzo@simtreas.ru>
 
-    cmdedit, stty-port, locale, various fixes 
+    cmdedit; ports: ash, stty, traceroute; locale, various fixes
     and irreconcilable critic of everything not perfect.
 
 =for html <br>
@@ -166,4 +166,4 @@ Enrique Zanardi <ezanardi@ull.es>
 
 =cut
 
-# $Id: busybox_footer.pod,v 1.4 2001/04/17 17:09:34 beppu Exp $
+# $Id: busybox_footer.pod,v 1.5 2001/12/18 14:06:01 andersen Exp $
index 764d6e35fbd6b6b1f316c489fad4b8a247a4b84e..0ea7dbfe7d8e4652581af812d7e88bd42654e124 100644 (file)
@@ -55,19 +55,20 @@ terse runtime description of their behavior.
 
 Currently defined functions include:
 
-adjtimex, ar, basename, busybox, cat, chgrp, chmod, chown, chroot, chvt, clear,
-cmp, cp, cpio, cut, date, dc, dd, deallocvt, df, dirname, dmesg, dos2unix, dpkg,
-dpkg-deb, du, dumpkmap, dutmp, echo, expr, false, fbset, fdflush, find, free,
-freeramdisk, fsck.minix, getopt, grep, gunzip, gzip, halt, head, hostid,
-hostname, id, ifconfig, init, insmod, kill, killall, klogd, length, ln,
-loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, md5sum,
-mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc,
-nslookup, ping, pivot_root, poweroff, printf, ps, pwd, rdate, readlink, reboot,
-renice, reset, rm, rmdir, rmmod, route, rpm2cpio, sed, setkeycodes,
-sh, sleep, sort, stty, swapoff, swapon, sync, syslogd, tail, tar, tee, telnet,
-test, tftp, touch, tr, true, tty, umount, uname, uniq, unix2dos, update, uptime,
-usleep, uudecode, uuencode, watchdog, wc, wget, which, whoami, xargs, yes, zcat,
-[
+   addgroup, adduser, adjtimex, ar, basename, busybox, cat,  chgrp,  chmod,
+chown, chroot, chvt, clear, cmp, cp, cpio, cut, date,  dc,  dd,  deallocvt,
+deluser, df, dirname, dmesg, dos2unix, dpkg, dpkg-deb, du, dumpkmap, dutmp,
+echo, expr, false, fbset, fdflush,  find,  free,  freeramdisk,  fsck.minix,
+getopt, getty, grep,  gunzip,  gzip,  halt,  head,  hostid,  hostname,  id,
+ifconfig,  init,  insmod,  kill,  killall,  klogd,  length,  ln,   loadacm,
+loadfont, loadkmap, logger, logname, ls, lsmod,  makedevs,  md5sum,  mkdir,
+mkfifo, mkfs.minix,  mknod,  mkswap,  mktemp,  more,  mount,  mt,  mv,  nc,
+nslookup, ping, pivot_root, poweroff, printf,  ps,  pwd,  rdate,  readlink,
+reboot, renice, reset, rm, rmdir, rmmod, route, rpm2cpio, sed, setkeycodes,
+sh, sleep, sort, stty, swapoff, swapon,  sync,  syslogd,  tail,  tar,  tee,
+telnet, test, tftp, touch, tr, true, tty, umount,  uname,  uniq,  unix2dos,
+update, uptime, usleep, uudecode,  uuencode,  watchdog,  wc,  wget,  which,
+whoami, xargs, yes, zcat, [
 
 =over 4
 
index a970c0f9c479b1478b2334caa684ab2092c951fa..20e2448fd3f181c6e233f00185eaa49419380104 100644 (file)
        "[{add|del|flush}]"
 #define route_full_usage \
        "Edit the kernel's routing tables"
+       "Options:\n" \
+       "\t-n\tDont resolve names."
 
 #define rpm2cpio_trivial_usage \
        "package.rpm"
index 258afb4db4bc71cd06568b9014db61a0c9e17af5..3ec4b9d10ee9cc172ae8cb86011712e93d711e08 100644 (file)
@@ -45,9 +45,9 @@
  * done - convert calls to error in perror... and remove error()
  * done - convert malloc/realloc to their x... counterparts 
  * done - remove catch_sigchld
- * use bb's isdirectory() ? It seems that no applet use it.
  * done - use bb's concat_path_file() 
- * declare run_parts_main() as extern and any other function as static? */
+ * done - declare run_parts_main() as extern and any other function as static?
+ */
 
 #include <stdio.h>
 #include <stdarg.h>
 #include <string.h>
 #include <errno.h>
 #include <ctype.h>
-/* #include <signal.h>
-   #include <sys/time.h> */
 
 #include "busybox.h"
 
-int test_mode = 0;
-int verbose_mode = 0;
-int exitstatus = 0;
+static int test_mode = 0;
+static int exitstatus = 0;
 
-int argcount = 0, argsize = 0;
-char **args = 0;
+static int argcount = 0, argsize = 0;
+static char **args = 0;
 
 
 /* set_umask */
@@ -80,7 +77,7 @@ char **args = 0;
  * 8 and 9 digits under some circumstances. We'll just have to live with it.
  */
 
-void set_umask (void)
+static void set_umask (void)
 {
   int mask, result;
 
@@ -97,14 +94,14 @@ void set_umask (void)
 /* add_argument */
 /* Add an argument to the commands that we will call. Called once for
    every argument. */
-void add_argument (char *newarg)
+static void add_argument (char *newarg)
 {
   if (argcount+1 >= argsize) {
     argsize = argsize ? argsize*2 : 4;
        /*TODO if we convert to xrealloc we lose the verbose error message */
        args = realloc(args, argsize * (sizeof(char*)));
     if (!args) {
-               perror_msg_and_die ("failed to reallocate memory for arguments: %s", strerror(errno));
+               perror_msg_and_die ("failed to reallocate memory for arguments");
        }
   }
   args[argcount++] = newarg;
@@ -116,7 +113,7 @@ void add_argument (char *newarg)
  * underscores, and hyphens only?)
  */
 
-int valid_name (const struct dirent *d)
+static int valid_name (const struct dirent *d)
 {
        char *c = d->d_name;
        while (*c) {
@@ -132,19 +129,19 @@ int valid_name (const struct dirent *d)
 /* run_part */
 /* Execute a file */
 
-void run_part (char *progname)
+static void run_part (char *progname)
 {
   int result;
   int pid;
 
   
   if ((pid=fork()) < 0) {
-    perror_msg_and_die ("failed to fork: %s", strerror(errno));
+    perror_msg_and_die ("failed to fork");
   }
   else if (!pid) {
     args[0] = progname;
     execv (progname, args);
-    perror_msg_and_die ("failed to exec %s: %s", progname, strerror (errno));
+    perror_msg_and_die ("failed to exec %s", progname);
   }
 
   if (0) {
@@ -168,70 +165,30 @@ void run_part (char *progname)
 /* run_parts */
 /* Find the parts to run & call run_part() */
 
-void run_parts (char *dir_name)
+static void run_parts (char *dir_name)
 {
-  struct dirent **namelist;
-  char *filename = NULL;
-  size_t filename_length, dir_name_length;
-  int entries, i, result;
+  struct dirent **namelist = 0;
+  char *filename;
+  int entries, i;
   struct stat st;
 
-  /* dir_name + "/" */
-  dir_name_length = strlen(dir_name) + 1;
-  
-  /* dir_name + "/" + ".." + "\0" (This will save one realloc.) */
-  filename_length = dir_name_length + 2 + 1;
-
-  /* --
-   * Removed this part because I want try to use concat_path_file() */
-  
-/*  if (! (filename = malloc(filename_length))) {
-    error ("failed to allocate memory for path: %s", strerror(errno));
-    exit (1);
-  } */
-
   /* -- */
   
   /* scandir() isn't POSIX, but it makes things easy. */
   entries = scandir (dir_name, &namelist, valid_name, alphasort);
 
   if (entries < 0) {
-    perror_msg_and_die ("failed to open directory %s: %s", dir_name, strerror (errno));
+    perror_msg_and_die ("failed to open directory %s", dir_name);
   }
   
   for (i = 0; i < entries; i++) {
 
-         /* -- 
-          * Removed this part because I want try to use concat_path_file() */
-         
-         /* if (filename_length < dir_name_length + strlen(namelist[i]->d_name) + 1) {
-                 filename_length = dir_name_length + strlen(namelist[i]->d_name) + 1;
-                 if (!(filename = realloc(filename, filename_length))) {
-                         error ("failed to reallocate memory for path: %s", strerror(errno));
-                         exit (1);
-                         }
-                 }
-                 
-               */
-
-         /* -- */
-         
-         
-         /* --
-          * Removed for concat_path_file() */
-         
-/*       strcpy (filename, dir_name); 
-         strcat (filename, "/"); 
-         strcat (filename, namelist[i]->d_name); */
-
          /* -- */
 
          filename = concat_path_file (dir_name, namelist[i]->d_name);
          
-         result = stat (filename, &st);
-         if (result < 0) {
-                 perror_msg_and_die ("failed to stat component %s: %s", filename,
-                                 strerror (errno));
+         if (stat (filename, &st) < 0) {
+                 perror_msg_and_die ("failed to stat component %s", filename);
          }
          if (S_ISREG(st.st_mode) && !access (filename, X_OK)) {
                  if (test_mode)
@@ -240,17 +197,17 @@ void run_parts (char *dir_name)
                          run_part (filename);
                  }
          }
-         /*TODO convert to isdirectory() */
+
          else if (!S_ISDIR(st.st_mode)) {
-                 printf ("run-parts: component %s is not an executable plain file\n",
+                 error_msg ("component %s is not an executable plain file",
                                  filename);
                  exitstatus = 1;
          }
          
          free (namelist[i]);
+         free (filename);
   }
   free (namelist);
-  free (filename);
 }
 
 /* run_parts_main */