]> andersk Git - openssh.git/blobdiff - bsd-misc.c
- (stevesk) Add initial support for setproctitle(). Current
[openssh.git] / bsd-misc.c
index e6b529e1e6f81cbf4c7f6311f3f5dcb5c1d0fc87..59814946cf64a34b4405b359c123c4e769786151 100644 (file)
@@ -9,11 +9,6 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes software developed by Markus Friedl.
- * 4. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#ifdef HAVE_STDDEF_H
-#include <stddef.h>
-#endif
-
+#include "includes.h"
 #include "xmalloc.h"
 #include "ssh.h"
-#include "bsd-misc.h"
-#include "entropy.h"
-
-#include <openssl/rand.h>
-
-#ifndef HAVE_ARC4RANDOM
-
-typedef struct
-{
-       unsigned int s[256];
-       int i;
-       int j;
-} rc4_t;
-
-void rc4_key(rc4_t *r, unsigned char *key, int len);
-void rc4_getbytes(rc4_t *r, unsigned char *buffer, int len);
-
-static rc4_t *rc4 = NULL;
-
-void rc4_key(rc4_t *r, unsigned char *key, int len)
-{
-       int t;
-       
-       for(r->i = 0; r->i < 256; r->i++)
-               r->s[r->i] = r->i;
-
-       r->j = 0;
-       for(r->i = 0; r->i < 256; r->i++)
-       {
-               r->j = (r->j + r->s[r->i] + key[r->i % len]) % 256;
-               t = r->s[r->i];
-               r->s[r->i] = r->s[r->j];
-               r->s[r->j] = t;
-       }
-       r->i = r->j = 0;
-}
-
-void rc4_getbytes(rc4_t *r, unsigned char *buffer, int len)
-{
-       int t;
-       int c;
-
-       c = 0;  
-       while(c < len)
-       {
-               r->i = (r->i + 1) % 256;
-               r->j = (r->j + r->s[r->i]) % 256;
-               t = r->s[r->i];
-               r->s[r->i] = r->s[r->j];
-               r->s[r->j] = t;
-
-               t = (r->s[r->i] + r->s[r->j]) % 256;
-               
-               buffer[c] = r->s[t];
-               c++;
-       }
-}
-
-unsigned int arc4random(void)
-{
-       unsigned int r;
-
-       if (rc4 == NULL)
-               arc4random_stir();
-       
-       rc4_getbytes(rc4, (unsigned char *)&r, sizeof(r));
-       
-       return(r);
-}
-
-void arc4random_stir(void)
-{
-       unsigned char rand_buf[32];
-       
-       if (rc4 == NULL)
-               rc4 = xmalloc(sizeof(*rc4));
-
-       seed_rng();
-       RAND_bytes(rand_buf, sizeof(rand_buf));
-       
-       rc4_key(rc4, rand_buf, sizeof(rand_buf));
-       memset(rand_buf, 0, sizeof(rand_buf));
-}
-#endif /* !HAVE_ARC4RANDOM */
-
-#ifndef HAVE_SETPROCTITLE
-void setproctitle(const char *fmt, ...)
-{
-       /* FIXME */
-}
-#endif /* !HAVE_SETPROCTITLE */
 
 #ifndef HAVE_SETLOGIN
 int setlogin(const char *name)
@@ -158,9 +48,15 @@ int seteuid(uid_t euid)
 }
 #endif /* !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) */
 
-#if !defined(HAVE_STRERROR) && defined(HAVE_SYS_ERRLIST)
-const char *strerror(void)
+#if !defined(HAVE_STRERROR) && defined(HAVE_SYS_ERRLIST) && defined(HAVE_SYS_NERR)
+const char *strerror(int e)
 {
-       return(sys_errlist[errno]);
+       extern int sys_nerr;
+       extern char *sys_errlist[];
+       
+       if ((e >= 0) || (e < sys_nerr))
+               return("unlisted error");
+       else
+               return(sys_errlist[e]);
 }
-#endif /* !defined(HAVE_STRERROR) && defined(HAVE_SYS_ERRLIST) */
+#endif
This page took 0.171465 seconds and 4 git commands to generate.