Deleted Added
full compact
dispatch.c (69587) dispatch.c (76259)
1/*
2 * Copyright (c) 2000 Markus Friedl. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.

--- 8 unchanged lines hidden (view full) ---

17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */
24#include "includes.h"
1/*
2 * Copyright (c) 2000 Markus Friedl. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.

--- 8 unchanged lines hidden (view full) ---

17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */
24#include "includes.h"
25RCSID("$OpenBSD: dispatch.c,v 1.5 2000/09/21 11:25:34 markus Exp $");
26#include "ssh.h"
25RCSID("$OpenBSD: dispatch.c,v 1.10 2001/02/18 18:33:53 markus Exp $");
26
27#include "ssh1.h"
28#include "ssh2.h"
29#include "log.h"
27#include "dispatch.h"
28#include "packet.h"
30#include "dispatch.h"
31#include "packet.h"
32#include "compat.h"
29
30#define DISPATCH_MIN 0
31#define DISPATCH_MAX 255
32
33dispatch_fn *dispatch[DISPATCH_MAX];
34
35void
36dispatch_protocol_error(int type, int plen, void *ctxt)
37{
38 error("Hm, dispatch protocol error: type %d plen %d", type, plen);
33
34#define DISPATCH_MIN 0
35#define DISPATCH_MAX 255
36
37dispatch_fn *dispatch[DISPATCH_MAX];
38
39void
40dispatch_protocol_error(int type, int plen, void *ctxt)
41{
42 error("Hm, dispatch protocol error: type %d plen %d", type, plen);
43 if (compat20 && type == SSH2_MSG_KEXINIT)
44 fatal("dispatch_protocol_error: rekeying is not supported");
39}
40void
41dispatch_init(dispatch_fn *dflt)
42{
43 int i;
44 for (i = 0; i < DISPATCH_MAX; i++)
45 dispatch[i] = dflt;
46}

--- 14 unchanged lines hidden (view full) ---

61 } else {
62 type = packet_read_poll(&plen);
63 if (type == SSH_MSG_NONE)
64 return;
65 }
66 if (type > 0 && type < DISPATCH_MAX && dispatch[type] != NULL)
67 (*dispatch[type])(type, plen, ctxt);
68 else
45}
46void
47dispatch_init(dispatch_fn *dflt)
48{
49 int i;
50 for (i = 0; i < DISPATCH_MAX; i++)
51 dispatch[i] = dflt;
52}

--- 14 unchanged lines hidden (view full) ---

67 } else {
68 type = packet_read_poll(&plen);
69 if (type == SSH_MSG_NONE)
70 return;
71 }
72 if (type > 0 && type < DISPATCH_MAX && dispatch[type] != NULL)
73 (*dispatch[type])(type, plen, ctxt);
74 else
69 packet_disconnect("protocol error: rcvd type %d", type);
75 packet_disconnect("protocol error: rcvd type %d", type);
70 if (done != NULL && *done)
71 return;
72 }
73}
76 if (done != NULL && *done)
77 return;
78 }
79}