diff options
| author | Victor Shyba <victor.shyba@gmail.com> | 2015-08-13 15:10:37 -0300 | 
|---|---|---|
| committer | Victor Shyba <victor.shyba@gmail.com> | 2015-08-26 17:20:21 -0300 | 
| commit | 8b95942a2be4a65222b1758f2cb63b9dd86ea69d (patch) | |
| tree | f9fbf7f1402a168119a61bd8385baff47c641d19 | |
| parent | 20966f78951d734f100ed6a6a6feedd15dbe79e7 (diff) | |
[bug] process put after last BadRequest check
If we check for a BadRequest after calling meth_put we will end up on a
scenario where the server replies with an error, but everything got
processed.
| -rw-r--r-- | server/src/leap/soledad/server/__init__.py | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/server/src/leap/soledad/server/__init__.py b/server/src/leap/soledad/server/__init__.py index 7a03f6fb..1b795016 100644 --- a/server/src/leap/soledad/server/__init__.py +++ b/server/src/leap/soledad/server/__init__.py @@ -238,6 +238,7 @@ class HTTPInvocationByMethodWithBody(                  if content_type == 'application/x-soledad-sync-put':                      meth_put = self._lookup('%s_put' % method)                      meth_end = self._lookup('%s_end' % method) +                    entries = []                      while True:                          line = body_getline()                          entry = line.strip() @@ -246,9 +247,11 @@ class HTTPInvocationByMethodWithBody(                          if not entry or not comma:  # empty or no prec comma                              raise http_app.BadRequest                          entry, comma = utils.check_and_strip_comma(entry) -                        meth_put({}, entry) +                        entries.append(entry)                      if comma or body_getline():  # extra comma or data                          raise http_app.BadRequest +                    for entry in entries: +                        meth_put({}, entry)                      return meth_end()                  # handle outgoing documents                  elif content_type == 'application/x-soledad-sync-get': | 
