From 585dc667de870922b14ce5a99c088c1a68de7934 Mon Sep 17 00:00:00 2001 From: kris Date: Sat, 3 Jun 2000 09:20:19 +0000 Subject: Import from vendor repository. Obtained from: OpenBSD --- crypto/openssh/aux.c | 36 ++++++++++++++++++++++++++++++++++++ crypto/openssh/ssh.h | 8 +++++++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 crypto/openssh/aux.c (limited to 'crypto') diff --git a/crypto/openssh/aux.c b/crypto/openssh/aux.c new file mode 100644 index 0000000..899142d --- /dev/null +++ b/crypto/openssh/aux.c @@ -0,0 +1,36 @@ +#include "includes.h" +RCSID("$OpenBSD: aux.c,v 1.2 2000/05/17 09:47:59 markus 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; + 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)); +} diff --git a/crypto/openssh/ssh.h b/crypto/openssh/ssh.h index 0762c96..8f6d1e7 100644 --- a/crypto/openssh/ssh.h +++ b/crypto/openssh/ssh.h @@ -13,7 +13,7 @@ * */ -/* RCSID("$Id: ssh.h,v 1.45 2000/05/08 17:12:16 markus Exp $"); */ +/* RCSID("$Id: ssh.h,v 1.46 2000/05/17 08:20:15 markus Exp $"); */ #ifndef SSH_H #define SSH_H @@ -447,6 +447,12 @@ void fatal_remove_cleanup(void (*proc) (void *context), void *context); */ char *tilde_expand_filename(const char *filename, uid_t my_uid); +/* remove newline at end of string */ +char *chop(char *s); + +/* set filedescriptor to non-blocking */ +void set_nonblock(int fd); + /* * Performs the interactive session. This handles data transmission between * the client and the program. Note that the notion of stdin, stdout, and -- cgit v1.1