]>
Commit | Line | Data |
---|---|---|
9e622dcd | 1 | /* $OpenBSD: misc.h,v 1.40 2009/12/25 19:40:21 stevesk Exp $ */ |
23c2a7a5 | 2 | |
42f11eb2 | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | |
5 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | |
6 | * All rights reserved | |
7 | * | |
8 | * As far as I am concerned, the code I have written for this software | |
9 | * can be used freely for any purpose. Any derived versions of this | |
10 | * software must be clearly marked as such, and if the derived work is | |
11 | * incompatible with the protocol description in the RFC file, it must be | |
12 | * called by a name other than "ssh" or "Secure Shell". | |
13 | */ | |
42f11eb2 | 14 | |
51e7a012 | 15 | #ifndef _MISC_H |
16 | #define _MISC_H | |
17 | ||
58ae9cb8 | 18 | /* misc.c */ |
19 | ||
ac96ca42 | 20 | char *chop(char *); |
21 | char *strdelim(char **); | |
170694d7 | 22 | int set_nonblock(int); |
23 | int unset_nonblock(int); | |
bcc0381e | 24 | void set_nodelay(int); |
ac96ca42 | 25 | int a2port(const char *); |
9e622dcd | 26 | int a2rdomain(const char *); |
d20f3c9e | 27 | int a2tun(const char *, int *); |
d4530052 | 28 | char *put_host_port(const char *, u_short); |
3867aa0a | 29 | char *hpdelim(char **); |
ac96ca42 | 30 | char *cleanhostname(char *); |
31 | char *colon(char *); | |
32 | long convtime(const char *); | |
49e71137 | 33 | char *tilde_expand_filename(const char *, uid_t); |
8912ae0e | 34 | char *percent_expand(const char *, ...) __attribute__((__sentinel__)); |
51e7a012 | 35 | char *tohex(const void *, size_t); |
fd6168c1 | 36 | void sanitise_stdfd(void); |
bc2d97c8 | 37 | void ms_subtract_diff(struct timeval *, int *); |
38 | void ms_to_timeval(struct timeval *, int); | |
4e1082aa | 39 | void sock_set_v6only(int); |
ac96ca42 | 40 | |
41 | struct passwd *pwcopy(struct passwd *); | |
bb4626fe | 42 | const char *ssh_gai_strerror(int); |
42f11eb2 | 43 | |
8a624ebf | 44 | typedef struct arglist arglist; |
45 | struct arglist { | |
762715ce | 46 | char **list; |
9a995072 | 47 | u_int num; |
48 | u_int nalloc; | |
8a624ebf | 49 | }; |
4116f5c0 | 50 | void addargs(arglist *, char *, ...) |
51 | __attribute__((format(printf, 2, 3))); | |
52 | void replacearg(arglist *, u_int, char *, ...) | |
53 | __attribute__((format(printf, 3, 4))); | |
54 | void freeargs(arglist *); | |
07d80252 | 55 | |
a4f24bf8 | 56 | int tun_open(int, int); |
57 | ||
fe7dba42 | 58 | int socket_rdomain(int, int, int, int); |
59 | ||
a4f24bf8 | 60 | /* Common definitions for ssh tunnel device forwarding */ |
61 | #define SSH_TUNMODE_NO 0x00 | |
62 | #define SSH_TUNMODE_POINTOPOINT 0x01 | |
63 | #define SSH_TUNMODE_ETHERNET 0x02 | |
64 | #define SSH_TUNMODE_DEFAULT SSH_TUNMODE_POINTOPOINT | |
65 | #define SSH_TUNMODE_YES (SSH_TUNMODE_POINTOPOINT|SSH_TUNMODE_ETHERNET) | |
66 | ||
67 | #define SSH_TUNID_ANY 0x7fffffff | |
68 | #define SSH_TUNID_ERR (SSH_TUNID_ANY - 1) | |
69 | #define SSH_TUNID_MAX (SSH_TUNID_ANY - 2) | |
51e7a012 | 70 | |
71 | /* Functions to extract or store big-endian words of various sizes */ | |
72 | u_int64_t get_u64(const void *) | |
73 | __attribute__((__bounded__( __minbytes__, 1, 8))); | |
74 | u_int32_t get_u32(const void *) | |
75 | __attribute__((__bounded__( __minbytes__, 1, 4))); | |
76 | u_int16_t get_u16(const void *) | |
77 | __attribute__((__bounded__( __minbytes__, 1, 2))); | |
78 | void put_u64(void *, u_int64_t) | |
79 | __attribute__((__bounded__( __minbytes__, 1, 8))); | |
80 | void put_u32(void *, u_int32_t) | |
81 | __attribute__((__bounded__( __minbytes__, 1, 4))); | |
82 | void put_u16(void *, u_int16_t) | |
83 | __attribute__((__bounded__( __minbytes__, 1, 2))); | |
84 | ||
51e7a012 | 85 | |
b2af4ca8 | 86 | /* readpass.c */ |
87 | ||
88 | #define RP_ECHO 0x0001 | |
89 | #define RP_ALLOW_STDIN 0x0002 | |
90 | #define RP_ALLOW_EOF 0x0004 | |
91 | #define RP_USE_ASKPASS 0x0008 | |
92 | ||
93 | char *read_passphrase(const char *, int); | |
94 | int ask_permission(const char *, ...) __attribute__((format(printf, 1, 2))); | |
95 | int read_keyfile_line(FILE *, const char *, char *, size_t, u_long *); | |
96 | ||
97 | #endif /* _MISC_H */ |