lsh 1.1.9 update

This commit is contained in:
chombier 2001-03-27 10:46:55 +00:00
parent ef77bb7e4e
commit a8ab245ccb
226 changed files with 643 additions and 18777 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -300,7 +300,7 @@
#define PACKAGE "lsh"
/* Version number of package */
#define VERSION "1.1.8"
#define VERSION "1.1.9"
/* MacOS Specific */

Binary file not shown.

BIN
lsh/NEWS

Binary file not shown.

View File

@ -112,5 +112,8 @@
/* Define to enable authentication agent forwarding */
#undef WITH_AGENT_FORWARD
/* Used by lsh_proxy.c */
#undef WITH_ALF
/* Use gcov */
#undef WITH_GCOV

Binary file not shown.

BIN
lsh/configure vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -856,6 +856,9 @@ properly logged in to the remote host. Many options have both long and
short forms. This manual does not list all variants; for a full listing
of supported options, use <code>lsh --help</code>.
<p>Note that for many of the options to <code>lsh</code>, the ordering of the
options on the command line is important.
<ul>
<li><a href="#Algorithm%20options">Algorithms</a>: Selecting algorithms.
<li><a href="#Hostauth%20options">Hostauth options</a>:
@ -1033,7 +1036,7 @@ are two types of options that control this: <dfn>actions</dfn> and
and modifiers use lowercase.
<p>For each modifier <code>--foo</code> there's also a negated form
<code>--no-foo</code>. Options can also be negated be preceding it with the
<code>--no-foo</code>. Options can also be negated by preceding it with the
special option <code>-n</code>. This is mainly useful for negating short
options. For instance, use <code>-nt</code> to tell <code>lsh</code> not to
request a remote pseudo terminal. Each modifier and its negation can be

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -127,6 +127,8 @@ crypt_string(struct crypto_instance *c,
return out;
}
/* FIXME: Missing testcases. This is only used for encrypted private
* keys */
struct lsh_string *
crypt_string_pad(struct crypto_instance *c,
struct lsh_string *in,

Binary file not shown.

View File

@ -218,6 +218,7 @@ hash_string(struct hash_algorithm *a,
struct lsh_string *in,
int free);
/* Used only by the testsuite */
struct lsh_string *
mac_string(struct mac_algorithm *a,
struct lsh_string *key,

Binary file not shown.

View File

@ -51,8 +51,6 @@
*/
/* May store a new handler into *h. */
/* GABA:
(class
(name read_handler)
@ -70,6 +68,7 @@
"struct exception_handler *e")))
*/
/* May store a new handler into *h. */
#define READ_HANDLER(h, l, d) ((h)->handler(&(h), (l), (d)))
#endif /*LSH_ABSTRACT_IO_H_INCLUDED */

Binary file not shown.

Binary file not shown.

View File

@ -57,6 +57,7 @@ alist_addv(struct alist *a, unsigned n, va_list args)
return a;
}
#if 0
struct alist
*alist_add(struct alist *a, unsigned n, ...)
{
@ -68,6 +69,7 @@ struct alist
return a;
}
#endif
struct alist_node
{
@ -209,6 +211,8 @@ do_linked_set(struct alist *c, int atom, struct lsh_object *value)
{
CAST(alist_linked, self, c);
assert(atom >= 0);
if (value)
{
struct alist_node *p;

Binary file not shown.

View File

@ -37,9 +37,6 @@ struct alist;
#include "alist.h.x"
#undef GABA_DECLARE
/* Not supported anymore */
/* #define ALIST_USE_SIZE 0 */
/* Abstract interface allows for multiple implementations ("real"
* alists, linear tables, hash tables */
@ -69,12 +66,10 @@ struct alist;
#define ALIST_SET(alist, atom, value) \
(ALIST_CLASS(alist)->set((alist), (atom), (value)))
#if 0
#define ALIST_KEYS(alist) ((alist)->keys((alist)))
#endif
struct alist *alist_addv(struct alist *a, unsigned n, va_list args);
#if 0
struct alist *alist_add(struct alist *a, unsigned n, ...);
#endif
/* n is the number of pairs. The argument list should be terminated
* with -1, for sanity checks. */

Binary file not shown.

Binary file not shown.

BIN
lsh/src/argp/configure vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,5 @@
/* Automatically generated by process_atoms,
* Thu Feb 1 09:09:54 CET 2001
* Sat Mar 17 21:48:51 CET 2001
* Do not edit! */
#define ATOM_NONE 1
@ -61,46 +61,60 @@
#define ATOM_CANCEL_TCPIP_FORWARD 57
#define ATOM_FORWARDED_TCPIP 58
#define ATOM_DIRECT_TCPIP 59
#define ATOM_PRIVATE_KEY 60
#define ATOM_PUBLIC_KEY 61
#define ATOM_DSA 62
#define ATOM_P 63
#define ATOM_Q 64
#define ATOM_G 65
#define ATOM_Y 66
#define ATOM_X 67
#define ATOM_R 68
#define ATOM_S 69
#define ATOM_RSA_PKCS1_SHA1 70
#define ATOM_RSA_PKCS1_MD5 71
#define ATOM_N 72
#define ATOM_E 73
#define ATOM_D 74
#define ATOM_A 75
#define ATOM_B 76
#define ATOM_C 77
#define ATOM_HASH 78
#define ATOM_MD5 79
#define ATOM_SHA1 80
#define ATOM_PASSWORD_ENCRYPTED 81
#define ATOM_XPKCS5V2 82
#define ATOM_ITERATIONS 83
#define ATOM_SALT 84
#define ATOM_DATA 85
#define ATOM_IV 86
#define ATOM_SEQUENCE 87
#define ATOM_CERTIFICATE 88
#define ATOM_SIGNATURE 89
#define ATOM_NAME 90
#define ATOM_ACL 91
#define ATOM_VERSION 92
#define ATOM_ENTRY 93
#define ATOM_PROPAGATE 94
#define ATOM_TAG 95
#define ATOM_PREFIX 96
#define ATOM_SET 97
#define ATOM_STAR 98
#define ATOM_SRP_RING1_SHA1_LOCAL 99
#define ATOM_SRP_VERIFIER 100
#define ATOM_SSH_RING1 101
#define NUMBER_OF_ATOMS 102
#define ATOM_ABRT 60
#define ATOM_ALRM 61
#define ATOM_FPE 62
#define ATOM_HUP 63
#define ATOM_ILL 64
#define ATOM_INT 65
#define ATOM_KILL 66
#define ATOM_PIPE 67
#define ATOM_QUIT 68
#define ATOM_SEGV 69
#define ATOM_TERM 70
#define ATOM_USR1 71
#define ATOM_USR2 72
#define ATOM_SIGNAL_UNKNOWN_LOCAL 73
#define ATOM_PRIVATE_KEY 74
#define ATOM_PUBLIC_KEY 75
#define ATOM_DSA 76
#define ATOM_P 77
#define ATOM_Q 78
#define ATOM_G 79
#define ATOM_Y 80
#define ATOM_X 81
#define ATOM_R 82
#define ATOM_S 83
#define ATOM_RSA_PKCS1_SHA1 84
#define ATOM_RSA_PKCS1_MD5 85
#define ATOM_N 86
#define ATOM_E 87
#define ATOM_D 88
#define ATOM_A 89
#define ATOM_B 90
#define ATOM_C 91
#define ATOM_HASH 92
#define ATOM_MD5 93
#define ATOM_SHA1 94
#define ATOM_PASSWORD_ENCRYPTED 95
#define ATOM_XPKCS5V2 96
#define ATOM_ITERATIONS 97
#define ATOM_SALT 98
#define ATOM_DATA 99
#define ATOM_IV 100
#define ATOM_SEQUENCE 101
#define ATOM_CERTIFICATE 102
#define ATOM_SIGNATURE 103
#define ATOM_NAME 104
#define ATOM_ACL 105
#define ATOM_VERSION 106
#define ATOM_ENTRY 107
#define ATOM_PROPAGATE 108
#define ATOM_TAG 109
#define ATOM_PREFIX 110
#define ATOM_SET 111
#define ATOM_STAR 112
#define ATOM_SRP_RING1_SHA1_LOCAL 113
#define ATOM_SRP_VERIFIER 114
#define ATOM_SSH_RING1 115
#define NUMBER_OF_ATOMS 116

View File

@ -1,17 +1,17 @@
/* ANSI-C code produced by gperf version 2.7 */
/* Command-line: gperf -LANSI-C -t -c -C -l -k1,3,6,10,$ -N gperf_atom */
/* Automatically generated by process_atoms,
* Thu Feb 1 09:10:23 CET 2001
* Sat Mar 17 21:49:57 CET 2001
* Do not edit! */
struct atom_assoc { const char *name; int id; };
#define TOTAL_KEYWORDS 101
#define TOTAL_KEYWORDS 115
#define MIN_WORD_LENGTH 1
#define MAX_WORD_LENGTH 29
#define MIN_HASH_VALUE 1
#define MAX_HASH_VALUE 420
/* maximum key range = 420, duplicates = 0 */
#define MAX_HASH_VALUE 488
/* maximum key range = 488, duplicates = 0 */
#ifdef __GNUC__
__inline
@ -21,32 +21,32 @@ hash (register const char *str, register unsigned int len)
{
static const unsigned short asso_values[] =
{
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 5, 421, 421, 0, 421, 421, 5, 25,
20, 15, 421, 20, 75, 421, 50, 0, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 15, 421,
421, 421, 421, 421, 421, 421, 421, 40, 56, 120,
60, 107, 10, 90, 0, 65, 0, 15, 10, 5,
70, 5, 45, 25, 75, 0, 0, 15, 0, 5,
35, 20, 40, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
421, 421, 421, 421, 421, 421
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 5, 489, 489, 0, 489, 489, 0, 30,
45, 20, 489, 10, 50, 489, 20, 0, 489, 489,
489, 489, 489, 489, 489, 12, 489, 489, 489, 35,
5, 55, 40, 35, 489, 50, 5, 10, 489, 489,
0, 15, 0, 0, 0, 60, 0, 489, 5, 489,
489, 489, 489, 489, 489, 489, 489, 40, 85, 108,
90, 125, 50, 60, 0, 65, 0, 125, 5, 35,
65, 10, 75, 25, 45, 0, 0, 25, 0, 10,
80, 105, 35, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
489, 489, 489, 489, 489, 489
};
register int hval = len;
@ -80,37 +80,41 @@ gperf_atom (register const char *str, register unsigned int len)
{
static const unsigned char lengthtable[] =
{
0, 1, 0, 3, 4, 0, 0, 7, 0, 0, 0, 1, 0, 0,
4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 7, 3, 0, 0, 1, 0, 0, 0, 15,
0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 13, 4,
9, 1, 0, 8, 9, 0, 0, 0, 8, 0, 0, 1, 7, 0,
19, 0, 0, 0, 3, 0, 10, 1, 0, 0, 0, 0, 0, 0,
0, 9, 0, 0, 0, 0, 4, 0, 0, 0, 0, 9, 3, 0,
0, 1, 0, 0, 6, 0, 8, 14, 0, 1, 5, 13, 0, 0,
0, 12, 8, 0, 0, 11, 5, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 3, 0, 0, 29, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 7, 0, 14, 15, 0, 0, 13, 0, 4, 0, 0,
0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
10, 3, 0, 0, 4, 0, 0, 14, 0, 0, 11, 0, 0, 0,
0, 0, 11, 7, 15, 0, 0, 0, 7, 0, 9, 0, 0, 14,
8, 0, 0, 0, 14, 1, 0, 0, 0, 0, 15, 0, 0, 0,
0, 0, 0, 12, 6, 0, 0, 0, 0, 11, 0, 18, 0, 12,
26, 0, 13, 1, 0, 0, 0, 0, 29, 0, 11, 0, 9, 4,
0, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 12, 0, 0, 0,
0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 11, 0, 20, 0, 11, 0, 14, 0, 0, 0, 0, 26, 0,
0, 0, 4, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 10, 0, 0, 0, 27, 8, 0, 0, 0, 0, 0, 0, 0,
12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 3, 4, 0, 0, 7, 0, 4, 0, 1, 0, 0,
4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 3, 4, 0, 0,
0, 3, 0, 0, 0, 7, 3, 0, 0, 1, 0, 3, 4, 15,
0, 0, 3, 4, 0, 0, 0, 0, 4, 0, 0, 2, 0, 0,
0, 0, 0, 0, 4, 0, 6, 0, 3, 9, 0, 1, 7, 0,
19, 0, 0, 0, 0, 0, 10, 1, 0, 8, 4, 0, 0, 0,
0, 0, 0, 0, 12, 0, 9, 0, 0, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 0, 0, 14, 0, 1, 0, 3, 0, 0,
0, 7, 3, 9, 0, 1, 0, 0, 4, 5, 11, 0, 13, 9,
0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 14, 0,
0, 0, 0, 0, 0, 29, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 3, 0, 15, 0, 14, 13, 0, 0, 1,
14, 8, 0, 0, 0, 0, 13, 4, 0, 0, 0, 8, 9, 0,
0, 14, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 8, 11, 15, 0, 1, 0, 0, 0, 0, 0, 8,
0, 7, 11, 0, 0, 4, 15, 0, 0, 13, 0, 5, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 1,
14, 0, 14, 0, 0, 0, 0, 4, 0, 0, 0, 13, 0, 0,
0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 9,
0, 0, 14, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
29, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 10, 12, 0, 0, 0, 10, 12, 18, 0, 0, 0,
12, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 7, 0, 11, 0, 0, 0, 0, 29, 27, 26, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 4, 20,
0, 0, 6, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 11, 9, 0, 0, 0, 0, 0, 12, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10
};
static const struct atom_assoc wordlist[] =
{
@ -121,185 +125,212 @@ gperf_atom (register const char *str, register unsigned int len)
{"hash", ATOM_HASH},
{""}, {""},
{"ssh-dss", ATOM_SSH_DSS},
{""}, {""}, {""},
{""},
{"salt", ATOM_SALT},
{""},
{"*", ATOM_STAR},
{""}, {""},
{"salt", ATOM_SALT},
{"TERM", ATOM_TERM},
{""},
{"ABRT", ATOM_ABRT},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
{"ALRM", ATOM_ALRM},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
{"ssh-userauth", ATOM_SSH_USERAUTH},
{"spki-sign-dss", ATOM_SPKI_SIGN_DSS},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"INT", ATOM_INT},
{"PIPE", ATOM_PIPE},
{""}, {""}, {""},
{"HUP", ATOM_HUP},
{""}, {""}, {""},
{"y", ATOM_Y},
{""}, {""}, {""}, {""}, {""},
{"ssh-rsa", ATOM_SSH_RSA},
{"md5", ATOM_MD5},
{"ILL", ATOM_ILL},
{""}, {""},
{"q", ATOM_Q},
{""}, {""}, {""},
{"auth-ssh1-agent", ATOM_AUTH_SSH1_AGENT},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
{"acl", ATOM_ACL},
{""}, {""}, {""},
{"iv", ATOM_IV},
{"spki-sign-rsa", ATOM_SPKI_SIGN_RSA},
{"sha1", ATOM_SHA1},
{"subsystem", ATOM_SUBSYSTEM},
{"x", ATOM_X},
{""},
{"hmac-md5", ATOM_HMAC_MD5},
{"hmac-sha1", ATOM_HMAC_SHA1},
{""}, {""}, {""},
{"Xpkcs5v2", ATOM_XPKCS5V2},
{"acl", ATOM_ACL},
{"QUIT", ATOM_QUIT},
{"auth-ssh1-agent", ATOM_AUTH_SSH1_AGENT},
{""}, {""},
{"md5", ATOM_MD5},
{"SEGV", ATOM_SEGV},
{""}, {""}, {""}, {""},
{"KILL", ATOM_KILL},
{""}, {""},
{"iv", ATOM_IV},
{""}, {""}, {""}, {""}, {""}, {""},
{"sha1", ATOM_SHA1},
{""},
{"signal", ATOM_SIGNAL},
{""},
{"FPE", ATOM_FPE},
{"hmac-sha1", ATOM_HMAC_SHA1},
{""},
{"a", ATOM_A},
{"session", ATOM_SESSION},
{""},
{"auth-ssh1-agent-req", ATOM_AUTH_SSH1_AGENT_REQ},
{""}, {""}, {""},
{"x11", ATOM_X11},
{""},
{""}, {""}, {""}, {""}, {""},
{"auth-agent", ATOM_AUTH_AGENT},
{"p", ATOM_P},
{"r", ATOM_R},
{""},
{"hmac-md5", ATOM_HMAC_MD5},
{"USR1", ATOM_USR1},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
{"hmac-sha1-96", ATOM_HMAC_SHA1_96},
{""},
{"ssh-ring1", ATOM_SSH_RING1},
{""}, {""}, {""}, {""},
{"data", ATOM_DATA},
{""}, {""}, {""}, {""},
{"hostbased", ATOM_HOSTBASED},
{"env", ATOM_ENV},
{""}, {""},
{"b", ATOM_B},
{""}, {""},
{"signal", ATOM_SIGNAL},
{""},
{"password", ATOM_PASSWORD},
{"USR2", ATOM_USR2},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"auth-agent-req", ATOM_AUTH_AGENT_REQ},
{""},
{"d", ATOM_D},
{"shell", ATOM_SHELL},
{"tcpip-forward", ATOM_TCPIP_FORWARD},
{"g", ATOM_G},
{""},
{"tag", ATOM_TAG},
{""}, {""}, {""},
{"hmac-sha1-96", ATOM_HMAC_SHA1_96},
{"xon-xoff", ATOM_XON_XOFF},
{""}, {""},
{"hmac-md5-96", ATOM_HMAC_MD5_96},
{"entry", ATOM_ENTRY},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"version", ATOM_VERSION},
{"env", ATOM_ENV},
{"subsystem", ATOM_SUBSYSTEM},
{""},
{"n", ATOM_N},
{""}, {""},
{"data", ATOM_DATA},
{"shell", ATOM_SHELL},
{"hmac-md5-96", ATOM_HMAC_MD5_96},
{""},
{"spki-sign-dss", ATOM_SPKI_SIGN_DSS},
{"hostbased", ATOM_HOSTBASED},
{""}, {""}, {""},
{"x11", ATOM_X11},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
{"p", ATOM_P},
{"twofish128-cbc", ATOM_TWOFISH128_CBC},
{""}, {""}, {""}, {""}, {""}, {""},
{"ssh-dss-kludge@lysator.liu.se", ATOM_SSH_DSS_KLUDGE_LOCAL},
{""},
{"x", ATOM_X},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"b", ATOM_B},
{""},
{"dsa", ATOM_DSA},
{""}, {""},
{"ssh-dss-kludge@lysator.liu.se", ATOM_SSH_DSS_KLUDGE_LOCAL},
{""}, {""}, {""}, {""},
{"r", ATOM_R},
{""}, {""}, {""}, {""}, {""},
{"version", ATOM_VERSION},
{""},
{"x509v3-sign-dss", ATOM_X509V3_SIGN_DSS},
{""},
{"twofish192-cbc", ATOM_TWOFISH192_CBC},
{"x509v3-sign-dss", ATOM_X509V3_SIGN_DSS},
{"spki-sign-rsa", ATOM_SPKI_SIGN_RSA},
{""}, {""},
{"rsa-pkcs1-md5", ATOM_RSA_PKCS1_MD5},
{""},
{"d", ATOM_D},
{"twofish256-cbc", ATOM_TWOFISH256_CBC},
{"password", ATOM_PASSWORD},
{""}, {""}, {""}, {""},
{"tcpip-forward", ATOM_TCPIP_FORWARD},
{"zlib", ATOM_ZLIB},
{""}, {""}, {""},
{"rsa-pkcs1-sha1", ATOM_RSA_PKCS1_SHA1},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
{"g", ATOM_G},
{"iterations", ATOM_ITERATIONS},
{"tag", ATOM_TAG},
{""}, {""},
{"name", ATOM_NAME},
{""}, {""},
{"twofish128-cbc", ATOM_TWOFISH128_CBC},
{""}, {""},
{"twofish-cbc", ATOM_TWOFISH_CBC},
{""}, {""}, {""}, {""}, {""},
{"exit-status", ATOM_EXIT_STATUS},
{"x11-req", ATOM_X11_REQ},
{"x509v3-sign-rsa", ATOM_X509V3_SIGN_RSA},
{""}, {""}, {""},
{"pty-req", ATOM_PTY_REQ},
{""},
{"Xpkcs5v2", ATOM_XPKCS5V2},
{"signature", ATOM_SIGNATURE},
{""}, {""},
{"ssh-connection", ATOM_SSH_CONNECTION},
{"sequence", ATOM_SEQUENCE},
{""}, {""}, {""},
{"twofish256-cbc", ATOM_TWOFISH256_CBC},
{"e", ATOM_E},
{""}, {""}, {""}, {""},
{"forwarded-tcpip", ATOM_FORWARDED_TCPIP},
{""}, {""}, {""}, {""}, {""}, {""},
{"pgp-sign-dss", ATOM_PGP_SIGN_DSS},
{"prefix", ATOM_PREFIX},
{""}, {""}, {""}, {""},
{"exit-signal", ATOM_EXIT_SIGNAL},
{""}, {""},
{"iterations", ATOM_ITERATIONS},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
{"password-encrypted", ATOM_PASSWORD_ENCRYPTED},
{"y", ATOM_Y},
{""},
{"direct-tcpip", ATOM_DIRECT_TCPIP},
{"diffie-hellman-group1-sha1", ATOM_DIFFIE_HELLMAN_GROUP1_SHA1},
{"xon-xoff", ATOM_XON_XOFF},
{"twofish-cbc", ATOM_TWOFISH_CBC},
{"x509v3-sign-rsa", ATOM_X509V3_SIGN_RSA},
{""},
{"window-change", ATOM_WINDOW_CHANGE},
{"c", ATOM_C},
{""}, {""}, {""}, {""},
{"srp-ring1-sha1@lysator.liu.se", ATOM_SRP_RING1_SHA1_LOCAL},
{""},
{"private-key", ATOM_PRIVATE_KEY},
{""},
{"publickey", ATOM_PUBLICKEY},
{"none", ATOM_NONE},
{""}, {""}, {""}, {""},
{"propagate", ATOM_PROPAGATE},
{"arcfour", ATOM_ARCFOUR},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
{"public-key", ATOM_PUBLIC_KEY},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
{"pgp-sign-rsa", ATOM_PGP_SIGN_RSA},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
{"serpent192-cbc", ATOM_SERPENT192_CBC},
{""}, {""}, {""}, {""},
{"srp-verifier", ATOM_SRP_VERIFIER},
{""}, {""}, {""}, {""}, {""},
{"aes192-cbc", ATOM_AES192_CBC},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
{"certificate", ATOM_CERTIFICATE},
{"sequence", ATOM_SEQUENCE},
{""},
{"cancel-tcpip-forward", ATOM_CANCEL_TCPIP_FORWARD},
{"arcfour", ATOM_ARCFOUR},
{"exit-status", ATOM_EXIT_STATUS},
{""}, {""},
{"name", ATOM_NAME},
{"forwarded-tcpip", ATOM_FORWARDED_TCPIP},
{""}, {""},
{"rsa-pkcs1-md5", ATOM_RSA_PKCS1_MD5},
{""},
{"entry", ATOM_ENTRY},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
{"exit-signal", ATOM_EXIT_SIGNAL},
{""}, {""}, {""}, {""},
{"e", ATOM_E},
{"serpent128-cbc", ATOM_SERPENT128_CBC},
{""},
{"rsa-pkcs1-sha1", ATOM_RSA_PKCS1_SHA1},
{""}, {""}, {""}, {""},
{"none", ATOM_NONE},
{""}, {""}, {""},
{"window-change", ATOM_WINDOW_CHANGE},
{""}, {""}, {""},
{"x11-req", ATOM_X11_REQ},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"serpent192-cbc", ATOM_SERPENT192_CBC},
{""},
{"propagate", ATOM_PROPAGATE},
{""}, {""},
{"serpent256-cbc", ATOM_SERPENT256_CBC},
{""}, {""}, {""},
{"aes128-cbc", ATOM_AES128_CBC},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
{"srp-ring1-sha1@lysator.liu.se", ATOM_SRP_RING1_SHA1_LOCAL},
{""}, {""},
{"direct-tcpip", ATOM_DIRECT_TCPIP},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
{"aes192-cbc", ATOM_AES192_CBC},
{"pgp-sign-rsa", ATOM_PGP_SIGN_RSA},
{""}, {""}, {""},
{"aes256-cbc", ATOM_AES256_CBC},
{"pgp-sign-dss", ATOM_PGP_SIGN_DSS},
{"password-encrypted", ATOM_PASSWORD_ENCRYPTED},
{""}, {""}, {""},
{"srp-verifier", ATOM_SRP_VERIFIER},
{""}, {""}, {""},
{"diffie-hellman-group1-sha1", ATOM_DIFFIE_HELLMAN_GROUP1_SHA1},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
{"pty-req", ATOM_PTY_REQ},
{""},
{"certificate", ATOM_CERTIFICATE},
{""}, {""}, {""}, {""},
{"signal-unknown@lysator.liu.se", ATOM_SIGNAL_UNKNOWN_LOCAL},
{"rijndael-cbc@lysator.liu.se", ATOM_RIJNDAEL_CBC_LOCAL},
{"serpent-cbc@lysator.liu.se", ATOM_SERPENT_CBC_LOCAL},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
{"cast128-cbc", ATOM_CAST128_CBC},
{""},
{"serpent128-cbc", ATOM_SERPENT128_CBC},
{""}, {""}, {""}, {""},
{"serpent-cbc@lysator.liu.se", ATOM_SERPENT_CBC_LOCAL},
{""}, {""}, {""},
{"exec", ATOM_EXEC},
{""},
{"aes128-cbc", ATOM_AES128_CBC},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
{"serpent256-cbc", ATOM_SERPENT256_CBC},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
{"aes256-cbc", ATOM_AES256_CBC},
{""}, {""}, {""},
{"rijndael-cbc@lysator.liu.se", ATOM_RIJNDAEL_CBC_LOCAL},
{"cancel-tcpip-forward", ATOM_CANCEL_TCPIP_FORWARD},
{""}, {""},
{"prefix", ATOM_PREFIX},
{""}, {""},
{"3des-cbc", ATOM_3DES_CBC},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
{"private-key", ATOM_PRIVATE_KEY},
{"publickey", ATOM_PUBLICKEY},
{""}, {""}, {""}, {""}, {""},
{"blowfish-cbc", ATOM_BLOWFISH_CBC},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
{"idea-cbc", ATOM_IDEA_CBC},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
{"idea-cbc", ATOM_IDEA_CBC}
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
{"public-key", ATOM_PUBLIC_KEY}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)

View File

@ -1,5 +1,5 @@
/* Automatically generated by process_atoms,
* Thu Feb 1 09:10:36 CET 2001
* Sat Mar 17 21:50:34 CET 2001
* Do not edit! */
{ { "UNKNOWN", 7 },
@ -62,6 +62,20 @@
{ "cancel-tcpip-forward", 20 },
{ "forwarded-tcpip", 15 },
{ "direct-tcpip", 12 },
{ "ABRT", 4 },
{ "ALRM", 4 },
{ "FPE", 3 },
{ "HUP", 3 },
{ "ILL", 3 },
{ "INT", 3 },
{ "KILL", 4 },
{ "PIPE", 4 },
{ "QUIT", 4 },
{ "SEGV", 4 },
{ "TERM", 4 },
{ "USR1", 4 },
{ "USR2", 4 },
{ "signal-unknown@lysator.liu.se", 29 },
{ "private-key", 11 },
{ "public-key", 10 },
{ "dsa", 3 },

View File

@ -1,68 +0,0 @@
/* blocking_write.c
*
* $id:$ */
/* lsh, an implementation of the ssh protocol
*
* Copyright (C) 1998 Niels Möller
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "blocking_write.h"
#include "io.h"
#include "xalloc.h"
/* GABA:
(class
(name blocking_write)
(super abstract_write)
(vars
(fd . int)
(e object exception_handler)
(write . (pointer (function "const struct exception *"
int UINT32 "const UINT8 *")))))
*/
#include "blocking_write.c.x"
static void do_blocking_write(struct abstract_write *w,
struct lsh_string *packet)
{
CAST(blocking_write, closure, w);
const struct exception *e =
closure->write(closure->fd, packet->length, packet->data);
if (e)
EXCEPTION_RAISE(closure->e, e);
lsh_string_free(packet);
}
struct abstract_write *
make_blocking_write(int fd, int with_nonblocking,
struct exception_handler *e)
{
NEW(blocking_write, closure);
closure->super.write = do_blocking_write;
closure->write = (with_nonblocking ? write_raw_with_poll : write_raw);
closure->e = e;
closure->fd = fd;
return &closure->super;
}

Binary file not shown.

View File

@ -1,14 +0,0 @@
/* blocking_write.h
*
*/
#ifndef LSH_BLOCKING_WRITE_H_INCLUDED
#define LSH_BLOCKING_WRITE_H_INCLUDED
#include "abstract_io.h"
struct abstract_write *
make_blocking_write(int fd, int with_nonblocking,
struct exception_handler *e);
#endif /* LSH_BLOCKING_WRITE_H_INCLUDED */

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -65,22 +65,6 @@ make_channel_open_exception(UINT32 error_code, const char *msg)
return &self->super;
}
/* GABA:
(class
(name connection_service)
(super command)
(vars
; Supported global requests
(global_requests object alist)
(channel_types object alist) ))
; Initialize connection (for instance, request channels to be
; opened or services to be forwarded).
; (start object connection_startup)))
*/
struct lsh_string *
format_global_failure(void)

Binary file not shown.

View File

@ -96,11 +96,6 @@ struct channel_request_info
; Remote channel number
(channel_number . UINT32)
; Somewhat redundant. Makes it easier to locate
; the channel_table entry for the channel, which
; is needed for deallocating it.
;; (local_number . UINT32)
; Where to pass errors. This is used for two different
; purposes: If opening the channel fails, EXC_CHANNEL_OPEN is
; raised. Once the channel is open, this handler is used for
@ -257,14 +252,16 @@ struct channel_request_info
(vars
(handler method void "struct ssh_connection *connection"
"UINT32 type"
;; FIXME: Is want-reply really needed?
; want-reply is needed only by
; do_gateway_global_request.
"int want_reply"
"struct simple_buffer *args"
"struct command_continuation *c"
"struct exception_handler *e")))
*/
#define GLOBAL_REQUEST(r, c, t, w, a, n, e) ((r)->handler((r), (c), (t), (w), (a), (n), (e)))
#define GLOBAL_REQUEST(r, c, t, w, a, n, e) \
((r)->handler((r), (c), (t), (w), (a), (n), (e)))
/* SSH_MSG_CHANNEL_OPEN */
@ -315,7 +312,6 @@ make_channel_open_exception(UINT32 error_code, const char *msg);
#define CHANNEL_REQUEST(s, c, conn, i, a, n, e) \
((s)->handler((s), (c), (conn), (i), (a), (n), (e)))
/* #define CONNECTION_START(c, s) ((c)->start((c), (s))) */
void init_channel(struct ssh_channel *channel);
@ -327,7 +323,8 @@ void
use_channel(struct ssh_connection *connection,
UINT32 local_channel_number);
void register_channel(struct ssh_connection *connection,
void
register_channel(struct ssh_connection *connection,
UINT32 local_channel_number,
struct ssh_channel *channel,
int take_into_use);
@ -369,14 +366,6 @@ format_channel_open_s(struct lsh_string *type,
struct ssh_channel *channel,
struct lsh_string *args);
#if 0
struct lsh_string *
format_channel_open_a(int type,
UINT32 local_channel_number,
struct ssh_channel *channel,
struct lsh_string *args);
#endif
struct lsh_string *
format_channel_open(int type, UINT32 local_channel_number,
struct ssh_channel *channel,

Binary file not shown.

Binary file not shown.

View File

@ -92,14 +92,6 @@ void do_channel_request_command(struct command *s,
#define FORMAT_GLOBAL_REQUEST(r, conn, c) \
((r)->format_request((r), (conn), (c)))
/* For simple channel-related commands */
/* ;; GABA:
(class
(name channel_command)
(super command)
(vars
(channel object ssh_channel)))
*/
void do_channel_global_command(struct command *s,
struct lsh_object *x,

Binary file not shown.

View File

@ -26,7 +26,6 @@
#include "abstract_io.h"
#include "channel.h"
#include "channel_commands.h"
#include "client_pty.h"
#include "connection.h"
#include "format.h"
#include "interact.h"
@ -239,11 +238,13 @@ do_exit_signal(struct channel_request *c,
*closure->exit_status = 7;
#if 0
signal = signal_network_to_local(signal);
werror("%ups", length, msg);
werror("Remote process was killed by %z.%z\n",
signal ? STRSIGNAL(signal) : "an unknown signal",
#endif
werror("Remote process was killed by signal: %ups %z\n",
length, msg,
core ? "(core dumped remotely)\n": "");
ALIST_SET(channel->request_types, ATOM_EXIT_STATUS, NULL);
@ -443,17 +444,6 @@ init_client_options(struct client_options *self,
object_queue_init(&self->actions);
}
struct client_options *
make_client_options(struct io_backend *backend,
struct exception_handler *handler,
int *exit_code)
{
NEW(client_options, self);
init_client_options(self, backend, handler, exit_code);
return self;
}
/* Host to connect to */
DEFINE_COMMAND_SIMPLE(client_options2remote, a)
{

Binary file not shown.

View File

@ -84,6 +84,9 @@ make_client_session_channel(struct lsh_fd *in,
struct command *
make_exec_request(struct lsh_string *command);
struct command *
make_pty_request(struct interact *tty);
/* GABA:
(class
(name client_options)
@ -135,11 +138,6 @@ init_client_options(struct client_options *options,
struct exception_handler *handler,
int *exit_code);
struct client_options *
make_client_options(struct io_backend *backend,
struct exception_handler *handler,
int *exit_code);
struct command *
client_add_action(struct client_options *options,
struct command *action);

Binary file not shown.

Binary file not shown.

View File

@ -21,7 +21,7 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "client_pty.h"
#include "client.h"
#include "channel_commands.h"
#include "format.h"

Binary file not shown.

View File

@ -1,35 +0,0 @@
/* client_pty.h
*
* $Id$ */
/* lsh, an implementation of the ssh protocol
*
* Copyright (C) 1998, 1999, Niels Möller, Balázs Scheidler
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef LSH_CLIENT_PTY_H_INCLUDED
#define LSH_CLIENT_PTY_H_INCLUDED
#include "lsh.h"
#include "command.h"
struct interact;
struct command *make_pty_request(struct interact *tty);
#endif /* LSH_CLIENT_PTY_H_INCLUDED */

View File

@ -22,7 +22,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "client_session.h"
#include "client.h"
#include "channel_commands.h"
#include "client.h"

Binary file not shown.

View File

@ -1,36 +0,0 @@
/* client_session.h
*
* $Id$
*/
/* lsh, an implementation of the ssh protocol
*
* Copyright (C) 2000 Niels Möller
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef CLIENT_SESSION_H_INCLUDED
#define CLIENT_SESSION_H_INCLUDED
#include "lsh.h"
struct ssh_channel *make_client_session(struct lsh_fd *in,
struct lsh_fd *out,
struct lsh_fd *err,
UINT32 initial_window,
int *exit_status);
#endif /* CLIENT_SESSION_H_INCLUDED */

Binary file not shown.

View File

@ -227,7 +227,7 @@ struct command *make_command_Sp_3(struct command *c,
return &res->super.super;
}
struct lsh_object *collect_Sp_3(struct collect_info_3 *info,
struct lsh_object *collect_Sp_3(struct collect_info_3 *info UNUSED,
struct lsh_object *c,
struct lsh_object *f,
struct lsh_object *g)
@ -235,7 +235,6 @@ struct lsh_object *collect_Sp_3(struct collect_info_3 *info,
CAST_SUBTYPE(command, cc, c);
CAST_SUBTYPE(command, cf, f);
CAST_SUBTYPE(command, cg, g);
assert(!info->next);
return &make_command_Sp_3(cc, cf, cg)->super;
}
@ -366,7 +365,7 @@ make_command_Bp_3(struct command *c,
return &res->super.super;
}
struct lsh_object *collect_Bp_3(struct collect_info_3 *info,
struct lsh_object *collect_Bp_3(struct collect_info_3 *info UNUSED,
struct lsh_object *c,
struct lsh_object *f,
struct lsh_object *g)
@ -374,7 +373,6 @@ struct lsh_object *collect_Bp_3(struct collect_info_3 *info,
CAST_SUBTYPE(command, cc, c);
CAST_SUBTYPE(command, cf, f);
CAST_SUBTYPE(command, cg, g);
assert(!info->next);
return &make_command_Bp_3(cc, cf, cg)->super;
}
@ -538,14 +536,13 @@ make_command_Cp_3(struct command *c,
}
struct lsh_object *
collect_Cp_3(struct collect_info_3 *info,
collect_Cp_3(struct collect_info_3 *info UNUSED,
struct lsh_object *c,
struct lsh_object *f,
struct lsh_object *y)
{
CAST_SUBTYPE(command, cc, c);
CAST_SUBTYPE(command, cf, f);
assert(!info->next);
return &make_command_Cp_3(cc, cf, y)->super;
}

Binary file not shown.

View File

@ -294,32 +294,6 @@ make_collect_state_2(struct collect_info_2 *info,
return &self->super.super.super;
}
static struct lsh_object *
do_collect_4(struct command_simple *s,
struct lsh_object *x)
{
CAST(collect_state_3, self, s);
return self->info->f(self->info, self->a, self->b, self->c, x);
}
struct lsh_object *
make_collect_state_3(struct collect_info_3 *info,
struct lsh_object *a,
struct lsh_object *b,
struct lsh_object *c)
{
NEW(collect_state_3, self);
self->info = info->next;
self->a = a;
self->b = b;
self->c = c;
self->super.call_simple = do_collect_4;
self->super.super.call = do_call_simple_command;
return &self->super.super.super;
}
/* GABA:
(class
(name parallell_progn)
@ -368,91 +342,6 @@ DEFINE_COMMAND_SIMPLE(progn_command, a)
: &command_I.super.super;
}
/* A continuation that passes on its value only the first time it is
* invoked. */
/* GABA:
(class
(name once_continuation)
(super command_continuation)
(vars
(invoked . int)
(msg . "const char *")
(up object command_continuation)))
*/
static void
do_once_continuation(struct command_continuation *s,
struct lsh_object *value)
{
CAST(once_continuation, self, s);
if (!self->invoked)
{
self->invoked = 1;
COMMAND_RETURN(self->up, value);
}
else if (self->msg)
debug("%z", self->msg);
}
struct command_continuation *
make_once_continuation(const char *msg,
struct command_continuation *up)
{
NEW(once_continuation, self);
self->super.c = do_once_continuation;
self->invoked = 0;
self->msg = msg;
self->up = up;
return &self->super;
}
/* Delayed application */
struct delayed_apply *
make_delayed_apply(struct command *f,
struct lsh_object *a)
{
NEW(delayed_apply, self);
self->f = f;
self->a = a;
return self;
}
/* GABA:
(class
(name delay_continuation)
(super command_continuation)
(vars
(f object command)
(up object command_continuation)))
*/
static void
do_delay_continuation(struct command_continuation *c,
struct lsh_object *o)
{
CAST(delay_continuation, self, c);
COMMAND_RETURN(self->up, make_delayed_apply(self->f, o));
}
struct command_continuation *
make_delay_continuation(struct command *f,
struct command_continuation *c)
{
NEW(delay_continuation, self);
self->super.c = do_delay_continuation;
self->up = c;
self->f = f;
return &self->super;
}
/* Catch command
*
* (catch handler body x)
@ -662,15 +551,3 @@ do_catch_report_collect(struct command_simple *s,
return &make_catch_report_apply(self->info, body)->super;
}
#if 0
static struct command *
make_catch_report_collect_body(struct catch_handler_info *info)
{
NEW(catch_report_collect_body, self);
self->super.super.call = do_call_simple_command;
self->super.call_simple = do_catch_report_collect_body;
self->info = info;
return &self->super.super;
}
#endif

Binary file not shown.

View File

@ -203,19 +203,10 @@ do_catch_report_collect(struct command_simple *s,
/* Commands that need to collect some arguments before actually doing
* anything. */
/* The collect_info_n classes keeps track about what to do whith the
/* The collect_info_n classes keeps track about what to do with the
* next argument. As long as we collect arguments without doing
* anything, the f field in collect_info_n will point to the
* constructor make_collect_state_n. */
/* GABA:
(class
(name collect_info_4)
(vars
; No next field
(f method "struct lsh_object *"
"struct lsh_object *" "struct lsh_object *"
"struct lsh_object *" "struct lsh_object *")))
*/
/* GABA:
(class
@ -223,8 +214,7 @@ do_catch_report_collect(struct command_simple *s,
(vars
(f method "struct lsh_object *"
"struct lsh_object *" "struct lsh_object *"
"struct lsh_object *")
(next object collect_info_4)))
"struct lsh_object *")))
*/
/* GABA:
@ -258,33 +248,18 @@ make_collect_state_2(struct collect_info_2 *info,
struct lsh_object *a,
struct lsh_object *b);
struct lsh_object *
make_collect_state_3(struct collect_info_3 *info,
struct lsh_object *a,
struct lsh_object *b,
struct lsh_object *c);
#define STATIC_COLLECT_1(next) \
{ { { STATIC_HEADER, do_call_simple_command }, do_collect_1}, \
make_collect_state_1, next }
#if 0
#define STATIC_COLLECT_1_FINAL(f) \
{ { { STATIC_HEADER, do_call_simple_command }, do_collect_1}, \
f, NULL }
#endif
#define STATIC_COLLECT_2(next) \
{ STATIC_HEADER, make_collect_state_2, next }
#define STATIC_COLLECT_2_FINAL(f) \
{ STATIC_HEADER, f, NULL }
#define STATIC_COLLECT_3(next) \
{ STATIC_HEADER, make_collect_state_3, next }
#define STATIC_COLLECT_3_FINAL(f) \
{ STATIC_HEADER, f, NULL }
{ STATIC_HEADER, f }
extern struct command_simple command_unimplemented;
#define COMMAND_UNIMPLEMENTED (&command_unimplemented.super.super)
@ -301,34 +276,6 @@ struct lsh_object *collect_trace(const char *name, struct lsh_object *real);
#define MAKE_TRACE(name, real) (real)
#endif /* !DEBUG_TRACE */
struct command_continuation *
make_once_continuation(const char *msg,
struct command_continuation *up);
/* Delayed application. This is just a convenient way to record how to
* apply a function, at some later time. Currently used only by
* server_userauth.c. */
/* GABA:
(class
(name delayed_apply)
(super command_context)
(vars
(f object command)
(a object lsh_object)))
*/
struct delayed_apply *
make_delayed_apply(struct command *f,
struct lsh_object *a);
#define FORCE_APPLY(d, c, e) COMMAND_CALL((d)->f, (d)->a, (c), (e))
struct command_continuation *
make_delay_continuation(struct command *f,
struct command_continuation *c);
/* Useful clobal commands */
#define PROG1 (&command_K.super.super)
#define PROGN (&progn_command.super.super)

Binary file not shown.

Binary file not shown.

View File

@ -222,7 +222,7 @@ do_exc_connection_handler(struct exception_handler *s,
* the peer sends us more data.
*
* So any code that raises EXC_PAUSE_START_CONNECTION should
* also call connection_handle_pending() at a safe place. We
* also call connection_handle_pending at a safe place. We
* can't call it here, as we may be in the middle of the
* handling of a packet. Installing a callout would be best. */

Binary file not shown.

View File

@ -173,9 +173,6 @@ do_##NAME(struct packet_handler *s UNUSED, \
(kexinits array (object kexinit) 2)
(literal_kexinits array (string) 2)
; Negotiated algorithms
; (newkeys object newkeys_info)
; Table of all known message types
(dispatch array (object packet_handler) "0x100");
@ -196,13 +193,6 @@ make_ssh_connection(UINT32 flags,
struct command_continuation *c,
struct exception_handler *e);
#if 0
struct exception_handler *
make_exc_protocol_handler(struct ssh_connection *connection,
struct exception_handler *parent,
const char *context);
#endif
void connection_init_io(struct ssh_connection *connection,
struct abstract_write *raw,
struct randomness *r);

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -131,9 +131,3 @@ decode_base64(UINT32 length, const UINT8 *in)
out->length = j;
return out;
}
struct lsh_string *
simple_decode_base64(const unsigned char *in)
{
return decode_base64(strlen(in), in);
}

View File

@ -64,7 +64,9 @@ decode_base64(UINT32 length, const UINT8 *in);
struct lsh_string *
simple_decode_hex(const unsigned char *in);
#if 0
struct lsh_string *
simple_decode_base64(const unsigned char *in);
#endif
#endif /* LSH_DIGITS_H_INCLUDED */

Binary file not shown.

Binary file not shown.

View File

@ -46,9 +46,6 @@ do_default_handler(struct exception_handler *ignored UNUSED,
struct exception_handler default_exception_handler =
STATIC_EXCEPTION_HANDLER(do_default_handler, NULL);
struct exception dummy_exception =
STATIC_EXCEPTION(EXC_DUMMY, "dummy");
static void
do_ignore_exception_handler(struct exception_handler *self UNUSED,
const struct exception *e UNUSED)

Binary file not shown.

View File

@ -75,10 +75,6 @@ void exception_raise(struct exception_handler *e,
/* Exception types. */
/* Used in places where no real exception is defined yet.
* Never handled. */
#define EXC_DUMMY 0
/* FIXME: This is an inappropriate name, as this exception type is
* used for all events that should result in a disconnect message. */
@ -160,7 +156,6 @@ void exception_raise(struct exception_handler *e,
extern struct exception_handler default_exception_handler;
extern struct exception_handler ignore_exception_handler;
extern struct exception dummy_exception;
/* GABA:
(class

Binary file not shown.

View File

@ -27,8 +27,6 @@
#include "format.h"
#include "io.h"
#include "gateway.c.x"
/* A gateway is a mechanism to delegate some channels to a separate
* process. The main lsh process opens a unix domain socket, and other
* processes can connect and read and write cleartext ssh packets.
@ -95,7 +93,7 @@ make_gateway_address(char *local_user, char *remote_user,
/* Keeps track of one connection to the gateway. */
/* GABA:
/* ;;GABA:
(class
(name gateway)
(vars

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -225,3 +225,11 @@ void gc_maybe(struct lsh_object *root, int busy)
gc(root);
}
}
#if DEBUG_ALLOC
/* Deallocate all objects. */
void gc_final(void)
{
gc_sweep();
}
#endif /* DEBUG_ALLOC */

View File

@ -34,4 +34,10 @@ void gc_kill(struct lsh_object *o);
void gc(struct lsh_object *root);
void gc_maybe(struct lsh_object *root, int busy);
#if DEBUG_ALLOC
void gc_final(void);
#else
#define gc_final()
#endif
#endif /* LSH_GC_H_INCLUDED */

Some files were not shown because too many files have changed in this diff Show More