- Nov 12, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
Now, if the BOOL argument value is FALSE, then the .ini file is opened read-only (and thus only read permissions are needed, resolving issue #455). If the BOOL argument value is TRUE, create-if-not-exist is implied. There are no use cases where we would want to open an .ini file for writing only if it already existed.
-
Rob Swindell authored
Otherwise, socket stuff (e.g. socklen_t) isn't defined and sockwrap.h included by ini_file.h causes build error.
-
Rob Swindell authored
Fall-back to uname() if this fails. https://www.freedesktop.org/software/systemd/man/os-release.html
-
- Nov 11, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
There shouldn't be multiple keys with the same name in a section, but if there were, a call to iniRemoveKey() would would only remove the *first* key with that name. So loop until all the keys with the matching name are removed and return true only if they were all successfully removed from the specified section. This resolved an observed issue with sbbsctrl-windows displaying an error dialog "Failure writing initialization file: path/to/sbbs.ini" when there were multiple *Sound keys in a section and the first such key value matched that same key in the [Global] section: in this case, we try to remove the duplicate key/value from the non-global section, but that removal was considered a failure (iniKeyExists returned TRUE) because we only removed the *first* key with that name (assuming there would be only one). So we would abort the save entirely and display the error dialog.
-
- Nov 10, 2022
-
-
Rob Swindell authored
Fixes build in IDE again. Was getting unresolved log-related function errors (from nopen.obj) during link.
-
- Nov 09, 2022
-
-
Rob Swindell authored
-
- Nov 05, 2022
-
-
Rob Swindell authored
Loading empty main.ini file results in no (0) command shells be configured, but this scenario needs to be supported if we are to be able to run upgrade_to_v320.js via jsexec when there is no ctrl/main.ini file. Only the terminal server cares about command shells, so just move the checking and critical-error reporting there.
-
Rob Swindell authored
was always returning 0 (oops), so user.tab searches for specific string values (usually user's real name) did not work.
-
Rob Swindell authored
-
Rob Swindell authored
max_files, max_age, seq_dev
-
Rob Swindell authored
To match the existing JS file_area...dir_list properties. These were mismatched between cnfdefs.js and scfg*.c already, so lets fix but make more consistent with the JS object model.
-
Rob Swindell authored
-
Rob Swindell authored
So extended internal codes (e.g. for msg and file areas) now have a max length of 32 chars (16 prefix, 16 suffix) and most other internal codes are now limited to 16 chars (instead of 8).
-
Rob Swindell authored
-
Rob Swindell authored
My hub (1:218/700) is currently having what appears to be a TCP/IP connectivity issue that was resulting in infinite "Send failure" log messages and "We got an M_EOB, but there are still N files pending M_GOT" log messages. I first added better socket-send failure detection (checking return value of sendCmd() and sendData() where needed) and then noticed that failure to send a file was not detected (the sending.file.position is advanced even if sendData() fails), so now handling that condition too. Also added more diagnostics around socket-send failures (is socket writable?) in this particular case, the socket is not writable and socket-send is returning 0.
-
- Oct 29, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
This is pretty much a direct port using the *almost* exact same form definition file, except: 1. Uses sbbs.dll for common functions 2. Read config file (main.ini), so now needs SBBSCTRL env var set 3. Some minor improvements, like hour-glass cursor while searching and re-reading/loading/displaying the user data when any changes are saved. 4. Supports the v3.20 user base (obviously) 5. Flags nodes in-use by modified users with the UDAT node flag Some old bugs (e.g. the user credits were read/written from the old/wrong byte-offset) are no longer relevant.
-
Rob Swindell authored
-
Rob Swindell authored
This should be used elsewhere too.
-
Rob Swindell authored
putuserdatetime() needed to take a time32_t argument to be compatible with Borland C++ Builder. Eventually, when we stop using that tool, we can move to just 64-bit time_t's everywhere. parseuserdat() now accepts and optional array of field pointers to populate for each user field (for use with the new UserEditor.exe).
-
- Oct 26, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
exempt->exemptions, rest->restrictions, cdt->credits
-
Rob Swindell authored
-
Rob Swindell authored
As reported by Max (WESTLINE)
-
- Oct 25, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
-
- Oct 24, 2022
-
-
Rob Swindell authored
This would crash/segfault when the .ini files didn't exist
-
Rob Swindell authored
-
Rob Swindell authored
-