Main issueshttps://gitlab.synchro.net/groups/main/-/issues2024-02-19T21:13:54Zhttps://gitlab.synchro.net/main/sbbs/-/issues/714syncterm: Crash on OpenBSD2024-02-19T21:13:54ZDan Crosssyncterm: Crash on OpenBSDSyncterm seems to crash in `ssh_input_thread` when running under OpenBSD 7.4 x86_64. I get the following when connecting to e.g. Agency BBS:
```plaintext
Program received signal SIGABRT, Aborted.
[Switching to thread 276170]
thrkill () ...Syncterm seems to crash in `ssh_input_thread` when running under OpenBSD 7.4 x86_64. I get the following when connecting to e.g. Agency BBS:
```plaintext
Program received signal SIGABRT, Aborted.
[Switching to thread 276170]
thrkill () at /tmp/-:3
3 /tmp/-: No such file or directory.
in /tmp/-
Current language: auto; currently asm
(gdb) where
#0 thrkill () at /tmp/-:3
#1 0x18ff757db4dc9362 in ?? ()
#2 0x00000bf6b4546992 in _libc_abort () at /usr/src/lib/libc/stdlib/abort.c:51
#3 0x00000bf6b455230f in _rthread_mutex_timedlock (mutexp=Variable "mutexp" is not available.
) at /usr/src/lib/libc/thread/rthread_mutex.c:117
#4 0x00000bf49aa43b1d in ssh_input_thread (args=0x0) at ssh.c:131
#5 0x00000bf6f482bcd5 in _rthread_start (v=Unhandled dwarf expression opcode 0xa3
) at /usr/src/lib/librthread/rthread.c:96
#6 0x00000bf6b4531f0a in __tfork_thread () at /usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:86
#7 0x00000bf6b4531f0a in __tfork_thread () at /usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:86
Previous frame identical to this frame (corrupt stack?)
```
Curiously, `lldb` gives a different stack trace (GDB seems confused):
```plaintext
: experimental; lldb ./clang.openbsd.amd64.exe.debug/syncterm
(lldb) target create "./clang.openbsd.amd64.exe.debug/syncterm"
Current executable set to '/home/cross/unix/ports/sbbs/src/syncterm/clang.openbsd.amd64.exe.debug/syncterm' (x86_64).
(lldb) run
Process 74034 launched: '/home/cross/unix/ports/sbbs/src/syncterm/clang.openbsd.amd64.exe.debug/syncterm' (x86_64)
This version of LLDB has no plugin for the language "assembler". Inspection of frame variables will be limited.
Process 74034 stopped
* thread #1, stop reason = signal SIGABRT
frame #0: 0x00000eb8882cbd7b libc.so.97.1`_thread_sys_nanosleep at -:3(lldb) bt all
* thread #1, stop reason = signal SIGABRT
* frame #0: 0x00000eb8882cbd7b libc.so.97.1`_thread_sys_nanosleep at -:3
frame #1: 0x00000eb8883210d2 libc.so.97.1`_libc_nanosleep_cancel(timeout=<unavailable>, remainder=<unavailable>) at w_nanosleep.c:27:8
frame #2: 0x00000eb6863c989c syncterm`doterm(bbs=0x00000eb68671a930) at term.c:4597:4
frame #3: 0x00000eb6863d9ec7 syncterm`main(argc=1, argv=0x000076d9eb78f128) at syncterm.c:1924:8
frame #4: 0x00000eb6863954d2 syncterm`__start + 338
(lldb)
```
Telnet seems unaffected; the crash seems localized to using ssh.DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/issues/713Disconnected users cannot reconnect occasionally.2024-02-10T22:39:45ZNigel ReedDisconnected users cannot reconnect occasionally.I've had a couple of users mention this so thought I'd open an issue. The latest one said that their wifi disconnected, which dropped their BBS connection. When he tried to relog in the BBS said he was already connected. It seems the BBS...I've had a couple of users mention this so thought I'd open an issue. The latest one said that their wifi disconnected, which dropped their BBS connection. When he tried to relog in the BBS said he was already connected. It seems the BBS didn't timeout his connection for quite a while.
This is probably going to be one of those random hard to pin down issues, but I thought I'd at least log it.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/issues/712github.com mirror of the sbbs repo no longer syncs from gitlab.synchro.net su...2024-02-05T09:00:49ZRob Swindellgithub.com mirror of the sbbs repo no longer syncs from gitlab.synchro.net successfulyEver since the super large source file Deuce committed to the conio lib:
```
13:push to mirror: git push: exit status 1, stderr: "remote: error: Trace: 4fb6dabe5b6871c2b2654400e667681c8e1f7a73fb58be8e717be44fb0999d20
remote: error: See h...Ever since the super large source file Deuce committed to the conio lib:
```
13:push to mirror: git push: exit status 1, stderr: "remote: error: Trace: 4fb6dabe5b6871c2b2654400e667681c8e1f7a73fb58be8e717be44fb0999d20
remote: error: See https://gh.io/lfs for more information.
remote: error: File src/conio/rgbmap.c is 388.00 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
...
error: failed to push some refs to 'https://github.com/SynchronetBBS/sbbs.git'\n".
```DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/issues/711Log new user responses in daily log2024-02-05T13:02:21ZNigel ReedLog new user responses in daily logI have a new user that signed up but they used my personal email address. It would seem highly unlikely they'd do this so not sure if it's a bug somewhere or it is what they enetered.
it would be nice if the daily log in /sbbs/data woul...I have a new user that signed up but they used my personal email address. It would seem highly unlikely they'd do this so not sure if it's a bug somewhere or it is what they enetered.
it would be nice if the daily log in /sbbs/data would record the details of a new users. It would also be useful in case their account got lost for some reason (accidentally deleted), it could be recreated from the log entries.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/issues/710JS: QUOTES.TXT is deleted when console.editfile() is called2024-02-05T13:02:21ZEric OulashinJS: QUOTES.TXT is deleted when console.editfile() is calledAs I've been working on my news reader door for Synchronet (in JS), I've recently noticed something else about console.editfile(). I've been using that to allow the user to edit a message just before posting it in a newsgroup. I now hav...As I've been working on my news reader door for Synchronet (in JS), I've recently noticed something else about console.editfile(). I've been using that to allow the user to edit a message just before posting it in a newsgroup. I now have my news reader writing a QUOTES.TXT in the user's node directory so that the message editor can read that and allow the user to quote the message they're replying to. However, I've noticed that when console.editfile() is called, QUOTES.TXT is deleted (thus, the editor is unable to quote any of the message). I'm wondering if that's by design? If so, is there (or could there be) a way to have it not delete QUOTES.TXT when console.editfile() is called?Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/issues/709K_NUMBER doesn't allow negative or decimal numbers2024-01-31T06:38:06ZNigel ReedK_NUMBER doesn't allow negative or decimal numbersI need to get a number input from the user between two values, such as between -100 and 100. The number could be a decimal number.
K_NUMBER is really more like K_SIGNEDINT. Some optiosn
Allow K_NUMBER to accept - and . characters thoug...I need to get a number input from the user between two values, such as between -100 and 100. The number could be a decimal number.
K_NUMBER is really more like K_SIGNEDINT. Some optiosn
Allow K_NUMBER to accept - and . characters though this could cause regression issues when it comes to checking values.
K_REALNUMBER that will accept - and . characters so you can enter a negative real number.
A new method such as getrnum that will allow the use of a signed decimal.
You'll probably tell me to use getstr and then check if the variable is a number, but that sort of defeats the purpose of allowing the user to enter only numbers and - . characters.
Or open to other options.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/issues/708SYNCRYPT error re http.js2024-03-01T01:08:00ZKeyop TroySYNCRYPT error re http.jsSince updating to the latest Synchronet code, which includes multiple updates to Crypto related code, I have one occurance of this error message:
Sun Jan 28 00:00:02 2024 master/3a4a59edc
evnt SYNCRYPT !JavaScript /sbbs/exec/load/http...Since updating to the latest Synchronet code, which includes multiple updates to Crypto related code, I have one occurance of this error message:
Sun Jan 28 00:00:02 2024 master/3a4a59edc
evnt SYNCRYPT !JavaScript /sbbs/exec/load/http.js line 147: Error: Unable to read status
Please let me know if you require any additional info.DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/issues/707IMAPS TLS ERROR2024-01-30T09:32:15ZKeyop TroyIMAPS TLS ERRORSince updating recently, I am now seeing errors appearing in data/error.log
Sat Jan 27 23:52:20 2024 master/3a4a59edc
srvc 0119 IMAPS TLS ERROR 'Resources/space exhausted' (-30) setting session active
These errors did not appear befor...Since updating recently, I am now seeing errors appearing in data/error.log
Sat Jan 27 23:52:20 2024 master/3a4a59edc
srvc 0119 IMAPS TLS ERROR 'Resources/space exhausted' (-30) setting session active
These errors did not appear before the recent changes to the crypto functionality within Synchronet.
For reference, I'm using my iPhone to regularly check my BBS inbox using the IMAPS service.DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/issues/706A configuration file (e.g. text.ini) issue can cause a server to fail to recy...2024-01-26T01:16:26ZRob SwindellA configuration file (e.g. text.ini) issue can cause a server to fail to recycle, but not terminateReported by Nelgin via IRC, running "sbbs t!" (terminal server over) and introducing a syntax error to ctrl/text.ini file, would cause the terminal server to fail to (re)load config upon recycle and then terminate (as expected), but the ...Reported by Nelgin via IRC, running "sbbs t!" (terminal server over) and introducing a syntax error to ctrl/text.ini file, would cause the terminal server to fail to (re)load config upon recycle and then terminate (as expected), but the sbbs process was still running, never terminating. No additional log output after "Terminal Server thread terminated".
Attaching with gdb showed the main thread in the select(NULL,0,0,0) /* sleep forever */ call in sbbscon.c.https://gitlab.synchro.net/main/sbbs/-/issues/705bbs.event_code returns an empty string.2024-01-25T13:02:21ZNigel Reedbbs.event_code returns an empty string.~~~
eval bbs.event_code
Result (string):
~~~
I checked event_time and it does say something is scheduled
~~~
eval bbs.event_time
Result (number): 1706441580
~~~
Confirming what Max said in Sync sysops.~~~
eval bbs.event_code
Result (string):
~~~
I checked event_time and it does say something is scheduled
~~~
eval bbs.event_time
Result (number): 1706441580
~~~
Confirming what Max said in Sync sysops.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/issues/704JS: After calling bbs.edit_msg() to edit a message, the editor shows I'm edit...2024-01-24T13:02:20ZEric OulashinJS: After calling bbs.edit_msg() to edit a message, the editor shows I'm editing a file and doesn't display 'from', 'to', or 'subject' from the message being editedThe JS function bbs.edit_msg() allows editing a message. When using that, the message editor shows I'm editing a file (MSGTMP), and the 'from', 'to', and 'subject' information from the message being edited isn't displayed (maybe isn't ...The JS function bbs.edit_msg() allows editing a message. When using that, the message editor shows I'm editing a file (MSGTMP), and the 'from', 'to', and 'subject' information from the message being edited isn't displayed (maybe isn't available?). I'm wondering if it would make sense to have the 'from', 'to,' and 'subject' available for the editor? (it this a similar case as the recent change to console.editfile() to allow the user to edit a file?)
Also, when editing a message with bbs.edit_msg(), is it possible to allow changing the subject of the message?Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/issues/703getting "!setregid FAILED with error 1 (operation not permitted) two times in...2024-01-28T00:03:31ZTim Smithgetting "!setregid FAILED with error 1 (operation not permitted) two times in console of externalsGetting !setregid FAILED with error 1 (operation not permitted) it shows up two times in the console output when running externals, for sure when running under dosemu, think I have also seen it running Javascripts aso but do not know for...Getting !setregid FAILED with error 1 (operation not permitted) it shows up two times in the console output when running externals, for sure when running under dosemu, think I have also seen it running Javascripts aso but do not know for sure, it does'nt seem to be hindering operation of anything, but on some dosemu games it makes the actual BBS console output show up before and be seen before the game output comes up.
!setregid FAILED with error 1 (Operation not permitted)
!setreuid FAILED with error 1 (Operation not permitted) [Threads: 23 Sockets: 19 Clients: 7 Served: 1061 Errors: 19] (?=Help):
don't know if this is an actual error or just a "Feature" but thought it should be seen, tried searching for this issue with Synchronet and really nothing came up..https://gitlab.synchro.net/main/sbbs/-/issues/702SSH ERROR 'Bad argument, parameter 3' (-3) setting private key2024-01-22T21:57:03ZRob SwindellSSH ERROR 'Bad argument, parameter 3' (-3) setting private keyJust started today:
```
1/21 11:47:23a 2480 SSH [218.92.0.76] Connection accepted on 71.95.196.34 port 22 from port 12680
1/21 11:47:23a Terminal Server 2480 SSH ERROR 'Bad argument, parameter 3' (-3) setting private key
```Just started today:
```
1/21 11:47:23a 2480 SSH [218.92.0.76] Connection accepted on 71.95.196.34 port 22 from port 12680
1/21 11:47:23a Terminal Server 2480 SSH ERROR 'Bad argument, parameter 3' (-3) setting private key
```DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/issues/701ssl.cert is no longer created when starting sbbs2024-01-25T00:16:14ZNigel Reedssl.cert is no longer created when starting sbbsIf you shutdown sbbs, remove both ssl.cert and cryptlib.key then run scfg and change the system password, exit and re-run sbbs cryptlib.key is created but ssl.cert is not. Tried on both rpi and linux with latest build.If you shutdown sbbs, remove both ssl.cert and cryptlib.key then run scfg and change the system password, exit and re-run sbbs cryptlib.key is created but ssl.cert is not. Tried on both rpi and linux with latest build.DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/issues/700JS socket related error messages all go to the terminal server log output2024-01-20T04:42:04ZRob SwindellJS socket related error messages all go to the terminal server log outputThis is misleading and confusing.This is misleading and confusing.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/issues/699Linux setcap not working on non-symlink install2024-01-16T13:45:11ZDaniel CloughLinux setcap not working on non-symlink installI'm going to paste in the text from a message I posted on DoveNet regarding this:
I've been off-and-on fighting with using 'setcap' to allow binding to ±
low ports as a non-root user, and today found (I think) what might be ...I'm going to paste in the text from a message I posted on DoveNet regarding this:
I've been off-and-on fighting with using 'setcap' to allow binding to ±
low ports as a non-root user, and today found (I think) what might be ±
causing my difficulties. ±
±
I've been doing my updates with an automated script, and the setcap °
option on the make line didn't seem to work. So, I was trying to use it °
in the update script as a command (sudo setcap ...<blah>). That didn't °
work either, and I think it's because there are weird/complicated things °
with 'setuid' and 'inherited' permissions type things in a bash script. °
With both of those issues not working, I just manually did the setcap °
command after the build was complete, and that works as expected. °
°
So today I once again used the command on the make line, thus: °
°
cd /sbbs/repo/src/sbbs3; make RELEASE=1 setcap install °
°
That *appears* to work, as the relevant make output is this:
°
Linking gcc.linux.x64.exe.release/umonitor °
make[1]: Leaving directory '/sbbs/repo/src/sbbs3/umonitor' °
sudo `whereis -b setcap | cut -d" " -f2` 'cap_net_bind_service=+ep' °
gcc.linux.x64.exe.release/sbbs °
install gcc.linux.x64.exe.release/* /sbbs/exec ±
install gcc.linux.x64.lib.release/* /sbbs/exec ±
install */gcc.linux.x64.exe.release/* /sbbs/exec ±
±
(side note: it doesn't prompt me for user password because I have my °
user allowed to run all sudo commands without a password). °
°
The problem is that it.... still doesn't work, 'sbbs' fails to bind to a °
low port number. So I started looking closer. In a Linux terminal °
window, my files appear in different colors depending on file °
extensions, when using the 'ls' command. The executable files in °
/sbbs/exec are green, for example. The 'sbbs' executable is green after
running the build. If I manually use setcap to give it binding °
capabilities, it now shows as black text on a red background, which I'm °
sure means it is now considered some kind of "special" file. °
However.... the 'sbbs' executable in °
/sbbs/repo/src/sbbs3/gcc.linux.x64.exe.release/ is.... RED, even when °
the 'sbbs' executable in /sbbs/exec is green (not capable). What's °
happening is that the install commands there above that copy the newly °
compiled executables to /sbbs/exec remove the special capabilities. °
°
This problem isn't noticed by those that use 'symlinks' on their make ±
line, only when a person uses 'install', because that copies the file ±
somewhere else, which apparently breaks the capabilites that it's been ±
given.https://gitlab.synchro.net/main/sbbs/-/issues/698Standardize on bool/true/false (lowercase) in the C source2024-03-22T07:20:15ZRob SwindellStandardize on bool/true/false (lowercase) in the C sourceWe still build some components (e.g. xpdev) with pre-C99 Borland C, so we still use BOOL/TRUE/FALSE in these source/header files for that reason. Since we know that bool/true/false is the actual/future standard (C23), it'll be safe to us...We still build some components (e.g. xpdev) with pre-C99 Borland C, so we still use BOOL/TRUE/FALSE in these source/header files for that reason. Since we know that bool/true/false is the actual/future standard (C23), it'll be safe to use those keywords and macro-wrappers for any compiler (e.g. Borland C) that doesn't have native support.
This will make editing the C source files simpler since we'll know to always use the lowercase variant, regardless of which module/lib, without any surprises (e.g. when the CI pipeline builds code with Borland C).
Need to make sure the Borland C wrapper for `bool` will be the same size as the C99 `stdbool.h/_Bool` type.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/issues/697Add @-code formatting to text.dat/ini strings2024-01-25T13:02:21ZNigel ReedAdd @-code formatting to text.dat/ini stringsPer IRC discussion. Please consider adding formatting for @-codes in text.in files
For example @NODE|Z2@
To make things easier, @INCLUDE @JSEXEC and others that could be a security issue could be excluded.
Thanks.Per IRC discussion. Please consider adding formatting for @-codes in text.in files
For example @NODE|Z2@
To make things easier, @INCLUDE @JSEXEC and others that could be a security issue could be excluded.
Thanks.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/issues/696Add support for @-codes in text.ini2024-03-22T07:20:15ZNigel ReedAdd support for @-codes in text.iniI want to do be able to do something like this without having to go into the code and change the lines manually.
```
NodeLoggedOff: "\1_\1w\1hNode %2d: \1g%s\1n\1g logged off @DATE @TIME\r\n\1n"
NodeLoggedOnAtNbps: "\1_\1w\1hNode %2d: ...I want to do be able to do something like this without having to go into the code and change the lines manually.
```
NodeLoggedOff: "\1_\1w\1hNode %2d: \1g%s\1n\1g logged off @DATE @TIME\r\n\1n"
NodeLoggedOnAtNbps: "\1_\1w\1hNode %2d: \1g%s\1n\1g logged on @DATE @TIME\r\n\1n"
```https://gitlab.synchro.net/main/sbbs/-/issues/695Stopping a server doesn't (usually/always) put its MQTT state to "stopped"2024-01-13T00:27:44ZRob SwindellStopping a server doesn't (usually/always) put its MQTT state to "stopped"Appears to be a race condition during shutdown of a server. The will status of "DISCONNECTED" does get set, but the transition to stopped doesn't get recorded (i.e. in server/state/stopped topic).Appears to be a race condition during shutdown of a server. The will status of "DISCONNECTED" does get set, but the transition to stopped doesn't get recorded (i.e. in server/state/stopped topic).Rob SwindellRob Swindell