1. 26 Jan, 2020 3 commits
  2. 23 Jan, 2020 2 commits
    • aguestuser's avatar
      Merge branch 'ni-fix-bug-in-resending-rate-limited-messages-with-attachments' into 'master' · 52b53cf0
      aguestuser authored
      [hotfix] fix bug causing rate-limit resends with attachments to fail
      See merge request !168
    • aguestuser's avatar
      [ni] fix bug causing rate-limit resends with attachments to fail · c7d450e8
      aguestuser authored
      * SYMPTOM: halting error when attempting to resend a rate-limited
        message that contained attachment. crashes due to deserialization
        error with message: "Cannot deserialize instance of
        `java.lang.String` out of START_OBJECT token"
      * CAUSE: we were failing to transform attachments from their inbound
        format to their outbound format (and yes, it's annoying that signald
        uses a different format for inboud and outbound attachments!)
      * FIX: parse outbound attachments the first time we resend a message
        and alter the hashing algorithm such that it hashes a field that is
        not removed during that parse step (ie: use the filename,not the digest)
  3. 22 Jan, 2020 4 commits
  4. 21 Jan, 2020 4 commits
  5. 19 Jan, 2020 4 commits
    • aguestuser's avatar
      Merge branch '186-fixup-mr-165' into 'master' · 8be46e1f
      aguestuser authored
      [#186] fixup !165
      Closes #186
      See merge request !166
    • aguestuser's avatar
      [186] fixup !165 · 90d02a68
      aguestuser authored
      * MR !165 implemented an exponential backoff resend queue for
        rate-limited messages, but it got the type of signald `attachments` wrong
        (they are objects not strings, and thus, not directly hashable)
      * this fixes that by hashing one of the (unique) fields on each
        `attachment` in an `SdMessage`
    • aguestuser's avatar
      Merge branch '186-queue-and-resend-rate-limited-messages' into 'master' · eca86d24
      aguestuser authored
      [#186] Resolve "queue and resend rate-limited messages"
      Closes #186
      See merge request !165
    • aguestuser's avatar
      [186] enqueue rate-limited messages in top-level dispatch code · b043ca24
      aguestuser authored
      * modify `enqueueResend` to:
        * have "fire-and-forget" semantics, ie: return immediately without waiting for enqueued resend to be attempted
        * return the interval it will wait before attempting enqueued resend
      * modify `dipatcher.run.dispatch` to:
        * hold a reference to a module-local `resendQueue` hash map created in `dispatcher.run.run` (which it will use to track state of resent messages)
        * enqueue resend for rate-limited messages identified by `detectRateLimitedMessage` helper
        * include attempted resend interval in admin notification about rate limit
  6. 18 Jan, 2020 2 commits
    • aguestuser's avatar
      [186] implement exponential backoff resends in `#enqueueResend` · e69e9288
      aguestuser authored
      * keep a queue of resent messages and the interval that was waited
        before sending them
      * every time a message errors, resend it waiting double the last
        interval we waited last time
      * when we resend a message for the first time, we add it to the queue
        and resend at a specified minumum threshold (2 sec)
      * when a message exceeds a threshold (256 sec), don't resend it anymore and
        delete it from the queue
    • aguestuser's avatar
      [186] implement hash function for resend module · 1b6553b3
      aguestuser authored
      * hashes an sd message into a 20-byte hex string using sha1 algo,
        taking the concatenation of the messageBody, username,
        recipientNumber, and attachment filepaths as input to the hash
  7. 17 Jan, 2020 2 commits
  8. 14 Jan, 2020 6 commits
  9. 13 Jan, 2020 6 commits
  10. 11 Jan, 2020 7 commits