changeset 37724:deff7cf7eefd

wireprotov2: change frame type and name for command response There was hole at frame type value 3. And the frame is better named as a command response. Differential Revision: https://phab.mercurial-scm.org/D3384
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 14 Apr 2018 14:37:23 -0700
parents e8fba6d578f0
children 3ea8323d6f95
files mercurial/help/internals/wireprotocol.txt mercurial/wireprotoframing.py mercurial/wireprotov2server.py tests/test-http-api-httpv2.t tests/test-http-protocol.t tests/test-wireproto-clientreactor.py tests/test-wireproto-command-branchmap.t tests/test-wireproto-command-capabilities.t tests/test-wireproto-command-heads.t tests/test-wireproto-command-known.t tests/test-wireproto-command-listkeys.t tests/test-wireproto-command-lookup.t tests/test-wireproto-command-pushkey.t tests/test-wireproto-serverreactor.py
diffstat 14 files changed, 93 insertions(+), 92 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/help/internals/wireprotocol.txt	Sat Apr 14 12:11:24 2018 -0700
+++ b/mercurial/help/internals/wireprotocol.txt	Sat Apr 14 14:37:23 2018 -0700
@@ -668,8 +668,8 @@
    server. The command has been fully issued and no new data for this
    command will be sent. The next frame will belong to a new command.
 
-Response Data (``0x04``)
-------------------------
+Command Response Data (``0x03``)
+--------------------------------
 
 This frame contains response data to an issued command.
 
--- a/mercurial/wireprotoframing.py	Sat Apr 14 12:11:24 2018 -0700
+++ b/mercurial/wireprotoframing.py	Sat Apr 14 14:37:23 2018 -0700
@@ -43,7 +43,7 @@
 
 FRAME_TYPE_COMMAND_REQUEST = 0x01
 FRAME_TYPE_COMMAND_DATA = 0x02
-FRAME_TYPE_BYTES_RESPONSE = 0x04
+FRAME_TYPE_COMMAND_RESPONSE = 0x03
 FRAME_TYPE_ERROR_RESPONSE = 0x05
 FRAME_TYPE_TEXT_OUTPUT = 0x06
 FRAME_TYPE_PROGRESS = 0x07
@@ -52,7 +52,7 @@
 FRAME_TYPES = {
     b'command-request': FRAME_TYPE_COMMAND_REQUEST,
     b'command-data': FRAME_TYPE_COMMAND_DATA,
-    b'bytes-response': FRAME_TYPE_BYTES_RESPONSE,
+    b'command-response': FRAME_TYPE_COMMAND_RESPONSE,
     b'error-response': FRAME_TYPE_ERROR_RESPONSE,
     b'text-output': FRAME_TYPE_TEXT_OUTPUT,
     b'progress': FRAME_TYPE_PROGRESS,
@@ -79,12 +79,12 @@
     b'eos': FLAG_COMMAND_DATA_EOS,
 }
 
-FLAG_BYTES_RESPONSE_CONTINUATION = 0x01
-FLAG_BYTES_RESPONSE_EOS = 0x02
+FLAG_COMMAND_RESPONSE_CONTINUATION = 0x01
+FLAG_COMMAND_RESPONSE_EOS = 0x02
 
