mercurial/chgserver.py
changeset 30727 18eb63ec8475
parent 30726 dd897eb1699e
child 30737 2957409449ac
--- a/mercurial/chgserver.py	Fri Jan 06 16:11:03 2017 +0000
+++ b/mercurial/chgserver.py	Fri Jan 06 16:12:25 2017 +0000
@@ -312,12 +312,15 @@
         self.out.write(data)
         self.out.flush()
 
-        length = self.in_.read(4)
-        length, = struct.unpack('>I', length)
-        if length != 4:
-            raise error.Abort(_('invalid response'))
-        rc, = struct.unpack('>i', self.in_.read(4))
-        return rc
+        if type == 'system':
+            length = self.in_.read(4)
+            length, = struct.unpack('>I', length)
+            if length != 4:
+                raise error.Abort(_('invalid response'))
+            rc, = struct.unpack('>i', self.in_.read(4))
+            return rc
+        else:
+            raise error.ProgrammingError('invalid S channel type: %s' % type)
 
 _iochannels = [
     # server.ch, ui.fp, mode