]> andersk Git - openssh.git/commitdiff
Forgot to add
authordjm <djm>
Fri, 18 Aug 2000 04:01:04 +0000 (04:01 +0000)
committerdjm <djm>
Fri, 18 Aug 2000 04:01:04 +0000 (04:01 +0000)
util.c [new file with mode: 0644]

diff --git a/util.c b/util.c
new file mode 100644 (file)
index 0000000..3b22192
--- /dev/null
+++ b/util.c
@@ -0,0 +1,71 @@
+#include "includes.h"
+RCSID("$OpenBSD: util.c,v 1.1 2000/08/01 19:01:42 provos Exp $");
+
+#include "ssh.h"
+
+char *
+chop(char *s)
+{
+       char *t = s;
+       while (*t) {
+               if(*t == '\n' || *t == '\r') {
+                       *t = '\0';
+                       return s;
+               }
+               t++;
+       }
+       return s;
+
+}
+
+void
+set_nonblock(int fd)
+{
+       int val;
+       if (isatty(fd)) {
+               /* do not mess with tty's */
+               debug("no set_nonblock for tty fd %d", fd);
+               return;
+       }
+       val = fcntl(fd, F_GETFL, 0);
+       if (val < 0) {
+               error("fcntl(%d, F_GETFL, 0): %s", fd, strerror(errno));
+               return;
+       }
+       if (val & O_NONBLOCK)
+               return;
+       debug("fd %d setting O_NONBLOCK", fd);
+       val |= O_NONBLOCK;
+       if (fcntl(fd, F_SETFL, val) == -1)
+               error("fcntl(%d, F_SETFL, O_NONBLOCK): %s", fd, strerror(errno));
+}
+
+/* Characters considered whitespace in strsep calls. */
+#define WHITESPACE " \t\r\n"
+
+char *
+strdelim(char **s)
+{
+       char *old;
+       int wspace = 0;
+
+       if (*s == NULL)
+               return NULL;
+
+       old = *s;
+
+       *s = strpbrk(*s, WHITESPACE "=");
+       if (*s == NULL)
+               return (old);
+
+       /* Allow only one '=' to be skipped */
+       if (*s[0] == '=')
+               wspace = 1;
+       *s[0] = '\0';
+
+       *s += strspn(*s + 1, WHITESPACE) + 1;
+       if (*s[0] == '=' && !wspace)
+               *s += strspn(*s + 1, WHITESPACE) + 1;
+
+       return (old);
+}
This page took 0.041796 seconds and 5 git commands to generate.