]> granicus.if.org Git - shadow/commitdiff
Add support for uClibc with no l64a().
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Fri, 16 Nov 2007 12:36:21 +0000 (12:36 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Fri, 16 Nov 2007 12:36:21 +0000 (12:36 +0000)
ChangeLog
NEWS
configure.in
libmisc/salt.c

index d03b2656844da44e6f965cb1750a85950b493dd5..57316d1c72e2543eea2fc70ab3203af1a3ea682d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-11-16  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * configure.in: Check if the l64a function exists instead of a64l
+       which we do not use.
+       * libmisc/salt.c: Add support for uClibc with no l64a().
+
 2007-11-16  Nicolas François  <nicolas.francois@centraliens.net>
 
        * configure.in: Check if the netdb.h header file and the innetgr
diff --git a/NEWS b/NEWS
index 9135a7ea5b52c949e944f60cc415fda6a062ce46..38f35c18a3c164cc2e5d1c681dad3c18f50f1fc7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -19,6 +19,7 @@ shadow-4.0.18.1 -> shadow-4.0.18.2                                    UNRELEASED
   systems, username with an @ will be treated like any other username
   (i.e. lookup in the local database for an user with an @). Thanks to
   Mike Frysinger for the patch.
+- Add support for uClibc with no l64a().
 
 shadow-4.0.18.1 -> shadow-4.0.18.2                                     28-10-2007
 
index d7546e5a17a4fe601877f282c528f031361cd081..f86812b898f0f3f0dd08e8a51ced1285b965bda2 100644 (file)
@@ -34,7 +34,7 @@ AC_CHECK_HEADERS(errno.h fcntl.h limits.h unistd.h sys/time.h utmp.h \
        utime.h ulimit.h sys/resource.h gshadow.h shadow.h lastlog.h \
        locale.h rpc/key_prot.h netdb.h)
 
-AC_CHECK_FUNCS(a64l fchmod fchown fsync getgroups gethostname getspnam \
+AC_CHECK_FUNCS(l64a fchmod fchown fsync getgroups gethostname getspnam \
        gettimeofday getusershell getutent initgroups lchown lckpwdf lstat \
        memcpy memset setgroups sigaction strchr updwtmp updwtmpx innetgr)
 AC_SYS_LARGEFILE
index 03428987d496249ebf8448746ae4be8e02bd50f8..3ea8ae644b5ab7802685025e9c7a015117986031 100644 (file)
@@ -3,6 +3,8 @@
  *
  * Written by Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl>,
  * public domain.
+ *
+ * l64a was Written by J.T. Conklin <jtc@netbsd.org>. Public domain.
  */
 
 #include <config.h>
 #include "prototypes.h"
 #include "defines.h"
 #include "getdef.h"
+
+#ifndef HAVE_L64A
+char *l64a(long value)
+{
+       static char buf[8];
+       char *s = buf;
+       int digit;
+       int i;
+
+       if (value < 0) {
+               errno = EINVAL;
+               return(NULL);
+       }
+
+       for (i = 0; value != 0 && i < 6; i++) {
+               digit = value & 0x3f;
+
+               if (digit < 2) 
+                       *s = digit + '.';
+               else if (digit < 12)
+                       *s = digit + '0' - 2;
+               else if (digit < 38)
+                       *s = digit + 'A' - 12;
+               else
+                       *s = digit + 'a' - 38;
+
+               value >>= 6;
+               s++;
+       }
+
+       *s = '\0';
+
+       return(buf);
+}
+#endif /* !HAVE_L64A */
+
 /*
  * Generate 8 base64 ASCII characters of random salt.  If MD5_CRYPT_ENAB
  * in /etc/login.defs is "yes", the salt string will be prefixed by "$1$"