1997-09-18 14:21:06 +00:00
|
|
|
--- server/main.c.orig Sun Jan 5 19:59:27 1997
|
|
|
|
+++ server/main.c Wed Sep 17 15:34:40 1997
|
|
|
|
@@ -139,6 +139,36 @@
|
|
|
|
}
|
1996-11-02 13:53:37 +00:00
|
|
|
}
|
|
|
|
|
1997-09-18 14:21:06 +00:00
|
|
|
+#if defined(__FreeBSD__)
|
|
|
|
+static unsigned char itoa64[] =
|
|
|
|
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./";
|
|
|
|
+
|
|
|
|
+static void
|
|
|
|
+to64(char *s, long v, int n)
|
|
|
|
+{
|
|
|
|
+ while (--n >= 0) {
|
|
|
|
+ *s++ = itoa64[v&0x3f];
|
|
|
|
+ v >>= 6;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+char *
|
|
|
|
+crypt_string(char *str, char *salt)
|
|
|
|
+{
|
|
|
|
+ char s[10];
|
|
|
|
+ if (salt==NULL) {
|
|
|
|
+ struct timeval tv;
|
|
|
|
+ gettimeofday(&tv,0);
|
|
|
|
+ to64(&s[0], random(), 3);
|
|
|
|
+ to64(&s[3], tv.tv_usec, 3);
|
|
|
|
+ to64(&s[6], tv.tv_sec, 2);
|
|
|
|
+ s[8] = '\0';
|
|
|
|
+ salt = s;
|
|
|
|
+ }
|
|
|
|
+ return (crypt(str, salt));
|
|
|
|
+}
|
1996-11-02 13:53:37 +00:00
|
|
|
+#else
|
1997-09-18 14:21:06 +00:00
|
|
|
+
|
|
|
|
char *crypt_string(char *str, char *salt) {
|
|
|
|
static char *c=
|
|
|
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./";
|
|
|
|
@@ -151,6 +181,7 @@
|
|
|
|
s[1]= salt[1];
|
|
|
|
return crypt(str,s);
|
1996-11-02 13:53:37 +00:00
|
|
|
}
|
1997-09-18 14:21:06 +00:00
|
|
|
+#endif
|
1996-11-02 13:53:37 +00:00
|
|
|
|
1997-09-18 14:21:06 +00:00
|
|
|
int check_password(char *typed,char *crypted) {
|
|
|
|
return !strcmp(crypt_string(typed,crypted),crypted);
|