comparison channel.h @ 1859:1d86a58fb52d

Leave non-interactive at default QoS class Lower class levels are less well defined, and non-interactive SSH can carry various different types of applications. This change also sets lowdelay class (AF21) earlier in an an outbound dbclient session
author Matt Johnston <matt@ucc.asn.au>
date Thu, 27 Jan 2022 14:34:10 +0800
parents 6022df862942
children
comparison
equal deleted inserted replaced
1857:6022df862942 1859:1d86a58fb52d
26 #define DROPBEAR_CHANNEL_H_ 26 #define DROPBEAR_CHANNEL_H_
27 27
28 #include "includes.h" 28 #include "includes.h"
29 #include "buffer.h" 29 #include "buffer.h"
30 #include "circbuffer.h" 30 #include "circbuffer.h"
31 #include "netio.h"
31 32
32 #define SSH_OPEN_ADMINISTRATIVELY_PROHIBITED 1 33 #define SSH_OPEN_ADMINISTRATIVELY_PROHIBITED 1
33 #define SSH_OPEN_CONNECT_FAILED 2 34 #define SSH_OPEN_CONNECT_FAILED 2
34 #define SSH_OPEN_UNKNOWN_CHANNEL_TYPE 3 35 #define SSH_OPEN_UNKNOWN_CHANNEL_TYPE 3
35 #define SSH_OPEN_RESOURCE_SHORTAGE 4 36 #define SSH_OPEN_RESOURCE_SHORTAGE 4
38 #define SSH_OPEN_IN_PROGRESS 99 39 #define SSH_OPEN_IN_PROGRESS 99
39 40
40 #define CHAN_EXTEND_SIZE 3 /* how many extra slots to add when we need more */ 41 #define CHAN_EXTEND_SIZE 3 /* how many extra slots to add when we need more */
41 42
42 struct ChanType; 43 struct ChanType;
43
44 enum dropbear_channel_prio {
45 DROPBEAR_CHANNEL_PRIO_INTERACTIVE, /* pty shell, x11 */
46 DROPBEAR_CHANNEL_PRIO_UNKNOWABLE, /* tcp - can't know what's being forwarded */
47 DROPBEAR_CHANNEL_PRIO_BULK, /* the rest - probably scp, rsync, git, or something */
48 DROPBEAR_CHANNEL_PRIO_EARLY, /* channel is still being set up */
49 };
50 44
51 struct Channel { 45 struct Channel {
52 46
53 unsigned int index; /* the local channel index */ 47 unsigned int index; /* the local channel index */
54 unsigned int remotechan; 48 unsigned int remotechan;
86 /* Used by client chansession to handle ~ escaping, NULL ignored otherwise */ 80 /* Used by client chansession to handle ~ escaping, NULL ignored otherwise */
87 void (*read_mangler)(const struct Channel*, const unsigned char* bytes, int *len); 81 void (*read_mangler)(const struct Channel*, const unsigned char* bytes, int *len);
88 82
89 const struct ChanType* type; 83 const struct ChanType* type;
90 84
91 enum dropbear_channel_prio prio; 85 enum dropbear_prio prio;
92 }; 86 };
93 87
94 struct ChanType { 88 struct ChanType {
95 89
96 const char *name; 90 const char *name;