equal
deleted
inserted
replaced
3 # This software may be used and distributed according to the terms of the |
3 # This software may be used and distributed according to the terms of the |
4 # GNU General Public License version 2 or any later version. |
4 # GNU General Public License version 2 or any later version. |
5 |
5 |
6 from __future__ import absolute_import |
6 from __future__ import absolute_import |
7 |
7 |
|
8 from .node import ( |
|
9 bin, |
|
10 hex, |
|
11 ) |
8 from .thirdparty.zope import ( |
12 from .thirdparty.zope import ( |
9 interface as zi, |
13 interface as zi, |
10 ) |
14 ) |
11 |
15 |
12 # Names of the SSH protocol implementations. |
16 # Names of the SSH protocol implementations. |
100 class cborresponse(object): |
104 class cborresponse(object): |
101 """Encode the response value as CBOR.""" |
105 """Encode the response value as CBOR.""" |
102 def __init__(self, v): |
106 def __init__(self, v): |
103 self.value = v |
107 self.value = v |
104 |
108 |
|
109 # list of nodes encoding / decoding |
|
110 def decodelist(l, sep=' '): |
|
111 if l: |
|
112 return [bin(v) for v in l.split(sep)] |
|
113 return [] |
|
114 |
|
115 def encodelist(l, sep=' '): |
|
116 try: |
|
117 return sep.join(map(hex, l)) |
|
118 except TypeError: |
|
119 raise |
|
120 |
|
121 # batched call argument encoding |
|
122 |
|
123 def escapebatcharg(plain): |
|
124 return (plain |
|
125 .replace(':', ':c') |
|
126 .replace(',', ':o') |
|
127 .replace(';', ':s') |
|
128 .replace('=', ':e')) |
|
129 |
|
130 def unescapebatcharg(escaped): |
|
131 return (escaped |
|
132 .replace(':e', '=') |
|
133 .replace(':s', ';') |
|
134 .replace(':o', ',') |
|
135 .replace(':c', ':')) |
|
136 |
105 class baseprotocolhandler(zi.Interface): |
137 class baseprotocolhandler(zi.Interface): |
106 """Abstract base class for wire protocol handlers. |
138 """Abstract base class for wire protocol handlers. |
107 |
139 |
108 A wire protocol handler serves as an interface between protocol command |
140 A wire protocol handler serves as an interface between protocol command |
109 handlers and the wire protocol transport layer. Protocol handlers provide |
141 handlers and the wire protocol transport layer. Protocol handlers provide |