1021d409fSDag-Erling Smørgrav /* $OpenBSD: misc.h,v 1.29 2006/01/31 10:19:02 djm Exp $ */ 21e8db6e2SBrian Feldman 31e8db6e2SBrian Feldman /* 41e8db6e2SBrian Feldman * Author: Tatu Ylonen <ylo@cs.hut.fi> 51e8db6e2SBrian Feldman * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 61e8db6e2SBrian Feldman * All rights reserved 71e8db6e2SBrian Feldman * 81e8db6e2SBrian Feldman * As far as I am concerned, the code I have written for this software 91e8db6e2SBrian Feldman * can be used freely for any purpose. Any derived versions of this 101e8db6e2SBrian Feldman * software must be clearly marked as such, and if the derived work is 111e8db6e2SBrian Feldman * incompatible with the protocol description in the RFC file, it must be 121e8db6e2SBrian Feldman * called by a name other than "ssh" or "Secure Shell". 131e8db6e2SBrian Feldman */ 141e8db6e2SBrian Feldman 15d74d50a8SDag-Erling Smørgrav /* misc.c */ 16d74d50a8SDag-Erling Smørgrav 17ae1f160dSDag-Erling Smørgrav char *chop(char *); 18ae1f160dSDag-Erling Smørgrav char *strdelim(char **); 19d74d50a8SDag-Erling Smørgrav int set_nonblock(int); 20d74d50a8SDag-Erling Smørgrav int unset_nonblock(int); 21ae1f160dSDag-Erling Smørgrav void set_nodelay(int); 22ae1f160dSDag-Erling Smørgrav int a2port(const char *); 23021d409fSDag-Erling Smørgrav int a2tun(const char *, int *); 245e8dbd04SDag-Erling Smørgrav char *hpdelim(char **); 25ae1f160dSDag-Erling Smørgrav char *cleanhostname(char *); 26ae1f160dSDag-Erling Smørgrav char *colon(char *); 27ae1f160dSDag-Erling Smørgrav long convtime(const char *); 28043840dfSDag-Erling Smørgrav char *tilde_expand_filename(const char *, uid_t); 29043840dfSDag-Erling Smørgrav char *percent_expand(const char *, ...) __attribute__((__sentinel__)); 30043840dfSDag-Erling Smørgrav char *tohex(const u_char *, u_int); 31021d409fSDag-Erling Smørgrav void sanitise_stdfd(void); 321e8db6e2SBrian Feldman 33ae1f160dSDag-Erling Smørgrav struct passwd *pwcopy(struct passwd *); 341e8db6e2SBrian Feldman 35ae1f160dSDag-Erling Smørgrav typedef struct arglist arglist; 36ae1f160dSDag-Erling Smørgrav struct arglist { 37ae1f160dSDag-Erling Smørgrav char **list; 38d74d50a8SDag-Erling Smørgrav u_int num; 39d74d50a8SDag-Erling Smørgrav u_int nalloc; 40ae1f160dSDag-Erling Smørgrav }; 41021d409fSDag-Erling Smørgrav void addargs(arglist *, char *, ...) 42021d409fSDag-Erling Smørgrav __attribute__((format(printf, 2, 3))); 43021d409fSDag-Erling Smørgrav void replacearg(arglist *, u_int, char *, ...) 44021d409fSDag-Erling Smørgrav __attribute__((format(printf, 3, 4))); 45021d409fSDag-Erling Smørgrav void freeargs(arglist *); 46d74d50a8SDag-Erling Smørgrav 47d74d50a8SDag-Erling Smørgrav /* readpass.c */ 48d74d50a8SDag-Erling Smørgrav 49d74d50a8SDag-Erling Smørgrav #define RP_ECHO 0x0001 50d74d50a8SDag-Erling Smørgrav #define RP_ALLOW_STDIN 0x0002 51d74d50a8SDag-Erling Smørgrav #define RP_ALLOW_EOF 0x0004 52d74d50a8SDag-Erling Smørgrav #define RP_USE_ASKPASS 0x0008 53d74d50a8SDag-Erling Smørgrav 54d74d50a8SDag-Erling Smørgrav char *read_passphrase(const char *, int); 555e8dbd04SDag-Erling Smørgrav int ask_permission(const char *, ...) __attribute__((format(printf, 1, 2))); 565e8dbd04SDag-Erling Smørgrav int read_keyfile_line(FILE *, const char *, char *, size_t, u_long *); 57021d409fSDag-Erling Smørgrav 58021d409fSDag-Erling Smørgrav int tun_open(int, int); 59021d409fSDag-Erling Smørgrav 60021d409fSDag-Erling Smørgrav /* Common definitions for ssh tunnel device forwarding */ 61021d409fSDag-Erling Smørgrav #define SSH_TUNMODE_NO 0x00 62021d409fSDag-Erling Smørgrav #define SSH_TUNMODE_POINTOPOINT 0x01 63021d409fSDag-Erling Smørgrav #define SSH_TUNMODE_ETHERNET 0x02 64021d409fSDag-Erling Smørgrav #define SSH_TUNMODE_DEFAULT SSH_TUNMODE_POINTOPOINT 65021d409fSDag-Erling Smørgrav #define SSH_TUNMODE_YES (SSH_TUNMODE_POINTOPOINT|SSH_TUNMODE_ETHERNET) 66021d409fSDag-Erling Smørgrav 67021d409fSDag-Erling Smørgrav #define SSH_TUNID_ANY 0x7fffffff 68021d409fSDag-Erling Smørgrav #define SSH_TUNID_ERR (SSH_TUNID_ANY - 1) 69021d409fSDag-Erling Smørgrav #define SSH_TUNID_MAX (SSH_TUNID_ANY - 2) 70