Skip to content
Snippets Groups Projects
  1. Nov 14, 2024
    • Rob Swindell's avatar
      Document the editor property (field) of the message header object · 37ca25a5
      Rob Swindell authored
      there are still other undocumented fields/properties, but this one for sure
      was missing.
      37ca25a5
    • Deucе's avatar
      New IMAP search parser/generator · e997e293
      Deucе authored
      Previously, the IMAP search tried to do sneaky things to optimize
      execution time, but that ended up with problems when nested ()s
      were used, among other, more subtle issues.  Also, the old search
      wasn't even tested enough so that each term would work.
      
      The new system transpiles the IMAP query to Javascript then runs
      the compiled JS function for each message.  Should be much more
      accurate (though may also be much slower).
      
      Actually fixes the issue reported as #397, and closes #730.
      e997e293
  2. Nov 13, 2024
  3. Nov 12, 2024
  4. Nov 11, 2024
    • Deucе's avatar
      NAMESPACE didn't help with Claws/Sylpheed. · 53d11d54
      Deucе authored
      Change the message.
      53d11d54
    • Deucе's avatar
      Fix handling of short send()s · fbe3b5d7
      Deucе authored
      For some reason, I thought socket.send() did this, but apparently
      not.  Fixes issue transferring large messages.
      
      Also, add support for the useless NAMESPACE command.
      fbe3b5d7
    • Deucе's avatar
      Don't map new-scan config to IMAP subscriptions · d1f89436
      Deucе authored
      The sets of message bases you want to get over different protocols
      may be different.
      
      While we're here, fix an error with single-parameter FETCH parsing
      which prevented Sylpheed from being able to read messages.
      d1f89436
    • Deucе's avatar
      Add comment as to why the body is being replaced. · 2294bf8f
      Deucе authored
      2294bf8f
    • Deucе's avatar
      Update fix in e0e1fc38 · 6ab2d322
      Deucе authored
      Instead of text with completely different meaning, change the "no body"
      text to a single space.
      6ab2d322
    • Deucе's avatar
      Fix deadlock introduced in last commit. · 79a6d872
      Deucе authored
      79a6d872
    • Deucе's avatar
      Hold config lock for whole sequence. · 0827b4a3
      Deucе authored
      Rather than locking for just one message, lock for the entire command
      when potentially updating Seen data.  With this, we can block all
      connections the user has except the currently executing one, and
      not need to read/write the seen data between every message.
      
      While this can take minutes on very large subs, it's certainly
      better than hours as previously.
      
      It's rude to have multiple sockets actively pumelling the server
      anyway.
      0827b4a3
    • Deucе's avatar
      Do some more optimizations around setting the Seen flag. · ebeb5075
      Deucе authored
      This speeds things up a fair bit, and will make things faster after
      an initial scan.  I may expand this method a bit to lock other sockets
      for for either some period of time or some number of messages to
      allow the initial scan to be even faster.
      ebeb5075
    • Deucе's avatar
      Optimize read/save of Seen config · 99df0ed4
      Deucе authored
      Previously, this uses INI format files, with ini file accessors
      to read and save this file.  Now it just dumps a JSON file in and
      slurps it out.
      
      This saves about 0.4s/msg on my system when reading headers.
      99df0ed4
    • Deucе's avatar
      Fix what appears to be a potential security hole (and some other stuff) · 830fb14e
      Deucе authored
      If the INI file could not be opened, a failure would be returned,
      but authentication would (potentially) succeed.  I can't think of
      a way to exploit this, but it's getting late.
      
      Also, make some minor optimizations that won't make a difference yet,
      and move opening the file into a single function.
      830fb14e
    • Rob Swindell's avatar
      Allow 3 digit message base retry timeout · 989524a9
      Rob Swindell authored
      989524a9
    • Rob Swindell's avatar
      Reduce LOOP_NOPEN and LOOP_USERDAT from 500 to 100 · f48e62df
      Rob Swindell authored
      With the incremental backoffs, these were super long waits for locks. Not sure
      about my math there, but at 500, the total timeout was not "about 45 seconds"
      but rather several minutes.
      
      At 100, the total max retry time should be almost exactly 45 seconds:
      
      Retries      ms-per     total seconds
        0 - 9      0          0
       10 - 19     100        1
       20 - 29     200        3
       30 - 39     300        6
       40 - 49     400        10
       50 - 59     500        15
       60 - 69     600        21
       70 - 79     700        28
       80 - 89     800        36
       90 - 99     900        45*
      100 - 109    1000       55
      110 - 119    1100       66
      120 - 129    1200       78
      130 - 139    1300       91
      140 - 149    1400       105
      150 - 159    1500       120
      160 - 169    1600       136
      170 - 179    1700       153
      180 - 189    1800       171
      190 - 200    1900       200!
      
      ... so yeah, 500 was way too big a number.
      f48e62df
    • Rob Swindell's avatar
      Add support for -r (read-only) open before locking · 66abaa6d
      Rob Swindell authored
      And only supports a single file per invocation now.
      66abaa6d
    • Rob Swindell's avatar
      Add -r option for opening the file to lock read-only · 3b794a8c
      Rob Swindell authored
      It makes a difference on *nix.
      3b794a8c
Loading