-
exec/imapservice.js
From
deuce@VERT to
CVS commit on Fri Mar 16 04:04:00 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Fri Mar 16 04:24:00 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Fri Mar 16 04:31:00 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Fri Mar 16 05:08:00 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Fri Mar 16 05:12:00 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Fri Mar 16 05:13:00 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!
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Fri Mar 16 06:50:00 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Sun Mar 18 05:57:00 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Sun Mar 18 12:19:00 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
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Tue Mar 27 14:45:00 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Tue Apr 17 15:35:00 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Thu May 23 17: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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Tue Jul 16 16: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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Tue Jul 16 16: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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Mon Sep 2 08: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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Mon Feb 3 16: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'
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Mon Feb 3 16: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 (?)
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Mon Apr 27 19: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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Tue Aug 11 19: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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Tue Aug 11 19: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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Rob Swindell@VERT to
Git commit to sbbs/master on Mon Oct 12 10: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
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Rob Swindell@VERT to
Git commit to sbbs/master on Mon Oct 12 11:22:43 2020
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Sun Feb 21 07:28:04 2021
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Sat Feb 27 17:29:09 2021
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Tue Mar 16 12:20:05 2021
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Tue Mar 16 17:37:15 2021
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Thu Mar 18 09: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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Apr 2 19:51:30 2021
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Apr 2 19:54:50 2021
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Apr 2 19: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/memory
issue. 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-length
strings into an array.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Sun Apr 4 21:33:56 2021
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Sun Apr 4 21:43:10 2021
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Tue Apr 6 19: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 saving
Only save seen data after all repsonses have been sent
Stop processing when the socket has been closed
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Sat Apr 9 07: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 function
Issue #389 reported by Keyop:
srvc 0324 IMAPS <Keyop> !JavaScript /sbbs/exec/imapservice.js line 653: TypeError: args[1].toUpperCase is not a function
I'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 me
know.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Sat Apr 9 08:15:07 2022
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Thu Sep 29 15:38:56 2022
-
From
Rob Swindell (on Windows)@VERT 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 statement
This should effectively turn script-terminating errors into just warnings and thus at least working-around issue #397: the exceptions will be logged as warnings intead of errors, but still logged.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Rob Swindell (on Windows)@VERT to
Git commit to main/sbbs/master on Fri Sep 15 15:28:09 2023
-
From
Rob Swindell (on Debian Linux)@VERT 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 auth
IIRC, the error was undefined has no properties or split() is not a function, something like that.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Nigel Reed@VERT to
Git commit to main/sbbs/master on Mon Aug 5 18:26:49 2024
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Mon Aug 5 18:26:49 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Sun Nov 10 16:14:22 2024
-
From
Deuc¿@VERT 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Mon Nov 11 11:09:45 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Mon Nov 11 11:28:00 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Mon Nov 11 11:41:04 2024
-
From
Deuc¿@VERT 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Mon Nov 11 15:12:13 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Mon Nov 11 23:50:59 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Tue Nov 12 00:00:12 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Tue Nov 12 00:03:31 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Tue Nov 12 09:44:32 2024
-
From
Deuc¿@VERT 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Thu Nov 14 19:39:59 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Thu Nov 14 19:58:07 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Thu Nov 14 23:59:12 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Nov 15 08:12:47 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Nov 15 09:24:33 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Nov 15 10:25:40 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Nov 15 10:31:07 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Nov 15 11:54:26 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Nov 15 12:49:28 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Nov 15 12:49:28 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Nov 15 16:10:11 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Fri Nov 15 19:08:40 2024
-
From
Deuc¿@VERT 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Sat Nov 16 03:04:54 2024
-
From
Deuc¿@VERT 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT 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.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Sat Nov 16 12:31:09 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Sat Nov 16 14:13:33 2024
-
From
Deuc¿@VERT 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)
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Sat Nov 16 23:02:36 2024
-
From
Deuc¿@VERT to
Git commit to main/sbbs/master on Mon Nov 18 15:29:08 2024