chiark / gitweb /
wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 1 Apr 2017 19:01:35 +0000 (20:01 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 1 Apr 2017 19:01:35 +0000 (20:01 +0100)
client
server

diff --git a/client b/client
index 270901506c4caec692694c1fc70494033bb6b1aa..7727f2bb0715c19e15ac5dd359f61847134d4fcc 100755 (executable)
--- a/client
+++ b/client
@@ -62,6 +62,7 @@ class ResponseConsumer(twisted.internet.protocol.Protocol):
   def __init__(self, req):
     self._req = req
     self._ssd = SlipStreamDecoder(queue_inbound)
+    self._log(DBG.HTTP_CTRL, '__init__')
 
   def _log(self, dflag, msg, **kwargs):
     log_debug(dflag, 'RC ' + msg, idof=self._req, **kwargs)
@@ -91,14 +92,17 @@ class ResponseConsumer(twisted.internet.protocol.Protocol):
     req_err(self._req, reason)
 
 def req_ok(req, resp):
+  log_http(DBG.HTTP_CTRL, 'req_ok ' % str(resp), idof=req)
   resp.deliverBody(ResponseConsumer(req))
-  req_fin()
+  req_fin(req)
 
 def req_err(req, err):
+  log_http(DBG.HTTP_CTRL, 'req_err ' % str(err), idof=req)
   print(err, file=sys.stderr)
-  reactor.callLater(c.http_retry, req_fin)
+  reactor.callLater(c.http_retry, (lambda: req_fin(req)))
 
-def req_fin(*args):
+def req_fin(req):
+  log_http(DBG.HTTP_CTRL, 'req_fin', idof=req)
   global outstanding
   outstanding -= 1
   check_outbound()
@@ -116,6 +120,8 @@ def check_outbound():
                   moredata,
                   c.max_batch_up)
     
+    d = mime_translate(d)
+
     crlf = b'\r\n'
     lf   =   b'\n'
     mime = (b'--b'                                        + crlf +
@@ -128,7 +134,7 @@ def check_outbound():
             b'--b'                                        + crlf +
             b'Content-Type: application/octet-stream'     + crlf +
             b'Content-Disposition: form-data; name="d"'   + crlf + crlf +
-            mime_translate(d)                             + crlf
+            d                                             + crlf
            ) if len(d) else b'')                               +
             b'--b--'                                      + crlf)
 
@@ -140,16 +146,18 @@ def check_outbound():
     log_debug(DBG.HTTP_FULL, 'requesting: ' + str(mime))
 
     hh = { 'User-Agent': ['hippotat'],
-           'Content-Type': ['multipart/form-data; boundary="b"'],
-           'Content-Length': [str(len(mime))] }
+           'Content-Type': ['multipart/form-data; boundary="b"']
+#           , 'Content-Length': [str(len(mime))]
+    }
 
     bytesreader = io.BytesIO(mime)
     producer = twisted.web.client.FileBodyProducer(bytesreader)
 
     req = agent.request(b'POST',
                         c.url,
-                        twisted.web.client.Headers(hh),
-                        producer)
+                        twisted.web.client.Headers(hh)
+#                        , producer
+    )
 
     log_debug(DBG.HTTP_CTRL, 'request', idof=req, d=d)
     req.addTimeout(c.http_timeout, reactor)
diff --git a/server b/server
index 6a71bfd5b8f1452da80e2ad0c7efcb8de553bd7d..79bd15b84e9fe23d72b8e12a9141238f10fe55f4 100755 (executable)
--- a/server
+++ b/server
@@ -139,7 +139,7 @@ class Client():
 
 def process_request(request, desca):
   # find client, update config, etc.
-  metadata = request.args[b'm'][0]
+  metadata = request.args[b'mX'][0]
   metadata = metadata.split(b'\r\n')
   (ci_s, pw, tro) = metadata[0:3]
   desca['m[0,2]'] = [ci_s, tro]