-FLAGS_BYTES_RESPONSE = {
-    b'continuation': FLAG_BYTES_RESPONSE_CONTINUATION,
-    b'eos': FLAG_BYTES_RESPONSE_EOS,
+FLAGS_COMMAND_RESPONSE = {
+    b'continuation': FLAG_COMMAND_RESPONSE_CONTINUATION,
+    b'eos': FLAG_COMMAND_RESPONSE_EOS,
 }
 
 FLAG_ERROR_RESPONSE_PROTOCOL = 0x01
@@ -99,7 +99,7 @@
 FRAME_TYPE_FLAGS = {
     FRAME_TYPE_COMMAND_REQUEST: FLAGS_COMMAND_REQUEST,
     FRAME_TYPE_COMMAND_DATA: FLAGS_COMMAND_DATA,
-    FRAME_TYPE_BYTES_RESPONSE: FLAGS_BYTES_RESPONSE,
+    FRAME_TYPE_COMMAND_RESPONSE: FLAGS_COMMAND_RESPONSE,
     FRAME_TYPE_ERROR_RESPONSE: FLAGS_ERROR_RESPONSE,
     FRAME_TYPE_TEXT_OUTPUT: {},
     FRAME_TYPE_PROGRESS: {},
@@ -348,8 +348,8 @@
             if done:
                 break
 
-def createbytesresponseframesfrombytes(stream, requestid, data,
-                                       maxframesize=DEFAULT_MAX_FRAME_SIZE):
+def createcommandresponseframesfrombytes(stream, requestid, data,
+                                         maxframesize=DEFAULT_MAX_FRAME_SIZE):
     """Create a raw frame to send a bytes response from static bytes input.
 
     Returns a generator of bytearrays.
@@ -357,9 +357,9 @@
 
     # Simple case of a single frame.
     if len(data) <= maxframesize:
-        flags = FLAG_BYTES_RESPONSE_EOS
+        flags = FLAG_COMMAND_RESPONSE_EOS
         yield stream.makeframe(requestid=requestid,
-                               typeid=FRAME_TYPE_BYTES_RESPONSE,
+                               typeid=FRAME_TYPE_COMMAND_RESPONSE,
                                flags=flags,
                                payload=data)
         return
@@ -371,12 +371,12 @@
         done = offset == len(data)
 
         if done:
-            flags = FLAG_BYTES_RESPONSE_EOS
+            flags = FLAG_COMMAND_RESPONSE_EOS
         else:
-            flags = FLAG_BYTES_RESPONSE_CONTINUATION
+            flags = FLAG_COMMAND_RESPONSE_CONTINUATION
 
         yield stream.makeframe(requestid=requestid,
-                               typeid=FRAME_TYPE_BYTES_RESPONSE,
+                               typeid=FRAME_TYPE_COMMAND_RESPONSE,
                                flags=flags,
                                payload=chunk)
 
@@ -608,7 +608,7 @@
 
         return meth(frame)
 
-    def onbytesresponseready(self, stream, requestid, data):
+    def oncommandresponseready(self, stream, requestid, data):
         """Signal that a bytes response is ready to be sent to the client.
 
         The raw bytes response is passed as an argument.
@@ -616,8 +616,8 @@
         ensureserverstream(stream)
 
         def sendframes():
-            for frame in createbytesresponseframesfrombytes(stream, requestid,
-                                                            data):
+            for frame in createcommandresponseframesfrombytes(stream, requestid,
+                                                              data):
                 yield frame
 
             self._activecommands.remove(requestid)
@@ -1039,7 +1039,7 @@
         request.state = 'receiving'
 
         handlers = {
-            FRAME_TYPE_BYTES_RESPONSE: self._onbytesresponseframe,
+            FRAME_TYPE_COMMAND_RESPONSE: self._oncommandresponseframe,
         }
 
         meth = handlers.get(frame.typeid)
@@ -1049,14 +1049,14 @@
 
         return meth(request, frame)
 
-    def _onbytesresponseframe(self, request, frame):
-        if frame.flags & FLAG_BYTES_RESPONSE_EOS:
+    def _oncommandresponseframe(self, request, frame):
+        if frame.flags & FLAG_COMMAND_RESPONSE_EOS:
             request.state = 'received'
             del self._activerequests[request.requestid]
 
         return 'responsedata', {
             'request': request,
-            'expectmore': frame.flags & FLAG_BYTES_RESPONSE_CONTINUATION,
-            'eos': frame.flags & FLAG_BYTES_RESPONSE_EOS,
+            'expectmore': frame.flags & FLAG_COMMAND_RESPONSE_CONTINUATION,
+            'eos': frame.flags & FLAG_COMMAND_RESPONSE_EOS,
             'data': frame.payload,
         }
--- a/mercurial/wireprotov2server.py	Sat Apr 14 12:11:24 2018 -0700
+++ b/mercurial/wireprotov2server.py	Sat Apr 14 14:37:23 2018 -0700
@@ -302,14 +302,14 @@
     res.headers[b'Content-Type'] = FRAMINGTYPE
 
     if isinstance(rsp, wireprototypes.bytesresponse):
-        action, meta = reactor.onbytesresponseready(outstream,
-                                                    command['requestid'],
-                                                    rsp.data)
+        action, meta = reactor.oncommandresponseready(outstream,
+                                                     command['requestid'],
+                                                     rsp.data)
     elif isinstance(rsp, wireprototypes.cborresponse):
         encoded = cbor.dumps(rsp.value, canonical=True)
-        action, meta = reactor.onbytesresponseready(outstream,
-                                                    command['requestid'],
-                                                    encoded)
+        action, meta = reactor.oncommandresponseready(outstream,
+                                                      command['requestid'],
+                                                      encoded)
     else:
         action, meta = reactor.onapplicationerror(
             _('unhandled response type from wire proto command'))
--- a/tests/test-http-api-httpv2.t	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-http-api-httpv2.t	Sat Apr 14 14:37:23 2018 -0700
@@ -175,7 +175,7 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     27\r\n
-  s>     \x1f\x00\x00\x01\x00\x02\x01BX\x1dcustomreadonly bytes response
+  s>     \x1f\x00\x00\x01\x00\x02\x012X\x1dcustomreadonly bytes response
   s>     \r\n
   s>     0\r\n
   s>     \r\n
@@ -202,10 +202,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     27\r\n
-  s>     \x1f\x00\x00\x01\x00\x02\x01B
+  s>     \x1f\x00\x00\x01\x00\x02\x012
   s>     X\x1dcustomreadonly bytes response
   s>     \r\n
-  received frame(size=31; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=31; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: [b'customreadonly bytes response']
@@ -316,7 +316,7 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     27\r\n
-  s>     \x1f\x00\x00\x01\x00\x02\x01BX\x1dcustomreadonly bytes response
+  s>     \x1f\x00\x00\x01\x00\x02\x012X\x1dcustomreadonly bytes response
   s>     \r\n
   s>     0\r\n
   s>     \r\n
@@ -439,7 +439,7 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     27\r\n
-  s>     \x1f\x00\x00\x01\x00\x02\x01BX\x1dcustomreadonly bytes response
+  s>     \x1f\x00\x00\x01\x00\x02\x012X\x1dcustomreadonly bytes response
   s>     \r\n
   s>     0\r\n
   s>     \r\n
@@ -472,10 +472,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     27\r\n
-  s>     \x1f\x00\x00\x01\x00\x02\x01BX\x1dcustomreadonly bytes response
+  s>     \x1f\x00\x00\x01\x00\x02\x012X\x1dcustomreadonly bytes response
   s>     \r\n
   s>     27\r\n
-  s>     \x1f\x00\x00\x03\x00\x02\x00BX\x1dcustomreadonly bytes response
+  s>     \x1f\x00\x00\x03\x00\x02\x002X\x1dcustomreadonly bytes response
   s>     \r\n
   s>     0\r\n
   s>     \r\n
@@ -510,10 +510,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     28\r\n
-  s>      \x00\x00\x03\x00\x02\x01B\xa3Fphases@Ibookmarks@Jnamespaces@
+  s>      \x00\x00\x03\x00\x02\x012\xa3Fphases@Ibookmarks@Jnamespaces@
   s>     \r\n
   s>     9\r\n
-  s>     \x01\x00\x00\x01\x00\x02\x00B\xa0
+  s>     \x01\x00\x00\x01\x00\x02\x002\xa0
   s>     \r\n
   s>     0\r\n
   s>     \r\n
--- a/tests/test-http-protocol.t	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-http-protocol.t	Sat Apr 14 14:37:23 2018 -0700
@@ -324,10 +324,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     1e\r\n
-  s>     \x16\x00\x00\x01\x00\x02\x01B
+  s>     \x16\x00\x00\x01\x00\x02\x012
   s>     \x81T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
   s>     \r\n
-  received frame(size=22; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=22; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: [b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00']
--- a/tests/test-wireproto-clientreactor.py	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-wireproto-clientreactor.py	Sat Apr 14 14:37:23 2018 -0700
@@ -130,12 +130,13 @@
 
         action, meta = sendframe(
             reactor,
-            ffs(b'%d 0 stream-begin 4 0 foo' % request.requestid))
+            ffs(b'%d 0 stream-begin command-response 0 foo' %
+                request.requestid))
         self.assertEqual(action, b'responsedata')
 
         action, meta = sendframe(
             reactor,
-            ffs(b'%d 0 0 4 eos bar' % request.requestid))
+            ffs(b'%d 0 0 command-response eos bar' % request.requestid))
         self.assertEqual(action, b'responsedata')
 
 if __name__ == '__main__':
--- a/tests/test-wireproto-command-branchmap.t	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-wireproto-command-branchmap.t	Sat Apr 14 14:37:23 2018 -0700
@@ -60,11 +60,11 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     78\r\n
-  s>     p\x00\x00\x01\x00\x02\x01B
+  s>     p\x00\x00\x01\x00\x02\x012
   s>     \xa3Gbranch1\x81T\xb5\xfa\xac\xdf\xd2c7h\xcb1R3l\xc0\x953\x81&f\x88Gbranch2\x81T"Aa\xc7X\x9a\xa4\x8f\xa8:H\xfe\xff^\x95\xb5j\xe3\'\xfcGdefault\x82T&\x80Z\xba\x1e`\n
   s>     \x82\xe96a\x14\x9f#\x13\x86j"\x1a{T\xbe\x0e\xf7<\x17\xad\xe3\xfc\x89\xdcAp\x1e\xb9\xfc:\x91\xb5\x82\x82
   s>     \r\n
-  received frame(size=112; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=112; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: {b'branch1': [b'\xb5\xfa\xac\xdf\xd2c7h\xcb1R3l\xc0\x953\x81&f\x88'], b'branch2': [b'"Aa\xc7X\x9a\xa4\x8f\xa8:H\xfe\xff^\x95\xb5j\xe3\'\xfc'], b'default': [b'&\x80Z\xba\x1e`\n\x82\xe96a\x14\x9f#\x13\x86j"\x1a{', b'\xbe\x0e\xf7<\x17\xad\xe3\xfc\x89\xdcAp\x1e\xb9\xfc:\x91\xb5\x82\x82']}
--- a/tests/test-wireproto-command-capabilities.t	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-wireproto-command-capabilities.t	Sat Apr 14 14:37:23 2018 -0700
@@ -236,10 +236,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     1d7\r\n
-  s>     \xcf\x01\x00\x01\x00\x02\x01B
+  s>     \xcf\x01\x00\x01\x00\x02\x012
   s>     \xa4Hcommands\xa7Eheads\xa2Dargs\xa1Jpubliconly\xf4Kpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\x81HdeadbeefKpermissions\x81DpullFlookup\xa2Dargs\xa1CkeyCfooKpermissions\x81DpullGpushkey\xa2Dargs\xa4CkeyCkeyCnewCnewColdColdInamespaceBnsKpermissions\x81DpushHlistkeys\xa2Dargs\xa1InamespaceBnsKpermissions\x81DpullIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullKcompression\x82\xa1DnameDzstd\xa1DnameDzlibNrawrepoformats\x82LgeneraldeltaHrevlogv1Qframingmediatypes\x81X&application/mercurial-exp-framing-0004
   s>     \r\n
-  received frame(size=463; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=463; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: [{b'commands': {b'branchmap': {b'args': {}, b'permissions': [b'pull']}, b'capabilities': {b'args': {}, b'permissions': [b'pull']}, b'heads': {b'args': {b'publiconly': False}, b'permissions': [b'pull']}, b'known': {b'args': {b'nodes': [b'deadbeef']}, b'permissions': [b'pull']}, b'listkeys': {b'args': {b'namespace': b'ns'}, b'permissions': [b'pull']}, b'lookup': {b'args': {b'key': b'foo'}, b'permissions': [b'pull']}, b'pushkey': {b'args': {b'key': b'key', b'namespace': b'ns', b'new': b'new', b'old': b'old'}, b'permissions': [b'push']}}, b'compression': [{b'name': b'zstd'}, {b'name': b'zlib'}], b'framingmediatypes': [b'application/mercurial-exp-framing-0004'], b'rawrepoformats': [b'generaldelta', b'revlogv1']}]
--- a/tests/test-wireproto-command-heads.t	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-wireproto-command-heads.t	Sat Apr 14 14:37:23 2018 -0700
@@ -52,10 +52,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     48\r\n
-  s>     @\x00\x00\x01\x00\x02\x01B
+  s>     @\x00\x00\x01\x00\x02\x012
   s>     \x83T\x1dok\x91\xd4J\xab\xa6\xd5\xe5\x80\xbc0\xa9\x94\x850\xdb\xe0\x0bT\xaeI.6\xb0\xc83\x9f\xfa\xf3(\xd0\x0b\x85\xb4R]\xe1\x16^T)Dm-\xc5A\x9c_\x97Dz\x8b\xc0b\xe4\xcc2\x8b\xf2A
   s>     \r\n
-  received frame(size=64; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=64; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: [b'\x1dok\x91\xd4J\xab\xa6\xd5\xe5\x80\xbc0\xa9\x94\x850\xdb\xe0\x0b', b'\xaeI.6\xb0\xc83\x9f\xfa\xf3(\xd0\x0b\x85\xb4R]\xe1\x16^', b')Dm-\xc5A\x9c_\x97Dz\x8b\xc0b\xe4\xcc2\x8b\xf2A']
@@ -85,10 +85,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     1e\r\n
-  s>     \x16\x00\x00\x01\x00\x02\x01B
+  s>     \x16\x00\x00\x01\x00\x02\x012
   s>     \x81Tx\xd2\xdc\xa46\xb2\xf5\xb1\x88\xac&~)\xb8\x1e\x07&m8\xfc
   s>     \r\n
-  received frame(size=22; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=22; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: [b'x\xd2\xdc\xa46\xb2\xf5\xb1\x88\xac&~)\xb8\x1e\x07&m8\xfc']
--- a/tests/test-wireproto-command-known.t	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-wireproto-command-known.t	Sat Apr 14 14:37:23 2018 -0700
@@ -44,10 +44,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     9\r\n
-  s>     \x01\x00\x00\x01\x00\x02\x01B
+  s>     \x01\x00\x00\x01\x00\x02\x012
   s>     @
   s>     \r\n
-  received frame(size=1; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=1; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: []
@@ -77,10 +77,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     a\r\n
-  s>     \x02\x00\x00\x01\x00\x02\x01B
+  s>     \x02\x00\x00\x01\x00\x02\x012
   s>     A1
   s>     \r\n
-  received frame(size=2; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=2; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: [True]
@@ -110,10 +110,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     c\r\n
-  s>     \x04\x00\x00\x01\x00\x02\x01B
+  s>     \x04\x00\x00\x01\x00\x02\x012
   s>     C101
   s>     \r\n
-  received frame(size=4; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=4; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: [True, False, True]
--- a/tests/test-wireproto-command-listkeys.t	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-wireproto-command-listkeys.t	Sat Apr 14 14:37:23 2018 -0700
@@ -48,10 +48,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     28\r\n
-  s>      \x00\x00\x01\x00\x02\x01B
+  s>      \x00\x00\x01\x00\x02\x012
   s>     \xa3Fphases@Ibookmarks@Jnamespaces@
   s>     \r\n
-  received frame(size=32; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=32; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: {b'bookmarks': b'', b'namespaces': b'', b'phases': b''}
@@ -81,10 +81,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     45\r\n
-  s>     =\x00\x00\x01\x00\x02\x01B
+  s>     =\x00\x00\x01\x00\x02\x012
   s>     \xa2JpublishingDTrueX(be0ef73c17ade3fc89dc41701eb9fc3a91b58282A1
   s>     \r\n
-  received frame(size=61; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=61; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: {b'be0ef73c17ade3fc89dc41701eb9fc3a91b58282': b'1', b'publishing': b'True'}
@@ -114,10 +114,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     35\r\n
-  s>     -\x00\x00\x01\x00\x02\x01B
+  s>     -\x00\x00\x01\x00\x02\x012
   s>     \xa1A@X(26805aba1e600a82e93661149f2313866a221a7b
   s>     \r\n
-  received frame(size=45; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=45; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: {b'@': b'26805aba1e600a82e93661149f2313866a221a7b'}
--- a/tests/test-wireproto-command-lookup.t	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-wireproto-command-lookup.t	Sat Apr 14 14:37:23 2018 -0700
@@ -44,10 +44,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     1d\r\n
-  s>     \x15\x00\x00\x01\x00\x02\x01B
+  s>     \x15\x00\x00\x01\x00\x02\x012
   s>     TBk\xad\xa5\xc6u\x98\xcae\x03mW\xd9\xe4\xb6K\x0c\x1c\xe7\xa0
   s>     \r\n
-  received frame(size=21; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=21; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: b'Bk\xad\xa5\xc6u\x98\xcae\x03mW\xd9\xe4\xb6K\x0c\x1c\xe7\xa0'
--- a/tests/test-wireproto-command-pushkey.t	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-wireproto-command-pushkey.t	Sat Apr 14 14:37:23 2018 -0700
@@ -47,10 +47,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     9\r\n
-  s>     \x01\x00\x00\x01\x00\x02\x01B
+  s>     \x01\x00\x00\x01\x00\x02\x012
   s>     \xf5
   s>     \r\n
-  received frame(size=1; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=1; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: True
@@ -78,10 +78,10 @@
   s>     Transfer-Encoding: chunked\r\n
   s>     \r\n
   s>     35\r\n
-  s>     -\x00\x00\x01\x00\x02\x01B
+  s>     -\x00\x00\x01\x00\x02\x012
   s>     \xa1A@X(426bada5c67598ca65036d57d9e4b64b0c1ce7a0
   s>     \r\n
-  received frame(size=45; request=1; stream=2; streamflags=stream-begin; type=bytes-response; flags=eos)
+  received frame(size=45; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=eos)
   s>     0\r\n
   s>     \r\n
   response: {b'@': b'426bada5c67598ca65036d57d9e4b64b0c1ce7a0'}
--- a/tests/test-wireproto-serverreactor.py	Sat Apr 14 12:11:24 2018 -0700
+++ b/tests/test-wireproto-serverreactor.py	Sat Apr 14 14:37:23 2018 -0700
@@ -211,19 +211,19 @@
         results.append(self._sendsingleframe(
             reactor, ffs(b'1 1 stream-begin command-request new '
                          b"cbor:{b'name': b'command'}")))
-        result = reactor.onbytesresponseready(outstream, 1, b'response1')
+        result = reactor.oncommandresponseready(outstream, 1, b'response1')
         self.assertaction(result, b'sendframes')
         list(result[1][b'framegen'])
         results.append(self._sendsingleframe(
             reactor, ffs(b'1 1 stream-begin command-request new '
                          b"cbor:{b'name': b'command'}")))
-        result = reactor.onbytesresponseready(outstream, 1, b'response2')
+        result = reactor.oncommandresponseready(outstream, 1, b'response2')
         self.assertaction(result, b'sendframes')
         list(result[1][b'framegen'])
         results.append(self._sendsingleframe(
             reactor, ffs(b'1 1 stream-begin command-request new '
                          b"cbor:{b'name': b'command'}")))
-        result = reactor.onbytesresponseready(outstream, 1, b'response3')
+        result = reactor.oncommandresponseready(outstream, 1, b'response3')
         self.assertaction(result, b'sendframes')
         list(result[1][b'framegen'])
 
@@ -347,10 +347,10 @@
         list(sendcommandframes(reactor, instream, 1, b'mycommand', {}))
 
         outstream = reactor.makeoutputstream()
-        result = reactor.onbytesresponseready(outstream, 1, b'response')
+        result = reactor.oncommandresponseready(outstream, 1, b'response')
         self.assertaction(result, b'sendframes')
         self.assertframesequal(result[1][b'framegen'], [
-            b'1 2 stream-begin bytes-response eos response',
+            b'1 2 stream-begin command-response eos response',
         ])
 
     def testmultiframeresponse(self):
@@ -363,11 +363,11 @@
         list(sendcommandframes(reactor, instream, 1, b'mycommand', {}))
 
         outstream = reactor.makeoutputstream()
-        result = reactor.onbytesresponseready(outstream, 1, first + second)
+        result = reactor.oncommandresponseready(outstream, 1, first + second)
         self.assertaction(result, b'sendframes')
         self.assertframesequal(result[1][b'framegen'], [
-            b'1 2 stream-begin bytes-response continuation %s' % first,
-            b'1 2 0 bytes-response eos %s' % second,
+            b'1 2 stream-begin command-response continuation %s' % first,
+            b'1 2 0 command-response eos %s' % second,
         ])
 
     def testapplicationerror(self):
@@ -392,12 +392,12 @@
         self.assertaction(results[0], b'runcommand')
 
         outstream = reactor.makeoutputstream()
-        result = reactor.onbytesresponseready(outstream, 1, b'response')
+        result = reactor.oncommandresponseready(outstream, 1, b'response')
         self.assertaction(result, b'noop')
         result = reactor.oninputeof()
         self.assertaction(result, b'sendframes')
         self.assertframesequal(result[1][b'framegen'], [
-            b'1 2 stream-begin bytes-response eos response',
+            b'1 2 stream-begin command-response eos response',
         ])
 
     def testmultiplecommanddeferresponse(self):
@@ -407,15 +407,15 @@
         list(sendcommandframes(reactor, instream, 3, b'command2', {}))
 
         outstream = reactor.makeoutputstream()
-        result = reactor.onbytesresponseready(outstream, 1, b'response1')
+        result = reactor.oncommandresponseready(outstream, 1, b'response1')
         self.assertaction(result, b'noop')
-        result = reactor.onbytesresponseready(outstream, 3, b'response2')
+        result = reactor.oncommandresponseready(outstream, 3, b'response2')
         self.assertaction(result, b'noop')
         result = reactor.oninputeof()
         self.assertaction(result, b'sendframes')
         self.assertframesequal(result[1][b'framegen'], [
-            b'1 2 stream-begin bytes-response eos response1',
-            b'3 2 0 bytes-response eos response2'
+            b'1 2 stream-begin command-response eos response1',
+            b'3 2 0 command-response eos response2'
         ])
 
     def testrequestidtracking(self):
@@ -427,16 +427,16 @@
 
         # Register results for commands out of order.
         outstream = reactor.makeoutputstream()
-        reactor.onbytesresponseready(outstream, 3, b'response3')
-        reactor.onbytesresponseready(outstream, 1, b'response1')
-        reactor.onbytesresponseready(outstream, 5, b'response5')
+        reactor.oncommandresponseready(outstream, 3, b'response3')
+        reactor.oncommandresponseready(outstream, 1, b'response1')
+        reactor.oncommandresponseready(outstream, 5, b'response5')
 
         result = reactor.oninputeof()
         self.assertaction(result, b'sendframes')
         self.assertframesequal(result[1][b'framegen'], [
-            b'3 2 stream-begin bytes-response eos response3',
-            b'1 2 0 bytes-response eos response1',
-            b'5 2 0 bytes-response eos response5',
+            b'3 2 stream-begin command-response eos response3',
+            b'1 2 0 command-response eos response1',
+            b'5 2 0 command-response eos response5',
         ])
 
     def testduplicaterequestonactivecommand(self):
@@ -457,7 +457,7 @@
         instream = framing.stream(1)
         list(sendcommandframes(reactor, instream, 1, b'command1', {}))
         outstream = reactor.makeoutputstream()
-        reactor.onbytesresponseready(outstream, 1, b'response')
+        reactor.oncommandresponseready(outstream, 1, b'response')
 
         # We've registered the response but haven't sent it. From the
         # perspective of the reactor, the command is still active.
@@ -474,7 +474,7 @@
         instream = framing.stream(1)
         list(sendcommandframes(reactor, instream, 1, b'command1', {}))
         outstream = reactor.makeoutputstream()
-        res = reactor.onbytesresponseready(outstream, 1, b'response')
+        res = reactor.oncommandresponseready(outstream, 1, b'response')
         list(res[1][b'framegen'])
 
         results = list(sendcommandframes(reactor, instream, 1, b'command1', {}))