More stuff
authorErik Andersen <andersen@codepoet.org>
Tue, 2 May 2000 00:07:56 +0000 (00:07 -0000)
committerErik Andersen <andersen@codepoet.org>
Tue, 2 May 2000 00:07:56 +0000 (00:07 -0000)
 -Erik

13 files changed:
Changelog
Makefile
TODO
busybox.def.h
coreutils/tr.c
coreutils/whoami.c
dutmp.c
miscutils/dutmp.c
networking/nslookup.c
nslookup.c
tr.c
utility.c
whoami.c

index 4580efc2bc2acc023d5605878826ec71a404a062..aed8c14d764104dba41209540339542d1182e4df 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -16,7 +16,8 @@
            * tail can now accept -<num> commands (e.g. -10) for better 
                compatibility with the standard tail command
            * added a simple id implementation; doesn't support supp. groups yet
-       * logname used getlogin(3), which uses utmp under the hood.  Now it behaves. 
+       * logname used getlogin(3) which uses utmp under the hood.  Now it behaves. 
+       * whoami used getpwuid(3) which uses libc NSS.  Now it behaves. 
        * Due to the license change, I can now use minix code.  Minux tr replaces
            the BSD derived tr, saving 4k and eliminating bsearch(3) from the
            list of used Libc symbols.
index 7a0752e58a02aa319059c9d0f0023be834cac946..bf42e585c9c9a287975d578814c3e05ae8c1a940 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -68,7 +68,8 @@ ifndef $(STRIPTOOL)
     STRIPTOOL = strip
 endif
 
-#also to try -- use --prefix=/usr/my-libc2.0.7-stuff
+# TODO: Try compiling vs other libcs.  See what -nostdinc and -nostdlib do for that.
+# also try --prefix=/usr/my-libc-stuff
 
 # -D_GNU_SOURCE is needed because environ is used in init.c
 ifeq ($(DODEBUG),true)
@@ -78,8 +79,6 @@ ifeq ($(DODEBUG),true)
 else
     CFLAGS  += -Wall $(OPTIMIZATION) -fomit-frame-pointer -fno-builtin -D_GNU_SOURCE
     LDFLAGS  = -s
-    #CFLAGS  += -nostdinc -I/home/andersen/apps/newlib/src/newlib/libc/include -Wall $(OPTIMIZATION) -fomit-frame-pointer -fno-builtin -D_GNU_SOURCE
-    #LDFLAGS  = -nostdlib -s -L/home/andersen/apps/newlib/src/newlib/libc.a
     STRIP    = $(STRIPTOOL) --remove-section=.note --remove-section=.comment $(PROG)
     #Only staticly link when _not_ debugging 
     ifeq ($(DOSTATIC),true)
diff --git a/TODO b/TODO
index 15e9b30ada526ac8df281f345f2f9443d5dea9f8..909f8c51c313f492cbff5b2578e7d824e2224bb3 100644 (file)
--- a/TODO
+++ b/TODO
@@ -47,6 +47,39 @@ for GNU libc to be so big.  I'm sure it can be a lot better.
 
 (BTW, this is more informative if BB_FEATURE_NFSMOUNT is turned off...)
 
+Most wanted list:
+
+    [andersen@slag busybox]$ grep -l getgroups *.[ch]
+    test.c
+
+Policy violation.  getgroups uses libc nss, which is unlikely
+to be present in an embedded system.
+
+    [andersen@slag busybox]$ grep -l getopt *.[ch]
+    dmesg.c
+    gunzip.c
+    hostname.c
+    mkfs_minix.c
+    printf.c
+    sfdisk.c
+
+    This includes the symbols: 
+    getopt_long
+    optarg
+    opterr
+    optind
+
+To be replaced with a non-getopt parser.
+
+    [andersen@slag busybox]$ grep -l glob *.[ch]
+    gunzip.c
+    gzip.c
+    sh.c
+    tar.c
+    telnet.c
+
+Can check_wildcard_match() from utility.c do this job?
+
 
 -----------------------
 
index 86b8059cb35e666dac4a337e7871942ca0ff9197..5187bc5060477878286bfe00d2fb036d72d1ecaf 100644 (file)
@@ -63,7 +63,6 @@
 #define BB_MNC
 #define BB_MORE
 #define BB_MOUNT
-#define BB_NFSMOUNT
 #define BB_MT
 #define BB_NSLOOKUP
 #define BB_PING
 // Enable support for remounting filesystems
 #define BB_FEATURE_REMOUNT
 //
+// Enable support for mounting remote NFS volumes
+//#define BB_FEATURE_NFSMOUNT
+//
 // Enable support for creation of tar files.
 #define BB_FEATURE_TAR_CREATE
 //
 #endif
 #endif
 //
