]> andersk Git - openssh.git/blobdiff - openbsd-compat/bsd-misc.c
- djm@cvs.openbsd.org 2003/06/12 12:22:47
[openssh.git] / openbsd-compat / bsd-misc.c
index b52a6f52ee32bf650545005a9a8e5acdd81e2dae..6b254117f60c030b176ca2c7a475b49ee319bccd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999-2000 Damien Miller.  All rights reserved.
+ * Copyright (c) 1999-2003 Damien Miller.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -41,21 +41,21 @@ char *get_progname(char *argv0)
        char *p;
 
        if (argv0 == NULL)
-               return "unknown";       /* XXX */
+               return ("unknown");     /* XXX */
        p = strrchr(argv0, '/');
        if (p == NULL)
                p = argv0;
        else
                p++;
 
-       return xstrdup(p);
+       return (xstrdup(p));
 #endif
 }
 
 #ifndef HAVE_SETLOGIN
 int setlogin(const char *name)
 {
-       return(0);
+       return (0);
 }
 #endif /* !HAVE_SETLOGIN */
 
@@ -63,21 +63,21 @@ int setlogin(const char *name)
 int innetgr(const char *netgroup, const char *host, 
             const char *user, const char *domain)
 {
-       return(0);
+       return (0);
 }
 #endif /* HAVE_INNETGR */
 
 #if !defined(HAVE_SETEUID) && defined(HAVE_SETREUID)
 int seteuid(uid_t euid)
 {
-       return(setreuid(-1,euid));
+       return (setreuid(-1, euid));
 }
 #endif /* !defined(HAVE_SETEUID) && defined(HAVE_SETREUID) */
 
 #if !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID)
 int setegid(uid_t egid)
 {
-       return(setresgid(-1,egid,-1));
+       return(setresgid(-1, egid, -1));
 }
 #endif /* !defined(HAVE_SETEGID) && defined(HAVE_SETRESGID) */
 
@@ -88,9 +88,9 @@ const char *strerror(int e)
        extern char *sys_errlist[];
        
        if ((e >= 0) && (e < sys_nerr))
-               return(sys_errlist[e]);
-       else
-               return("unlisted error");
+               return (sys_errlist[e]);
+
+       return ("unlisted error");
 }
 #endif
 
@@ -102,24 +102,25 @@ int utimes(char *filename, struct timeval *tvp)
        ub.actime = tvp[0].tv_sec;
        ub.modtime = tvp[1].tv_sec;
        
-       return(utime(filename, &ub));
+       return (utime(filename, &ub));
 }
 #endif 
 
 #ifndef HAVE_TRUNCATE
-int truncate (const char *path, off_t length)
+int truncate(const char *path, off_t length)
 {
        int fd, ret, saverrno;
 
        fd = open(path, O_WRONLY);
        if (fd < 0)
-               return -1;
+               return (-1);
 
        ret = ftruncate(fd, length);
        saverrno = errno;
-       (void) close (fd);
+       close(fd);
        if (ret == -1)
                errno = saverrno;
+
        return(ret);
 }
 #endif /* HAVE_TRUNCATE */
@@ -131,7 +132,38 @@ int truncate (const char *path, off_t length)
 int
 setgroups(size_t size, const gid_t *list)
 {
-       return 0;
+       return (0);
 }
 #endif 
 
+#if !defined(HAVE_NANOSLEEP) && !defined(HAVE_NSLEEP)
+int nanosleep(const struct timespec *req, struct timespec *rem)
+{
+       int rc, saverrno;
+       extern int errno;
+       struct timeval tstart, tstop, tremain, time2wait;
+
+       TIMESPEC_TO_TIMEVAL(&time2wait, req)
+       (void) gettimeofday(&tstart, NULL);
+       rc = select(0, NULL, NULL, NULL, &time2wait);
+       if (rc == -1) {
+               saverrno = errno;
+               (void) gettimeofday (&tstop, NULL);
+               errno = saverrno;
+               tremain.tv_sec = time2wait.tv_sec - 
+                       (tstop.tv_sec - tstart.tv_sec);
+               tremain.tv_usec = time2wait.tv_usec - 
+                       (tstop.tv_usec - tstart.tv_usec);
+               tremain.tv_sec += tremain.tv_usec / 1000000L;
+               tremain.tv_usec %= 1000000L;
+       } else {
+               tremain.tv_sec = 0;
+               tremain.tv_usec = 0;
+       }
+       TIMEVAL_TO_TIMESPEC(&tremain, rem)
+
+       return(rc);
+}
+
+#endif
+
This page took 0.123883 seconds and 4 git commands to generate.