Art Cancro [Sun, 12 Jun 2022 04:27:59 +0000 (00:27 -0400)]
There are three specific compiler warnings that we don't care about. Suppress them using a GCC pragma in the header files instead of mucking up the build system.
Art Cancro [Sat, 11 Jun 2022 23:40:07 +0000 (19:40 -0400)]
CTDLDIR is now properly compiled into the source code based on what was configured at build time. This makes it properly run from its native directory if no extra commands are supplied, but it can run from another data directory if specified.
Art Cancro [Sat, 11 Jun 2022 17:46:34 +0000 (13:46 -0400)]
More work on "make install" including some simplification of database_cleanup.sh. Debian stopped updating their Berkeley DB packages so we aren't going to support their "db{version}_util" syntax anymore. This makes life easier for the build process, even though we now have no hope of expecting that a compatible version of BDB will be available in the operating system."
Art Cancro [Wed, 8 Jun 2022 19:26:51 +0000 (15:26 -0400)]
textclient: test to see whether iconv requires -liconv in ldflags. Now it should work on both Linux and FreeBSD. I will backport this patch to the production release.
Art Cancro [Sat, 4 Jun 2022 23:11:58 +0000 (19:11 -0400)]
This is an omnibus commit which moves the Citadel Server from crusty old GNU Autotools to the shiny new conf-IG-ure system. WARNING BROKEN BUILD ALERT: at the moment it only compiles the server and lacks 'clean' and 'install' targets. Subsequent commits will resolve these but don't try to build production from this yet.
Art Cancro [Mon, 23 May 2022 19:56:39 +0000 (20:56 +0100)]
Rewrote our local implementation of a Base64 encoder/decoder as specified
in RFC 2045 section 6.8. In the past, someone tried to make this "elegant"
and in the process they made it broken when certain conditions exist. If
you are reading this and it isn't broken, don't try to improve it. It works
and I don't want to fix it again. I don't care how many nanoseconds you think
you can shave off the execution time. Don't fucking touch it.
Art Cancro [Tue, 17 May 2022 18:03:11 +0000 (19:03 +0100)]
Temporarily added some debugs and an assert() statement to show where the message buffer is getting truncated during large reads on low memory systems.
Art Cancro [Mon, 2 May 2022 23:43:17 +0000 (19:43 -0400)]
Taking a peek at serv_expire.c to see what would be involved in deleting
users who aren't in LDAP anymore. And you know what that means: I can't
help myself but to update the comment style all over that file.
Art Cancro [Sat, 26 Feb 2022 20:13:14 +0000 (15:13 -0500)]
Handle messages that are empty (or which appear empty to MSG4 because they consist solely of a non-renderable attachment in Part 0) by delivering a null json instead of locking up.
Art Cancro [Thu, 17 Feb 2022 00:41:50 +0000 (19:41 -0500)]
The sidebar buttons are now unhighlighted by default. When rendering a room view, iterate through all of them, unhighlight any that are highlighted, and then highlight the correct one.
Art Cancro [Wed, 16 Feb 2022 23:53:34 +0000 (18:53 -0500)]
Use the Font Awesome 6.0.0 hosted version instead of 5.whatever ... note to self: now that I know they just randomly pull back versions off the CDN, we need to host our own or include it in the package during final distribution. Bad form, FA people. Bad form.
Art Cancro [Fri, 11 Feb 2022 21:56:42 +0000 (16:56 -0500)]
Fixed a bug in the "goto next room" logic that was causing the first click of Goto (or Skip) to load the march list but then didn't actually change rooms.
Art Cancro [Sat, 22 Jan 2022 21:02:22 +0000 (16:02 -0500)]
Added a button to the screen that can be populated and brought into
view whenever a "new item" command is available, such as "Post message"
or "Enter mail" or "New calendar item"
Art Cancro [Fri, 14 Jan 2022 16:08:55 +0000 (11:08 -0500)]
This is a better version of detect_logged_in() for webcit-ng that
checks the server cookie instead of clumsily attempting a command.
This works synchronously so it can be combined with other commands
without creating a race condition. Also moved the login screen to
a modal.
Art Cancro [Thu, 13 Jan 2022 23:38:34 +0000 (18:38 -0500)]
Removed some debugs that are no longer needed now that the listsub rework is complete. Also updated the netconfig specification to remove the obsolete pending command.
Art Cancro [Thu, 13 Jan 2022 16:48:37 +0000 (11:48 -0500)]
Big change to mailing list subscription/unsubscription!
The old confirmation method involved generating a confirmation token
during the first opt, which was mailed to the user and saved to disk
so they could confirm it in the second opt. In the new code, the
token can be re-generated persistently by the server using a
combination of the email address, the room name, and a host key that
is known only to the site operator (stored in the config db). So
there is no longer a need to store the pending request, and the
confirmation links are valid forever (and reusable!).
Aside from being algorithmically nifty, this will also give us the
ability to implement "one click unsubscribe" in the near future.
Art Cancro [Mon, 10 Jan 2022 22:42:26 +0000 (17:42 -0500)]
ssl ciphers had to be set to its old value of
"ALL:RC4+RSA:+SSLv2:+TLSv1:!MD5:@STRENGTH"
instead of
"DEFAULT"
even though the latter works just fine in WebCit, works just fine
in all protocols on the development host, but causes all sorts of
chaos on Uncensored. I don't know why.
Art Cancro [Mon, 10 Jan 2022 19:54:54 +0000 (14:54 -0500)]
I got a little too eager in removing old cruft from the TLS code. Not setting the correct cipher list broke production in a way that didn't fail in development.
Art Cancro [Mon, 10 Jan 2022 16:59:07 +0000 (11:59 -0500)]
Switch out the key/cert in a critical section (mutex wrapped). This will prevent multiple threads from doing it at once and leaking memory (thanks zcw159357)
Art Cancro [Sat, 8 Jan 2022 18:42:27 +0000 (13:42 -0500)]
When a new certificate is installed, allocate a new ssl_ctx and bind to it; then wait a moment before freeing the old one to let any in-progress binds complete.
Art Cancro [Sat, 8 Jan 2022 18:30:23 +0000 (13:30 -0500)]
Significant cleanup of the code that generates a self-signed certificate. There is no need to keep the CSR around so we don't do that anymore. The remainder of the code contains only what is needed; the rest I had copied from OpenSSL example code 20 years ago and never looked at again.