annotate scpmisc.h @ 1499:2d450c1056e3

options: Complete the transition to numeric toggles (`#if') For the sake of review, this commit alters only the code; the affiliated comments within the source files also need to be updated, but doing so now would obscure the operational changes that have been made here. * All on/off options have been switched to the numeric `#if' variant; that is the only way to make this `default_options.h.in' thing work in a reasonable manner. * There is now some very minor compile-time checking of the user's choice of options. * NO_FAST_EXPTMOD doesn't seem to be used, so it has been removed. * ENABLE_USER_ALGO_LIST was supposed to be renamed DROPBEAR_USER_ALGO_LIST, and this commit completes that work. * DROPBEAR_FUZZ seems to be a relatively new, as-yet undocumented option, which was added by the following commit: commit 6e0b539e9ca0b5628c6c5a3d118ad6a2e79e8039 Author: Matt Johnston <[email protected]> Date: Tue May 23 22:29:21 2017 +0800 split out checkpubkey_line() separately It has now been added to `sysoptions.h' and defined as `0' by default. * The configuration option `DROPBEAR_PASSWORD_ENV' is no longer listed in `default_options.h.in'; it is no longer meant to be set by the user, and is instead left to be defined in `sysoptions.h' (where it was already being defined) as merely the name of the environment variable in question: DROPBEAR_PASSWORD To enable or disable use of that environment variable, the user must now toggle `DROPBEAR_USE_DROPBEAR_PASSWORD'. * The sFTP support is now toggled by setting `DROPBEAR_SFTPSERVER', and the path of the sFTP server program is set independently through the usual SFTPSERVER_PATH.
author Michael Witten <mfwitten@gmail.com>
date Thu, 20 Jul 2017 19:38:26 +0000
parents 83d85b28b353
children 292f79307600
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
1 /* $OpenBSD: misc.h,v 1.12 2002/03/19 10:49:35 markus Exp $ */
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
2
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
3 /*
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
4 * Author: Tatu Ylonen <[email protected]>
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
5 * Copyright (c) 1995 Tatu Ylonen <[email protected]>, Espoo, Finland
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
6 * All rights reserved
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
7 *
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
8 * As far as I am concerned, the code I have written for this software
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
9 * can be used freely for any purpose. Any derived versions of this
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
10 * software must be clearly marked as such, and if the derived work is
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
11 * incompatible with the protocol description in the RFC file, it must be
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
12 * called by a name other than "ssh" or "Secure Shell".
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
13 */
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
14
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
15 char *chop(char *);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
16 char *strdelim(char **);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
17 void set_nonblock(int);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
18 void unset_nonblock(int);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
19 void set_nodelay(int);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
20 int a2port(const char *);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
21 char *cleanhostname(char *);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
22 char *colon(char *);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
23 long convtime(const char *);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
24
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
25 struct passwd *pwcopy(struct passwd *);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
26
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
27 typedef struct arglist arglist;
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
28 struct arglist {
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
29 char **list;
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
30 int num;
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
31 int nalloc;
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
32 };
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
33 void addargs(arglist *, char *, ...);
287
b72f98803e46 Update to scp from OpenSSH portable 4.3p2
Matt Johnston <matt@ucc.asn.au>
parents: 4
diff changeset
34 void replacearg(arglist *, u_int, char *, ...);
b72f98803e46 Update to scp from OpenSSH portable 4.3p2
Matt Johnston <matt@ucc.asn.au>
parents: 4
diff changeset
35 void freeargs(arglist *);
4
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
36
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
37 /* from xmalloc.h */
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
38 void *xmalloc(size_t);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
39 void *xrealloc(void *, size_t);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
40 void xfree(void *);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
41 char *xstrdup(const char *);
fe6bca95afa7 Makefile.in contains updated files required
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
42
287
b72f98803e46 Update to scp from OpenSSH portable 4.3p2
Matt Johnston <matt@ucc.asn.au>
parents: 4
diff changeset
43 char *ssh_get_progname(char *);
b72f98803e46 Update to scp from OpenSSH portable 4.3p2
Matt Johnston <matt@ucc.asn.au>
parents: 4
diff changeset
44 void fatal(char* fmt,...);
b72f98803e46 Update to scp from OpenSSH portable 4.3p2
Matt Johnston <matt@ucc.asn.au>
parents: 4
diff changeset
45 void sanitise_stdfd(void);
294
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
46
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
47 /* Required for non-BSD platforms, from OpenSSH's defines.h */
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
48 #ifndef timersub
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
49 #define timersub(a, b, result) \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
50 do { \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
51 (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
52 (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
53 if ((result)->tv_usec < 0) { \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
54 --(result)->tv_sec; \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
55 (result)->tv_usec += 1000000; \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
56 } \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
57 } while (0)
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
58 #endif
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
59
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
60 #ifndef TIMEVAL_TO_TIMESPEC
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
61 #define TIMEVAL_TO_TIMESPEC(tv, ts) { \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
62 (ts)->tv_sec = (tv)->tv_sec; \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
63 (ts)->tv_nsec = (tv)->tv_usec * 1000; \
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
64 }
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
65 #endif
5686ee0a3338 put back the TIMEVAL_TO_TIMESPEC and timersub macros for Linux
Matt Johnston <matt@ucc.asn.au>
parents: 287
diff changeset
66