]> andersk Git - openssh.git/blobdiff - misc.c
- (bal) Part two.. Drop unused AIX header, fix up missing char *cp. All
[openssh.git] / misc.c
diff --git a/misc.c b/misc.c
index aa9d775f40d61c71b118739440c3cc79fa64bf0f..fbdf408e852c5c8bff06a4fc85f3131fc9683624 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -1,4 +1,4 @@
-/*     $OpenBSD: misc.c,v 1.10 2001/06/16 08:49:38 markus Exp $        */
+/*     $OpenBSD: misc.c,v 1.15 2002/01/24 21:09:25 stevesk Exp $       */
 
 /*
  * Copyright (c) 2000 Markus Friedl.  All rights reserved.
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: misc.c,v 1.10 2001/06/16 08:49:38 markus Exp $");
+RCSID("$OpenBSD: misc.c,v 1.15 2002/01/24 21:09:25 stevesk Exp $");
 
 #include "misc.h"
 #include "log.h"
 #include "xmalloc.h"
 
+/* remove newline at end of string */
 char *
 chop(char *s)
 {
        char *t = s;
        while (*t) {
-               if(*t == '\n' || *t == '\r') {
+               if (*t == '\n' || *t == '\r') {
                        *t = '\0';
                        return s;
                }
@@ -46,6 +47,7 @@ chop(char *s)
 
 }
 
+/* set/unset filedescriptor to non-blocking */
 void
 set_nonblock(int fd)
 {
@@ -90,9 +92,21 @@ unset_nonblock(int fd)
                            fd, strerror(errno));
 }
 
+/* disable nagle on socket */
+void
+set_nodelay(int fd)
+{
+       int on = 1;
+
+       debug("fd %d setting TCP_NODELAY", fd);
+       if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) == -1)
+               error("setsockopt TCP_NODELAY: %.100s", strerror(errno));
+}
+
 /* Characters considered whitespace in strsep calls. */
 #define WHITESPACE " \t\r\n"
 
+/* return next token in configuration line */
 char *
 strdelim(char **s)
 {
@@ -131,6 +145,12 @@ pwcopy(struct passwd *pw)
        copy->pw_gecos = xstrdup(pw->pw_gecos);
        copy->pw_uid = pw->pw_uid;
        copy->pw_gid = pw->pw_gid;
+#ifdef HAVE_PW_EXPIRE_IN_PASSWD
+       copy->pw_expire = pw->pw_expire;
+#endif
+#ifdef HAVE_PW_CHANGE_IN_PASSWD
+       copy->pw_change = pw->pw_change;
+#endif
 #ifdef HAVE_PW_CLASS_IN_PASSWD
        copy->pw_class = xstrdup(pw->pw_class);
 #endif
@@ -139,7 +159,13 @@ pwcopy(struct passwd *pw)
        return copy;
 }
 
-int a2port(const char *s)
+/*
+ * Convert ASCII string to TCP/IP port number.
+ * Port must be >0 and <=65535.
+ * Return 0 if invalid.
+ */
+int
+a2port(const char *s)
 {
        long port;
        char *endp;
@@ -160,7 +186,29 @@ int a2port(const char *s)
 #define DAYS           (HOURS * 24)
 #define WEEKS          (DAYS * 7)
 
-long convtime(const char *s)
+/*
+ * Convert a time string into seconds; format is
+ * a sequence of:
+ *      time[qualifier]
+ *
+ * Valid time qualifiers are:
+ *      <none>  seconds
+ *      s|S     seconds
+ *      m|M     minutes
+ *      h|H     hours
+ *      d|D     days
+ *      w|W     weeks
+ *
+ * Examples:
+ *      90m     90 minutes
+ *      1h30m   90 minutes
+ *      2d      2 days
+ *      1w      1 week
+ *
+ * Return -1 if time string is invalid.
+ */
+long
+convtime(const char *s)
 {
        long total, secs;
        const char *p;
@@ -247,6 +295,7 @@ colon(char *cp)
        return (0);
 }
 
+/* function to assist building execv() arguments */
 void
 addargs(arglist *args, char *fmt, ...)
 {
@@ -260,7 +309,7 @@ addargs(arglist *args, char *fmt, ...)
        if (args->list == NULL) {
                args->nalloc = 32;
                args->num = 0;
-       } else if (args->num+2 >= args->nalloc) 
+       } else if (args->num+2 >= args->nalloc)
                args->nalloc *= 2;
 
        args->list = xrealloc(args->list, args->nalloc * sizeof(char *));
This page took 0.058301 seconds and 4 git commands to generate.