• exec/imapservice.js

    From deuce@1:103/705 to CVS commit on Mon Jan 8 22:43:49 2018
    exec imapservice.js 1.53 1.54
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv18204

    Modified Files:
    imapservice.js
    Log Message:
    Fix a few issues in IMAP handling....

    1) Accept (and ignore) empty lines from remote
    2) Explicitly call the garbage collector to prevent memory hoarding
    3) If we fail to fetch a header, make up a dummy one



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Tue Mar 13 19:25:16 2018
    exec imapservice.js 1.54 1.55
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv27951

    Modified Files:
    imapservice.js
    Log Message:
    Handle an uncommon error a bit better... maybe.



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Wed Mar 14 15:48:27 2018
    exec imapservice.js 1.55 1.56
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv32723

    Modified Files:
    imapservice.js
    Log Message:
    It seems many IMAP clients open multiple connections to the server, and
    expect the Seen flags to be coherent across them... support this by leaving
    the users IMAP status file open, and holding a lock on the first byte.

    We now need to flush changes to the status file more often, and we need
    to call file.flush() before unlocking.



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Fri Mar 16 08:04:54 2018
    exec imapservice.js 1.56 1.57
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv20031

    Modified Files:
    imapservice.js
    Log Message:
    Pass the base to get_base_code() so that commands such as STATUS that don't have a selected base can use it.



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Fri Mar 16 08:24:56 2018
    exec imapservice.js 1.57 1.58
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv22290

    Modified Files:
    imapservice.js
    Log Message:
    Pass the index to operate on to apply_seen.
    Fixes issues with STATUS command.



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Fri Mar 16 08:31:33 2018
    exec imapservice.js 1.58 1.59
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv23019

    Modified Files:
    imapservice.js
    Log Message:
    Open the config file unbuffered to help with concurrency.



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Fri Mar 16 09:08:35 2018
    exec imapservice.js 1.59 1.60
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv26737

    Modified Files:
    imapservice.js
    Log Message:
    Ensure we can open the message base before including it in a LIST/LSUB response.



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Fri Mar 16 09:12:13 2018
    exec imapservice.js 1.60 1.61
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv27175

    Modified Files:
    imapservice.js
    Log Message:
    Add -d and -r options to control debug and debugRX respectively... no need
    to spam the log unless you're working on the script itself.



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Fri Mar 16 09:13:33 2018
    exec imapservice.js 1.61 1.62
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv27363

    Modified Files:
    imapservice.js
    Log Message:
    Typo in last commit? Say it ain't so!


    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Fri Mar 16 10:50:30 2018
    exec imapservice.js 1.62 1.63
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv19672

    Modified Files:
    imapservice.js
    Log Message:
    Support "binary" storage of Seen flags. This greatly reduces the size of
    the data/users/000x.imap files when many messages have been seen.



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Sun Mar 18 09:57:25 2018
    exec imapservice.js 1.63 1.64
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv25580

    Modified Files:
    imapservice.js
    Log Message:
    Only unlock/save the config if it's been opened.
    Fixes errors on sessions that do not authenticate before disconnecting.



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Sun Mar 18 16:19:38 2018
    exec imapservice.js 1.64 1.65
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv1878

    Modified Files:
    imapservice.js
    Log Message:
    cfgile -> cfgfile



    --- SBBSecho 3.03-Win32
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Tue Mar 27 18:45:09 2018
    exec imapservice.js 1.65 1.66
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv19960

    Modified Files:
    imapservice.js
    Log Message:
    Check if the socket is connected or not in the wait loop.



    --- SBBSecho 3.03-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Tue Apr 17 19:35:39 2018
    exec imapservice.js 1.66 1.67
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv8898

    Modified Files:
    imapservice.js
    Log Message:
    is_connected is not a method.



    --- SBBSecho 3.04-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Thu May 23 21:53:55 2019
    exec imapservice.js 1.67 1.68
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv5392

    Modified Files:
    imapservice.js
    Log Message:
    Stop using unused netattr bit definitions.


    --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Tue Jul 16 20:33:18 2019
    exec imapservice.js 1.68 1.69
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv26016

    Modified Files:
    imapservice.js
    Log Message:
    Enfoce the LOGINDISABLED capability.
    Do not use LOGINDISABLED with TLS connections.
    Add support for CRAM-MD5 so it's RFC-3501 compliant to log in without TLS.



    --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Tue Jul 16 20:47:07 2019
    exec imapservice.js 1.69 1.70
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv28070

    Modified Files:
    imapservice.js
    Log Message:
    Fix typo.



    --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Mon Sep 2 12:10:17 2019
    exec imapservice.js 1.70 1.71
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv16583

    Modified Files:
    imapservice.js
    Log Message:
    Return an error when STATUS is called with an invalid sub.
    May help with the invalid STATUS roundcube is sending from Krueger.



    --- SBBSecho 3.09-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From rswindell@1:103/705 to CVS commit on Mon Feb 3 21:17:26 2020
    exec imapservice.js 1.71 1.72
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv12689

    Modified Files:
    imapservice.js
    Log Message:
    All calls to MsgBase.get_msg_header() need the "expand fields" option
    disabled since the header may later be written back to disk. Should fix
    error reported by Ragnarok (DOCKSUD):
    imapservice.js line 1763: Error: Message header has 'expanded fields'


    --- SBBSecho 3.10-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From rswindell@1:103/705 to CVS commit on Mon Feb 3 21:19:36 2020
    exec imapservice.js 1.72 1.73
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv13164

    Modified Files:
    imapservice.js
    Log Message:
    Fix apparent bug in set_seen_flag(): wasn't passing the message header to base.put_msg_header(). I just happened to notice this while making the last
    fix committed. I'm guessing this particular code path hasn't been tested (?)


    --- SBBSecho 3.10-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From deuce@1:103/705 to CVS commit on Mon Apr 27 23:16:10 2020
    exec imapservice.js 1.73 1.74
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv17283

    Modified Files:
    imapservice.js
    Log Message:
    Rub some case-desinsitizing lotion on some regexs.



    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From rswindell@1:103/705 to CVS commit on Tue Aug 11 23:35:43 2020
    exec imapservice.js 1.74 1.75
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv8513

    Modified Files:
    imapservice.js
    Log Message:
    MSG_VERIFIED isn't a thing. Replace with MSG_VALIDATED.


    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From rswindell@1:103/705 to CVS commit on Tue Aug 11 23:48:14 2020
    exec imapservice.js 1.75 1.76
    Update of /cvsroot/sbbs/exec
    In directory cvs:/tmp/cvs-serv11198

    Modified Files:
    imapservice.js
    Log Message:
    Resolve error on line 2017: TypeError: args[0].search is not a function
    when using iOS (iPad) mail client.


    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to sbbs/master on Mon Oct 12 14:14:13 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/7831a1c1de4379362bc931c4
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix what appears to be an extra close paren in the eval() statement here<nelgin> Oct 12 16:05:41 bbs synchronet: srvc 0099 IMAPv4-TLS RECV: a UID SEARCH FROM "Michiel"<nelgin> Oct 12 16:05:41 bbs synchronet: srvc 0099 IMAPv4-TLS !JavaScript /sbbs/exec/imapservice.js line 1867: SyntaxError: missing ; before statement<nelgin> I got a different type of error
    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to sbbs/master on Mon Oct 12 15:22:43 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/601a9fd5c9019e796a1c4035
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix line 1172: ReferenceError: SCAN_CFG_NEW is not defined
    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Sun Feb 21 12:28:04 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/1fc2657fb74666d597ca753d
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix exception when line is nullimapservice.js line 736: TypeError: line is null --- SBBSecho 3.13-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Sat Feb 27 22:29:09 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/5cb71b903d507865bffd0217
    Modified Files:
    exec/imapservice.js
    Log Message:
    Resolve line 712: Error: can't convert parseInt(line) to an integer
    --- SBBSecho 3.13-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Mar 16 16:20:05 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/0bd86726916aa0cf4f3ffc13
    Modified Files:
    exec/imapservice.js
    Log Message:
    Don't overwrite the base global with the index base when reading configThis falls squarely into the "How did that ever work?" category.
    --- SBBSecho 3.13-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Mar 16 21:37:15 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/c967d666b2173c2d04e46a24
    Modified Files:
    exec/imapservice.js
    Log Message:
    Rename variable for consistency.
    --- SBBSecho 3.13-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Thu Mar 18 13:39:15 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/93b91ee77ae194970b429c85
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix two isses with IMAP service...1) user.number immediately after login() remains zero, but changes "sometime" after. Avoid using user.number right after login() call to generate filename. All data/user/0000.imap files can
    be deleted after this change.2) Saving Seen data would modify the object storing it when binary seen values were used. Use JSON.parse(JSON.stringify() to make a copy before saving and restore it afterward. Should fix issue reported by nickshanks1 over IRC.
    --- SBBSecho 3.13-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Apr 2 23:51:30 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/7b3303e7890a73cd173ae4a8
    Modified Files:
    exec/imapservice.js
    Log Message:
    Check for invalid line thing...Implicated in possible infinite loop/OOM problems.
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Apr 2 23:54:50 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/9e22b06fc5dc99f582bb3b30
    Modified Files:
    exec/imapservice.js
    Log Message:
    Improve error message
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Apr 2 23:59:36 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/45f6979765f51dfd725a467c
    Modified Files:
    exec/imapservice.js
    Log Message:
    Ensure line isn't valid is it's not read in parse_string()Thus appears to have been the root cause of the infinite loop/memoryissue. Basically, line was never replaced if it didn't match^{[0-9]+}$ and didn't result in a number when passed to parseInt()This resulted in an infinite loop that kept pushing zero-lengthstrings into an array.
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Apr 5 01:33:56 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/b376fc4921c58c0e3f9f5a2c
    Modified Files:
    exec/imapservice.js
    Log Message:
    Guard against Seen being undefined when saving config.
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Apr 5 01:43:10 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/dbed4f1a7cdd31e71f838d40
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix last commit... there are bits that aren't Seen that are saved
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Apr 6 23:23:23 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/7993ca0c16241ece57a2769e
    Modified Files:
    exec/imapservice.js
    Log Message:
    Some more fixes...Fix bseen calculation and savingOnly save seen data after all
    repsonses have been sentStop processing when the socket has been closed
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Sat Apr 9 11:51:59 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/0ed2c5120ac61523dbffd713
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix TypeError: args[1].toUpperCase is not a functionIssue #389 reported by Keyop:srvc 0324 IMAPS <Keyop> !JavaScript /sbbs/exec/imapservice.js line 653:TypeError: args[1].toUpperCase is not a functionI'm not sure how you reproduce this error or what type args[1] is(apparently, not a string), but this fix it regardless. Please let meknow.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Apr 9 12:15:07 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/a7468eaa3752118744bc4a0e
    Modified Files:
    exec/imapservice.js
    Log Message:
    Throw more interesting errors when a continuation line read fails
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Thu Sep 29 15:38:56 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/698583017282f94fb813213e
    Modified Files:
    exec/imapservice.js
    Log Message:
    Handle invalid credentials in imapserviceFixes #401
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows)@1:103/705 to Git commit to main/sbbs/master on Tue Sep 12 15:43:21 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/bbe3042acf2029e2798012d1
    Modified Files:
    exec/imapservice.js
    Log Message:
    Wrap the entire search logic in a try/catch statementThis should effectively turn script-terminating errors into just warnings andthus at least working-around issue #397: the exceptions will be logged aswarnings intead of errors, but still logged.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows)@1:103/705 to Git commit to main/sbbs/master on Fri Sep 15 15:28:09 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/c6515aa6b972bdcb6987e102
    Modified Files:
    exec/imapservice.js
    Log Message:
    Wrap the body of parse_command() in a try/catch to turn errors into warningsAs requested by Keyop in #synchrob0yyz
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Sat Sep 16 12:06:05 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/0335c9796ce7bea2551f75c4
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix error when client supplies invalid Base64 string during authIIRC, the error
    was undefined has no properties or split() is not a function,something like that.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Nigel Reed@1:103/705 to Git commit to main/sbbs/master on Mon Aug 5 18:26:49 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/e0e1fc389c94a60c666b10e1
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix messages with blank bodies not showing up on iphone
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Mon Aug 5 18:26:49 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/60e75edbbec535e4b03eef99
    Modified Files:
    exec/imapservice.js
    Log Message:
    Merge branch 'fix_blank_imap_body' into 'master'

    Fix messages with blank bodies not showing up on iphone

    See merge request main/sbbs!449
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sun Nov 10 16:14:22 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/a28da743101258c0c1c2fbd5
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix bug introduced in aecde4068 (2018)

    Properly read the index of the base, not of the base_code.
    Fixes badly broken STATUS command.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 11 01:43:03 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/99df0ed4b886d71c1d60be60
    Modified Files:
    exec/imapservice.js
    Log Message:
    Optimize read/save of Seen config

    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.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 11 01:43:03 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/ebeb50752e06140290316229
    Modified Files:
    exec/imapservice.js
    Log Message:
    Do some more optimizations around setting the Seen flag.

    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.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 11 10:25:21 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/0827b4a3f71054326fa9cdb1
    Modified Files:
    exec/imapservice.js
    Log Message:
    Hold config lock for whole sequence.

    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.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 11 11:09:45 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/79a6d872d87dddbbdbc5a592
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix deadlock introduced in last commit.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 11 11:28:00 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/6ab2d322562fe041e2f188c9
    Modified Files:
    exec/imapservice.js
    Log Message:
    Update fix in e0e1fc389c

    Instead of text with completely different meaning, change the "no body"
    text to a single space.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 11 11:41:04 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/2294bf8fbbe6490e8f9bbb01
    Modified Files:
    exec/imapservice.js
    Log Message:
    Add comment as to why the body is being replaced.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 11 13:43:41 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/d1f89436b9afd699ec7f6ec0
    Modified Files:
    exec/imapservice.js
    Log Message:
    Don't map new-scan config to IMAP subscriptions

    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.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 11 14:56:25 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/fbe3b5d7311501f51f346b85
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix handling of short send()s

    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.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 11 15:12:13 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/53d11d54dd59f9720e003de3
    Modified Files:
    exec/imapservice.js
    Log Message:
    NAMESPACE didn't help with Claws/Sylpheed.

    Change the message.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 11 23:50:59 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/292028f3d456fa73c6a3958e
    Modified Files:
    exec/imapservice.js
    Log Message:
    poll() for write, and break on sock.send() returning zero

    Should fix log-padding infinite loop.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Nov 12 00:00:12 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/2a76ffdf925f9539751a61cc
    Modified Files:
    exec/imapservice.js
    Log Message:
    Add a bit of paranoia to the infinite loop in lock_cfg() too.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Nov 12 00:03:31 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/a8825b8a679fbf819e6cb441
    Modified Files:
    exec/imapservice.js
    Log Message:
    Add more paranoia.

    This is a suitable amount of paranoia now.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Nov 12 09:44:32 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/31ae05c160698270c1c4f4e4
    Modified Files:
    exec/imapservice.js
    Log Message:
    Current IMAP standards to not allow additional text after FLAGS

    Remove the grease.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Wed Nov 13 17:57:19 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/e997e29330a1e02a4f2d2e54
    Modified Files:
    exec/imapservice.js
    Log Message:
    New IMAP search parser/generator

    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.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Thu Nov 14 19:39:59 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/ce677196ec05ff3da906b6bb
    Modified Files:
    exec/imapservice.js
    Log Message:
    Increase lock timeout to 5 min, reset imap config on exception
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Thu Nov 14 19:58:07 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/36522b3bcadd7cc05b91c52f
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix UID FETCH deadlock.

    Also, after grabbing a lock, enter a try/catch that will unlock
    and re-throw the error.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Thu Nov 14 23:59:12 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/387f12b93f0a531ecba9c1ec
    Modified Files:
    exec/imapservice.js
    Log Message:
    Fix BODYSTRUCTURE bug that prevented macOS Sequoia from loading messages

    Also, always use full_send(), not the socket send.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Nov 15 08:12:47 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/1b6d5846a52d2bf273a58192
    Modified Files:
    exec/imapservice.js
    Log Message:
    Roll the epoch back to zero if it hits 9007199254740991

    It shouldn't though.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Nov 15 09:24:33 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/d083201a3d690e463121ca11
    Modified Files:
    exec/imapservice.js
    Log Message:
    More Seen flag overhaul.

    This should now actually work properly.
    Also, add a debug_exceptions flag to rethrow exceptions so I can
    get line numbers.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Nov 15 10:25:40 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/bdef333e8a7fb61c35123edb
    Modified Files:
    exec/imapservice.js
    Log Message:
    Save scan_ptr for all subs in config.

    Also, make save_cfg() require that the lock be held.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Nov 15 10:31:07 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/b17ff3392fd2aaff8c2c2728
    Modified Files:
    exec/imapservice.js
    Log Message:
    If open_sub() fails, set readonly to true.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Nov 15 11:54:26 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/4ff6bcde4e58cfb6da660161
    Modified Files:
    exec/imapservice.js
    Log Message:
    Simplify close_sub()

    Should be no functional change.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Nov 15 12:49:28 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/ae5d70b18892a363329675ca
    Modified Files:
    exec/imapservice.js
    Log Message:
    Remove set-but-never-used msg_ptrs
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Nov 15 12:49:28 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/e0a367bdea0ef6d4c27d3362
    Modified Files:
    exec/imapservice.js
    Log Message:
    What I hope are the last \Seen and \Recent fixes.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Nov 15 16:10:11 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/af159feca3fe112835b0f306
    Modified Files:
    exec/imapservice.js
    Log Message:
    Don't rollback scan pointer on sub close.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Nov 15 19:08:40 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/9df9fdf1885c3278ec025859
    Modified Files:
    exec/imapservice.js
    Log Message:
    More speed optimizations

    1) Cache the binified seen data rather than regenerate every time
    2) Only call js.gc() after a complete fetch or store loop
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Nov 15 21:49:59 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/4119cc5e59b81e1bc0c98e3f
    Modified Files:
    exec/imapservice.js
    Log Message:
    Add a sanity check on saved config.

    I managed to hit a bug where bseen and seen were both completely
    filled. No idea how I hit it, so not positive it's fixed.

    This is cheap insurance against the 43k file groung to 1.6MB for
    someone else.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Nov 16 03:04:54 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/add2e0e273bb3626ee410896
    Modified Files:
    exec/imapservice.js
    Log Message:
    Some saved_config cleanup before splitting configs.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Nov 16 03:04:54 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/6fa958e9b1be895446c4d534
    Modified Files:
    exec/imapservice.js
    Log Message:
    Overhaul the saved config.

    Rather than a single file with config for all subs, use a separate
    file for each sub. This makes clients that do parallel connections
    to different mailboxes work much better, and make loading and saving
    the config for a mailbox much faster.

    The caching stuff is removed to simplify things, and hopefully won't
    need to come back... we should just not save config if it doesn't
    change.

    Only issue I'm still aware of is that 99% of IMAP clients just can't
    deal with slashes in mailbox paths. Like... at all. The protocol
    supports them, but every client seems to have a different way of
    breaking with them.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Nov 16 12:28:18 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/5ecec81c22623035fbd404d3
    Modified Files:
    exec/imapservice.js
    Log Message:
    Replace / with - in group/sub names

    Almost no clients support a / in names. Maybe I'll define an x-
    extension or something when I write my own mail client.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Nov 16 12:31:09 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/8dc5c89eb835563bf798dca5
    Modified Files:
    exec/imapservice.js
    Log Message:
    Wrap each cleanup step in a separate try/catch in exit func.

    Clean up as much as possible.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Nov 16 14:13:33 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/74403a96ba56a498efc17c3b
    Modified Files:
    exec/imapservice.js
    Log Message:
    Don't overwrite the offset with the IMAP offset, add a new one.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Nov 16 14:13:33 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/4db633b82b6a2acf5171cdb9
    Modified Files:
    exec/imapservice.js
    Log Message:
    "Final" optimizations

    Use the fastest message base access methods documented.
    Cache read/write configs and avoid parsing on read if unchanged.
    Make common saves dependent on there being changes.

    This is likely as good as it gets (assuming it works)
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Nov 16 23:02:36 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/753ec4a9c9048ccaa4b737d1
    Modified Files:
    exec/imapservice.js
    Log Message:
    "support" CHARSET search parameter.

    Allow only US-ASCII, and send the BADCHARSET response code indicating
    that. Fixes issue with aerc.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 18 15:29:08 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/8a55e3e3a25c78540bfbcd5b
    Modified Files:
    exec/imapservice.js
    Log Message:
    Add log levels to the rest of the log() calls.
    --- SBBSecho 3.22-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)