tests/test-http-api-httpv2.t
changeset 40176 41263df08109
parent 40138 b5bf3dd6ec5b
child 41380 090a797f2b47
equal deleted inserted replaced
40175:6c42409691ec 40176:41263df08109
    16   $ sendhttpraw << EOF
    16   $ sendhttpraw << EOF
    17   > httprequest GET api/$HTTPV2
    17   > httprequest GET api/$HTTPV2
    18   >     user-agent: test
    18   >     user-agent: test
    19   > EOF
    19   > EOF
    20   using raw connection to peer
    20   using raw connection to peer
    21   s>     GET /api/exp-http-v2-0002 HTTP/1.1\r\n
    21   s>     GET /api/exp-http-v2-0003 HTTP/1.1\r\n
    22   s>     Accept-Encoding: identity\r\n
    22   s>     Accept-Encoding: identity\r\n
    23   s>     user-agent: test\r\n
    23   s>     user-agent: test\r\n
    24   s>     host: $LOCALIP:$HGPORT\r\n (glob)
    24   s>     host: $LOCALIP:$HGPORT\r\n (glob)
    25   s>     \r\n
    25   s>     \r\n
    26   s> makefile('rb', None)
    26   s> makefile('rb', None)
    28   s>     Server: testing stub value\r\n
    28   s>     Server: testing stub value\r\n
    29   s>     Date: $HTTP_DATE$\r\n
    29   s>     Date: $HTTP_DATE$\r\n
    30   s>     Content-Type: text/plain\r\n
    30   s>     Content-Type: text/plain\r\n
    31   s>     Content-Length: 33\r\n
    31   s>     Content-Length: 33\r\n
    32   s>     \r\n
    32   s>     \r\n
    33   s>     API exp-http-v2-0002 not enabled\n
    33   s>     API exp-http-v2-0003 not enabled\n
    34 
    34 
    35 Restart server with support for HTTP v2 API
    35 Restart server with support for HTTP v2 API
    36 
    36 
    37   $ killdaemons.py
    37   $ killdaemons.py
    38   $ enablehttpv2 server
    38   $ enablehttpv2 server
    44   $ sendhttpraw << EOF
    44   $ sendhttpraw << EOF
    45   > httprequest POST api/$HTTPV2/ro/badcommand
    45   > httprequest POST api/$HTTPV2/ro/badcommand
    46   >     user-agent: test
    46   >     user-agent: test
    47   > EOF
    47   > EOF
    48   using raw connection to peer
    48   using raw connection to peer
    49   s>     POST /api/exp-http-v2-0002/ro/badcommand HTTP/1.1\r\n
    49   s>     POST /api/exp-http-v2-0003/ro/badcommand HTTP/1.1\r\n
    50   s>     Accept-Encoding: identity\r\n
    50   s>     Accept-Encoding: identity\r\n
    51   s>     user-agent: test\r\n
    51   s>     user-agent: test\r\n
    52   s>     host: $LOCALIP:$HGPORT\r\n (glob)
    52   s>     host: $LOCALIP:$HGPORT\r\n (glob)
    53   s>     \r\n
    53   s>     \r\n
    54   s> makefile('rb', None)
    54   s> makefile('rb', None)
    65   $ sendhttpraw << EOF
    65   $ sendhttpraw << EOF
    66   > httprequest GET api/$HTTPV2/ro/customreadonly
    66   > httprequest GET api/$HTTPV2/ro/customreadonly
    67   >     user-agent: test
    67   >     user-agent: test
    68   > EOF
    68   > EOF
    69   using raw connection to peer
    69   using raw connection to peer
    70   s>     GET /api/exp-http-v2-0002/ro/customreadonly HTTP/1.1\r\n
    70   s>     GET /api/exp-http-v2-0003/ro/customreadonly HTTP/1.1\r\n
    71   s>     Accept-Encoding: identity\r\n
    71   s>     Accept-Encoding: identity\r\n
    72   s>     user-agent: test\r\n
    72   s>     user-agent: test\r\n
    73   s>     host: $LOCALIP:$HGPORT\r\n (glob)
    73   s>     host: $LOCALIP:$HGPORT\r\n (glob)
    74   s>     \r\n
    74   s>     \r\n
    75   s> makefile('rb', None)
    75   s> makefile('rb', None)
    86   $ sendhttpraw << EOF
    86   $ sendhttpraw << EOF
    87   > httprequest POST api/$HTTPV2/ro/customreadonly
    87   > httprequest POST api/$HTTPV2/ro/customreadonly
    88   >     user-agent: test
    88   >     user-agent: test
    89   > EOF
    89   > EOF
    90   using raw connection to peer
    90   using raw connection to peer
    91   s>     POST /api/exp-http-v2-0002/ro/customreadonly HTTP/1.1\r\n
    91   s>     POST /api/exp-http-v2-0003/ro/customreadonly HTTP/1.1\r\n
    92   s>     Accept-Encoding: identity\r\n
    92   s>     Accept-Encoding: identity\r\n
    93   s>     user-agent: test\r\n
    93   s>     user-agent: test\r\n
    94   s>     host: $LOCALIP:$HGPORT\r\n (glob)
    94   s>     host: $LOCALIP:$HGPORT\r\n (glob)
    95   s>     \r\n
    95   s>     \r\n
    96   s> makefile('rb', None)
    96   s> makefile('rb', None)
   108   > httprequest POST api/$HTTPV2/ro/customreadonly
   108   > httprequest POST api/$HTTPV2/ro/customreadonly
   109   >     accept: invalid
   109   >     accept: invalid
   110   >     user-agent: test
   110   >     user-agent: test
   111   > EOF
   111   > EOF
   112   using raw connection to peer
   112   using raw connection to peer
   113   s>     POST /api/exp-http-v2-0002/ro/customreadonly HTTP/1.1\r\n
   113   s>     POST /api/exp-http-v2-0003/ro/customreadonly HTTP/1.1\r\n
   114   s>     Accept-Encoding: identity\r\n
   114   s>     Accept-Encoding: identity\r\n
   115   s>     accept: invalid\r\n
   115   s>     accept: invalid\r\n
   116   s>     user-agent: test\r\n
   116   s>     user-agent: test\r\n
   117   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   117   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   118   s>     \r\n
   118   s>     \r\n
   132   >     accept: $MEDIATYPE
   132   >     accept: $MEDIATYPE
   133   >     user-agent: test
   133   >     user-agent: test
   134   >     content-type: badmedia
   134   >     content-type: badmedia
   135   > EOF
   135   > EOF
   136   using raw connection to peer
   136   using raw connection to peer
   137   s>     POST /api/exp-http-v2-0002/ro/customreadonly HTTP/1.1\r\n
   137   s>     POST /api/exp-http-v2-0003/ro/customreadonly HTTP/1.1\r\n
   138   s>     Accept-Encoding: identity\r\n
   138   s>     Accept-Encoding: identity\r\n
   139   s>     accept: application/mercurial-exp-framing-0006\r\n
   139   s>     accept: application/mercurial-exp-framing-0006\r\n
   140   s>     content-type: badmedia\r\n
   140   s>     content-type: badmedia\r\n
   141   s>     user-agent: test\r\n
   141   s>     user-agent: test\r\n
   142   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   142   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   158   >     content-type: $MEDIATYPE
   158   >     content-type: $MEDIATYPE
   159   >     user-agent: test
   159   >     user-agent: test
   160   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'customreadonly'}
   160   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'customreadonly'}
   161   > EOF
   161   > EOF
   162   using raw connection to peer
   162   using raw connection to peer
   163   s>     POST /api/exp-http-v2-0002/ro/customreadonly HTTP/1.1\r\n
   163   s>     POST /api/exp-http-v2-0003/ro/customreadonly HTTP/1.1\r\n
   164   s>     Accept-Encoding: identity\r\n
   164   s>     Accept-Encoding: identity\r\n
   165   s>     *\r\n (glob)
   165   s>     *\r\n (glob)
   166   s>     content-type: application/mercurial-exp-framing-0006\r\n
   166   s>     content-type: application/mercurial-exp-framing-0006\r\n
   167   s>     user-agent: test\r\n
   167   s>     user-agent: test\r\n
   168   s>     content-length: 29\r\n
   168   s>     content-length: 29\r\n
   194   $ sendhttpv2peerverbose << EOF
   194   $ sendhttpv2peerverbose << EOF
   195   > command customreadonly
   195   > command customreadonly
   196   > EOF
   196   > EOF
   197   creating http peer for wire protocol version 2
   197   creating http peer for wire protocol version 2
   198   sending customreadonly command
   198   sending customreadonly command
   199   s>     POST /api/exp-http-v2-0002/ro/customreadonly HTTP/1.1\r\n
   199   s>     POST /api/exp-http-v2-0003/ro/customreadonly HTTP/1.1\r\n
   200   s>     Accept-Encoding: identity\r\n
   200   s>     Accept-Encoding: identity\r\n
   201   s>     accept: application/mercurial-exp-framing-0006\r\n
   201   s>     accept: application/mercurial-exp-framing-0006\r\n
   202   s>     content-type: application/mercurial-exp-framing-0006\r\n
   202   s>     content-type: application/mercurial-exp-framing-0006\r\n
   203   s>     content-length: 65\r\n
   203   s>     content-length: 65\r\n
   204   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   204   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   245   $ sendhttpraw << EOF
   245   $ sendhttpraw << EOF
   246   > httprequest GET api/$HTTPV2/rw/customreadonly
   246   > httprequest GET api/$HTTPV2/rw/customreadonly
   247   >     user-agent: test
   247   >     user-agent: test
   248   > EOF
   248   > EOF
   249   using raw connection to peer
   249   using raw connection to peer
   250   s>     GET /api/exp-http-v2-0002/rw/customreadonly HTTP/1.1\r\n
   250   s>     GET /api/exp-http-v2-0003/rw/customreadonly HTTP/1.1\r\n
   251   s>     Accept-Encoding: identity\r\n
   251   s>     Accept-Encoding: identity\r\n
   252   s>     user-agent: test\r\n
   252   s>     user-agent: test\r\n
   253   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   253   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   254   s>     \r\n
   254   s>     \r\n
   255   s> makefile('rb', None)
   255   s> makefile('rb', None)
   266   $ sendhttpraw << EOF
   266   $ sendhttpraw << EOF
   267   > httprequest GET api/$HTTPV2/rw/badcommand
   267   > httprequest GET api/$HTTPV2/rw/badcommand
   268   >     user-agent: test
   268   >     user-agent: test
   269   > EOF
   269   > EOF
   270   using raw connection to peer
   270   using raw connection to peer
   271   s>     GET /api/exp-http-v2-0002/rw/badcommand HTTP/1.1\r\n
   271   s>     GET /api/exp-http-v2-0003/rw/badcommand HTTP/1.1\r\n
   272   s>     Accept-Encoding: identity\r\n
   272   s>     Accept-Encoding: identity\r\n
   273   s>     user-agent: test\r\n
   273   s>     user-agent: test\r\n
   274   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   274   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   275   s>     \r\n
   275   s>     \r\n
   276   s> makefile('rb', None)
   276   s> makefile('rb', None)
   287   $ sendhttpraw << EOF
   287   $ sendhttpraw << EOF
   288   > httprequest POST api/$HTTPV2/rw/customreadonly
   288   > httprequest POST api/$HTTPV2/rw/customreadonly
   289   >     user-agent: test
   289   >     user-agent: test
   290   > EOF
   290   > EOF
   291   using raw connection to peer
   291   using raw connection to peer
   292   s>     POST /api/exp-http-v2-0002/rw/customreadonly HTTP/1.1\r\n
   292   s>     POST /api/exp-http-v2-0003/rw/customreadonly HTTP/1.1\r\n
   293   s>     Accept-Encoding: identity\r\n
   293   s>     Accept-Encoding: identity\r\n
   294   s>     user-agent: test\r\n
   294   s>     user-agent: test\r\n
   295   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   295   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   296   s>     \r\n
   296   s>     \r\n
   297   s> makefile('rb', None)
   297   s> makefile('rb', None)
   325   >     accept: $MEDIATYPE
   325   >     accept: $MEDIATYPE
   326   >     content-type: $MEDIATYPE
   326   >     content-type: $MEDIATYPE
   327   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'customreadonly'}
   327   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'customreadonly'}
   328   > EOF
   328   > EOF
   329   using raw connection to peer
   329   using raw connection to peer
   330   s>     POST /api/exp-http-v2-0002/rw/customreadonly HTTP/1.1\r\n
   330   s>     POST /api/exp-http-v2-0003/rw/customreadonly HTTP/1.1\r\n
   331   s>     Accept-Encoding: identity\r\n
   331   s>     Accept-Encoding: identity\r\n
   332   s>     accept: application/mercurial-exp-framing-0006\r\n
   332   s>     accept: application/mercurial-exp-framing-0006\r\n
   333   s>     content-type: application/mercurial-exp-framing-0006\r\n
   333   s>     content-type: application/mercurial-exp-framing-0006\r\n
   334   s>     user-agent: test\r\n
   334   s>     user-agent: test\r\n
   335   s>     content-length: 29\r\n
   335   s>     content-length: 29\r\n
   364   > httprequest POST api/$HTTPV2/rw/badcommand
   364   > httprequest POST api/$HTTPV2/rw/badcommand
   365   >     user-agent: test
   365   >     user-agent: test
   366   >     accept: $MEDIATYPE
   366   >     accept: $MEDIATYPE
   367   > EOF
   367   > EOF
   368   using raw connection to peer
   368   using raw connection to peer
   369   s>     POST /api/exp-http-v2-0002/rw/badcommand HTTP/1.1\r\n
   369   s>     POST /api/exp-http-v2-0003/rw/badcommand HTTP/1.1\r\n
   370   s>     Accept-Encoding: identity\r\n
   370   s>     Accept-Encoding: identity\r\n
   371   s>     accept: application/mercurial-exp-framing-0006\r\n
   371   s>     accept: application/mercurial-exp-framing-0006\r\n
   372   s>     user-agent: test\r\n
   372   s>     user-agent: test\r\n
   373   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   373   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   374   s>     \r\n
   374   s>     \r\n
   386   $ sendhttpraw << EOF
   386   $ sendhttpraw << EOF
   387   > httprequest POST api/$HTTPV2/ro/debugreflect
   387   > httprequest POST api/$HTTPV2/ro/debugreflect
   388   >     user-agent: test
   388   >     user-agent: test
   389   > EOF
   389   > EOF
   390   using raw connection to peer
   390   using raw connection to peer
   391   s>     POST /api/exp-http-v2-0002/ro/debugreflect HTTP/1.1\r\n
   391   s>     POST /api/exp-http-v2-0003/ro/debugreflect HTTP/1.1\r\n
   392   s>     Accept-Encoding: identity\r\n
   392   s>     Accept-Encoding: identity\r\n
   393   s>     user-agent: test\r\n
   393   s>     user-agent: test\r\n
   394   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   394   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   395   s>     \r\n
   395   s>     \r\n
   396   s> makefile('rb', None)
   396   s> makefile('rb', None)
   426   >     content-type: $MEDIATYPE
   426   >     content-type: $MEDIATYPE
   427   >     user-agent: test
   427   >     user-agent: test
   428   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'command1', b'args': {b'foo': b'val1', b'bar1': b'val'}}
   428   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'command1', b'args': {b'foo': b'val1', b'bar1': b'val'}}
   429   > EOF
   429   > EOF
   430   using raw connection to peer
   430   using raw connection to peer
   431   s>     POST /api/exp-http-v2-0002/ro/debugreflect HTTP/1.1\r\n
   431   s>     POST /api/exp-http-v2-0003/ro/debugreflect HTTP/1.1\r\n
   432   s>     Accept-Encoding: identity\r\n
   432   s>     Accept-Encoding: identity\r\n
   433   s>     accept: application/mercurial-exp-framing-0006\r\n
   433   s>     accept: application/mercurial-exp-framing-0006\r\n
   434   s>     content-type: application/mercurial-exp-framing-0006\r\n
   434   s>     content-type: application/mercurial-exp-framing-0006\r\n
   435   s>     user-agent: test\r\n
   435   s>     user-agent: test\r\n
   436   s>     content-length: 47\r\n
   436   s>     content-length: 47\r\n
   457   >     content-type: $MEDIATYPE
   457   >     content-type: $MEDIATYPE
   458   >     user-agent: test
   458   >     user-agent: test
   459   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'customreadonly'}
   459   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'customreadonly'}
   460   > EOF
   460   > EOF
   461   using raw connection to peer
   461   using raw connection to peer
   462   s>     POST /api/exp-http-v2-0002/ro/customreadonly HTTP/1.1\r\n
   462   s>     POST /api/exp-http-v2-0003/ro/customreadonly HTTP/1.1\r\n
   463   s>     Accept-Encoding: identity\r\n
   463   s>     Accept-Encoding: identity\r\n
   464   s>     accept: application/mercurial-exp-framing-0006\r\n
   464   s>     accept: application/mercurial-exp-framing-0006\r\n
   465   s>     content-type: application/mercurial-exp-framing-0006\r\n
   465   s>     content-type: application/mercurial-exp-framing-0006\r\n
   466   s>     user-agent: test\r\n
   466   s>     user-agent: test\r\n
   467   s>     content-length: 29\r\n
   467   s>     content-length: 29\r\n
   499   >     user-agent: test
   499   >     user-agent: test
   500   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'customreadonly'}
   500   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'customreadonly'}
   501   >     frame 3 1 0 command-request new cbor:{b'name': b'customreadonly'}
   501   >     frame 3 1 0 command-request new cbor:{b'name': b'customreadonly'}
   502   > EOF
   502   > EOF
   503   using raw connection to peer
   503   using raw connection to peer
   504   s>     POST /api/exp-http-v2-0002/ro/multirequest HTTP/1.1\r\n
   504   s>     POST /api/exp-http-v2-0003/ro/multirequest HTTP/1.1\r\n
   505   s>     Accept-Encoding: identity\r\n
   505   s>     Accept-Encoding: identity\r\n
   506   s>     *\r\n (glob)
   506   s>     *\r\n (glob)
   507   s>     *\r\n (glob)
   507   s>     *\r\n (glob)
   508   s>     user-agent: test\r\n
   508   s>     user-agent: test\r\n
   509   s>     content-length: 58\r\n
   509   s>     content-length: 58\r\n
   552   >     frame 3 1 0 command-request new|more \xa2Dargs\xa1Inamespace
   552   >     frame 3 1 0 command-request new|more \xa2Dargs\xa1Inamespace
   553   >     frame 3 1 0 command-request continuation JnamespacesDnameHlistkeys
   553   >     frame 3 1 0 command-request continuation JnamespacesDnameHlistkeys
   554   >     frame 1 1 0 command-request continuation IbookmarksDnameHlistkeys
   554   >     frame 1 1 0 command-request continuation IbookmarksDnameHlistkeys
   555   > EOF
   555   > EOF
   556   using raw connection to peer
   556   using raw connection to peer
   557   s>     POST /api/exp-http-v2-0002/ro/multirequest HTTP/1.1\r\n
   557   s>     POST /api/exp-http-v2-0003/ro/multirequest HTTP/1.1\r\n
   558   s>     Accept-Encoding: identity\r\n
   558   s>     Accept-Encoding: identity\r\n
   559   s>     accept: application/mercurial-exp-framing-0006\r\n
   559   s>     accept: application/mercurial-exp-framing-0006\r\n
   560   s>     content-type: application/mercurial-exp-framing-0006\r\n
   560   s>     content-type: application/mercurial-exp-framing-0006\r\n
   561   s>     user-agent: test\r\n
   561   s>     user-agent: test\r\n
   562   s>     content-length: 115\r\n
   562   s>     content-length: 115\r\n
   617   >     content-type: $MEDIATYPE
   617   >     content-type: $MEDIATYPE
   618   >     user-agent: test
   618   >     user-agent: test
   619   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'pushkey'}
   619   >     frame 1 1 stream-begin command-request new cbor:{b'name': b'pushkey'}
   620   > EOF
   620   > EOF
   621   using raw connection to peer
   621   using raw connection to peer
   622   s>     POST /api/exp-http-v2-0002/ro/multirequest HTTP/1.1\r\n
   622   s>     POST /api/exp-http-v2-0003/ro/multirequest HTTP/1.1\r\n
   623   s>     Accept-Encoding: identity\r\n
   623   s>     Accept-Encoding: identity\r\n
   624   s>     accept: application/mercurial-exp-framing-0006\r\n
   624   s>     accept: application/mercurial-exp-framing-0006\r\n
   625   s>     content-type: application/mercurial-exp-framing-0006\r\n
   625   s>     content-type: application/mercurial-exp-framing-0006\r\n
   626   s>     user-agent: test\r\n
   626   s>     user-agent: test\r\n
   627   s>     content-length: 22\r\n
   627   s>     content-length: 22\r\n
   643   > command heads
   643   > command heads
   644   > EOF
   644   > EOF
   645   creating http peer for wire protocol version 2
   645   creating http peer for wire protocol version 2
   646   sending heads command
   646   sending heads command
   647   wire protocol version 2 encoder referenced in config (badencoder) is not known; ignoring
   647   wire protocol version 2 encoder referenced in config (badencoder) is not known; ignoring
   648   s>     POST /api/exp-http-v2-0002/ro/heads HTTP/1.1\r\n
   648   s>     POST /api/exp-http-v2-0003/ro/heads HTTP/1.1\r\n
   649   s>     Accept-Encoding: identity\r\n
   649   s>     Accept-Encoding: identity\r\n
   650   s>     accept: application/mercurial-exp-framing-0006\r\n
   650   s>     accept: application/mercurial-exp-framing-0006\r\n
   651   s>     content-type: application/mercurial-exp-framing-0006\r\n
   651   s>     content-type: application/mercurial-exp-framing-0006\r\n
   652   s>     content-length: 56\r\n
   652   s>     content-length: 56\r\n
   653   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   653   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   692   $ hg --verbose debugwireproto --nologhandshake --peer http2 http://$LOCALIP:$HGPORT/ << EOF
   692   $ hg --verbose debugwireproto --nologhandshake --peer http2 http://$LOCALIP:$HGPORT/ << EOF
   693   > command heads
   693   > command heads
   694   > EOF
   694   > EOF
   695   creating http peer for wire protocol version 2
   695   creating http peer for wire protocol version 2
   696   sending heads command
   696   sending heads command
   697   s>     POST /api/exp-http-v2-0002/ro/heads HTTP/1.1\r\n
   697   s>     POST /api/exp-http-v2-0003/ro/heads HTTP/1.1\r\n
   698   s>     Accept-Encoding: identity\r\n
   698   s>     Accept-Encoding: identity\r\n
   699   s>     accept: application/mercurial-exp-framing-0006\r\n
   699   s>     accept: application/mercurial-exp-framing-0006\r\n
   700   s>     content-type: application/mercurial-exp-framing-0006\r\n
   700   s>     content-type: application/mercurial-exp-framing-0006\r\n
   701   s>     content-length: 70\r\n
   701   s>     content-length: 70\r\n
   702   s>     host: $LOCALIP:$HGPORT\r\n (glob)
   702   s>     host: $LOCALIP:$HGPORT\r\n (glob)