+#if defined BB_MOUNT && defined BB_FEATURE_NFSMOUNT
+#define BB_NFSMOUNT
+#endif
+//
index 079c252d3acc3a24318acbb5007aa8911aaea217..ebb64799f4f42bd34a39f3013d22661d7d2659c0 100644 (file)
@@ -2,8 +2,10 @@
 /*
  * Mini tr implementation for busybox
  *
- * This version of tr is adapted from Minix tr
- * Author: Michiel Huisjes
+ * Copyright (c) Michiel Huisjes
+ *
+ * This version of tr is adapted from Minix tr and was modified 
+ * by Erik Andersen <andersee@debian.org> to be used in busybox.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 5c3fea13f673923311261599d725906772600b5a..f9d3f286a995678b324d50081c4bc4628be2b96f 100644 (file)
@@ -29,16 +29,15 @@ static const char whoami_usage[] = "whoami\n\n"
 
 extern int whoami_main(int argc, char **argv)
 {
-       struct passwd *pw;
-       uid_t uid;
+       char *user = xmalloc(9);
+       uid_t uid = geteuid();
 
        if (argc > 1)
                usage(whoami_usage);
 
-       uid = geteuid();
-       pw = getpwuid(uid);
-       if (pw) {
-               puts(pw->pw_name);
+       my_getpwuid(user, uid);
+       if (user) {
+               puts(user);
                exit(TRUE);
        }
        fprintf(stderr, "%s: cannot find username for UID %u\n", argv[0],
diff --git a/dutmp.c b/dutmp.c
index 886d7880db21c78fc5a84806ef8a2ecb32f3eb65..192871f1e051291f14f0627cf06aa26c0c91df18 100644 (file)
--- a/dutmp.c
+++ b/dutmp.c
@@ -25,6 +25,7 @@
 #define utmp new_utmp
 #endif
 
+
 static const char dutmp_usage[] = "dutmp [FILE]\n\n"
        "Dump utmp file format (pipe delimited) from FILE\n"
        "or stdin to stdout.  (i.e. 'dutmp /var/run/utmp')\n";
index 886d7880db21c78fc5a84806ef8a2ecb32f3eb65..192871f1e051291f14f0627cf06aa26c0c91df18 100644 (file)
@@ -25,6 +25,7 @@
 #define utmp new_utmp
 #endif
 
+
 static const char dutmp_usage[] = "dutmp [FILE]\n\n"
        "Dump utmp file format (pipe delimited) from FILE\n"
        "or stdin to stdout.  (i.e. 'dutmp /var/run/utmp')\n";
index 3223b3b63b6f8d01b6d62296872890fce20ce4fa..e4bf52f803fd8de70f2c128d7b73a024488eb38f 100644 (file)
@@ -135,7 +135,7 @@ static struct hostent *hostent_fprint(struct hostent *host, FILE * dst)
                fprintf(dst, "Name:       %s\n", host->h_name);
                addr_list_fprint(host->h_addr_list, dst);
        } else {
-               fprintf(dst, "*** %s\n", hstrerror(h_errno));
+               fprintf(dst, "*** Unknown host\n");
        }
        return host;
 }
@@ -173,4 +173,4 @@ int nslookup_main(int argc, char **argv)
        exit( TRUE);
 }
 
-/* $Id: nslookup.c,v 1.7 2000/04/15 16:34:54 erik Exp $ */
+/* $Id: nslookup.c,v 1.8 2000/05/02 00:07:56 erik Exp $ */
index 3223b3b63b6f8d01b6d62296872890fce20ce4fa..e4bf52f803fd8de70f2c128d7b73a024488eb38f 100644 (file)
@@ -135,7 +135,7 @@ static struct hostent *hostent_fprint(struct hostent *host, FILE * dst)
                fprintf(dst, "Name:       %s\n", host->h_name);
                addr_list_fprint(host->h_addr_list, dst);
        } else {
-               fprintf(dst, "*** %s\n", hstrerror(h_errno));
+               fprintf(dst, "*** Unknown host\n");
        }
        return host;
 }
@@ -173,4 +173,4 @@ int nslookup_main(int argc, char **argv)
        exit( TRUE);
 }
 
-/* $Id: nslookup.c,v 1.7 2000/04/15 16:34:54 erik Exp $ */
+/* $Id: nslookup.c,v 1.8 2000/05/02 00:07:56 erik Exp $ */
diff --git a/tr.c b/tr.c
index 079c252d3acc3a24318acbb5007aa8911aaea217..ebb64799f4f42bd34a39f3013d22661d7d2659c0 100644 (file)
--- a/tr.c
+++ b/tr.c
@@ -2,8 +2,10 @@
 /*
  * Mini tr implementation for busybox
  *
- * This version of tr is adapted from Minix tr
- * Author: Michiel Huisjes
+ * Copyright (c) Michiel Huisjes
+ *
+ * This version of tr is adapted from Minix tr and was modified 
+ * by Erik Andersen <andersee@debian.org> to be used in busybox.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 51c51333c0e92f716c0962b5bfbed30d2a5ce4a8..b33b3c0b4d8d20b632581a4e14775bf305397814 100644 (file)
--- a/utility.c
+++ b/utility.c
@@ -1037,15 +1037,6 @@ extern int replace_match(char *haystack, char *needle, char *newNeedle,
        while (where != NULL) {
                foundOne++;
                strcpy(oldhayStack, haystack);
-#if 0
-               if (strlen(newNeedle) > strlen(needle)) {
-                       haystack =
-                               (char *) realloc(haystack,
-                                                                (unsigned) (strlen(haystack) -
-                                                                                        strlen(needle) +
-                                                                                        strlen(newNeedle)));
-               }
-#endif
                for (slider = haystack, slider1 = oldhayStack; slider != where;
                         slider++, slider1++);
                *slider = 0;
index 5c3fea13f673923311261599d725906772600b5a..f9d3f286a995678b324d50081c4bc4628be2b96f 100644 (file)
--- a/whoami.c
+++ b/whoami.c
@@ -29,16 +29,15 @@ static const char whoami_usage[] = "whoami\n\n"
 
 extern int whoami_main(int argc, char **argv)
 {
-       struct passwd *pw;
-       uid_t uid;
+       char *user = xmalloc(9);
+       uid_t uid = geteuid();
 
        if (argc > 1)
                usage(whoami_usage);
 
-       uid = geteuid();
-       pw = getpwuid(uid);
-       if (pw) {
-               puts(pw->pw_name);
+       my_getpwuid(user, uid);
+       if (user) {
+               puts(user);
                exit(TRUE);
        }
        fprintf(stderr, "%s: cannot find username for UID %u\n", argv[0],