citadel.git
23 months agoRelease version 951 generated by do-release.sh v951
Art Cancro [Mon, 23 May 2022 19:57:40 +0000 (20:57 +0100)]
Release version 951 generated by do-release.sh

23 months agoRewrote our local implementation of a Base64 encoder/decoder as specified
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.

23 months agoCommitting all of my little comment syntax changes and getting them out of the way...
Art Cancro [Sat, 21 May 2022 16:55:44 +0000 (17:55 +0100)]
Committing all of my little comment syntax changes and getting them out of the way because I'm about to rip out a big chunk of code and rewrite it.

23 months agocomment style
Art Cancro [Fri, 20 May 2022 23:47:35 +0000 (00:47 +0100)]
comment style

23 months agoRemoved traces after realizing that I was hitting config.c_maxmsglen and not an actua...
Art Cancro [Wed, 18 May 2022 19:52:09 +0000 (20:52 +0100)]
Removed traces after realizing that I was hitting config.c_maxmsglen and not an actual bug.  Added a debug message to indicate when this happened.

23 months agoTemporarily added some debugs and an assert() statement to show where the message...
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.

23 months agoFound another vestige of ignet to remove
Art Cancro [Tue, 17 May 2022 17:13:08 +0000 (18:13 +0100)]
Found another vestige of ignet to remove

23 months agoFixed a buffer size calculation that caused uploads to crash on memory-constrained...
Art Cancro [Mon, 16 May 2022 15:26:52 +0000 (16:26 +0100)]
Fixed a buffer size calculation that caused uploads to crash on memory-constrained systems such as raspberry pi.

2 years agoTaking a peek at serv_expire.c to see what would be involved in deleting
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.

2 years agoMeow meow! Applied patches sent by LadySerenaKitty for improved FreeBSD compatibility.
Art Cancro [Wed, 20 Apr 2022 00:03:36 +0000 (20:03 -0400)]
Meow meow!  Applied patches sent by LadySerenaKitty for improved FreeBSD compatibility.

2 years agoRelease version 950 generated by do-release.sh v950
Art Cancro [Sat, 9 Apr 2022 20:17:42 +0000 (16:17 -0400)]
Release version 950 generated by do-release.sh

2 years agoImproved compatibility with POSIX LDAP Schema. Tested with FreeIPA demo site.
Art Cancro [Sat, 9 Apr 2022 20:17:09 +0000 (16:17 -0400)]
Improved compatibility with POSIX LDAP Schema.  Tested with FreeIPA demo site.

2 years agoUpdated LDAP code to be compatible with more modern OpenLDAP API
Art Cancro [Fri, 8 Apr 2022 23:13:04 +0000 (19:13 -0400)]
Updated LDAP code to be compatible with more modern OpenLDAP API

2 years agoderive_uid_from_ldap() converted to use ldap_get_values_len() which is not deprecated
Art Cancro [Sat, 12 Mar 2022 20:47:10 +0000 (15:47 -0500)]
derive_uid_from_ldap() converted to use ldap_get_values_len() which is not deprecated

2 years agoClick on a user or their avatar to go to their profile from the forum view
Art Cancro [Sat, 5 Mar 2022 23:30:15 +0000 (18:30 -0500)]
Click on a user or their avatar to go to their profile from the forum view

2 years agoWowzers! Copied the login modal example from the w3css web site. Looks better than...
Art Cancro [Sun, 27 Feb 2022 18:34:35 +0000 (13:34 -0500)]
Wowzers!  Copied the login modal example from the w3css web site.  Looks better than what I did ... of course.

2 years agoclick on the envelope to go to the inbox
Art Cancro [Sun, 27 Feb 2022 17:23:21 +0000 (12:23 -0500)]
click on the envelope to go to the inbox

2 years agosome comments
Art Cancro [Sat, 26 Feb 2022 21:42:40 +0000 (16:42 -0500)]
some comments

2 years agoHandle messages that are empty (or which appear empty to MSG4 because they consist...
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.

2 years agoTuned up some of the iconography
Art Cancro [Thu, 17 Feb 2022 01:16:02 +0000 (20:16 -0500)]
Tuned up some of the iconography

2 years agoThe sidebar buttons are now unhighlighted by default. When rendering a room view...
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.

2 years agoUse the w3-badge class for circular badges instead of rounding them manually in the...
Art Cancro [Thu, 17 Feb 2022 00:11:10 +0000 (19:11 -0500)]
Use the w3-badge class for circular badges instead of rounding them manually in the stylesheet.

2 years agoUpgrade W3.CSS to version 4.15
Art Cancro [Wed, 16 Feb 2022 23:59:22 +0000 (18:59 -0500)]
Upgrade W3.CSS to version 4.15

2 years agoUse the Font Awesome 6.0.0 hosted version instead of 5.whatever ... note to self...
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.

2 years agomoved vars to vars.js
Art Cancro [Mon, 14 Feb 2022 00:01:57 +0000 (19:01 -0500)]
moved vars to vars.js

2 years agoAnything that looks like a button should act like a button.
Art Cancro [Sun, 13 Feb 2022 22:58:06 +0000 (17:58 -0500)]
Anything that looks like a button should act like a button.
Anything that acts like a button should look like a button.

2 years agoSkip/Goto are functionally complete.
Art Cancro [Sun, 13 Feb 2022 21:53:26 +0000 (16:53 -0500)]
Skip/Goto are functionally complete.

2 years agoClient side of SLRP is done
Art Cancro [Sat, 12 Feb 2022 23:34:36 +0000 (18:34 -0500)]
Client side of SLRP is done

2 years agoKeep track of the last message number we saw
Art Cancro [Sat, 12 Feb 2022 23:10:22 +0000 (18:10 -0500)]
Keep track of the last message number we saw

2 years agoOnly add _BASEROOM_ to the march list if the number of rooms added
Art Cancro [Fri, 11 Feb 2022 23:00:47 +0000 (18:00 -0500)]
Only add _BASEROOM_ to the march list if the number of rooms added
to it was zero -- implying that there are no rooms with new messages.

2 years agoFixed a bug in the "goto next room" logic that was causing the first click of Goto...
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.

2 years agoRe-encode the auth cookie with the properly formatted user name. This makes the...
Art Cancro [Tue, 8 Feb 2022 23:19:17 +0000 (18:19 -0500)]
Re-encode the auth cookie with the properly formatted user name.  This makes the client side parse it properly.

2 years agoMore gratuitous style cleanup.
Art Cancro [Sun, 6 Feb 2022 23:22:07 +0000 (18:22 -0500)]
More gratuitous style cleanup.

2 years ago"Forum list" is now more or less in its final form.
Art Cancro [Sat, 5 Feb 2022 05:19:06 +0000 (00:19 -0500)]
"Forum list" is now more or less in its final form.

2 years agoNow it has a button look.
Art Cancro [Fri, 4 Feb 2022 00:37:09 +0000 (19:37 -0500)]
Now it has a button look.

2 years agoRooms in the Forums List are now clickable anywhere in the box, not just the room...
Art Cancro [Fri, 4 Feb 2022 00:30:41 +0000 (19:30 -0500)]
Rooms in the Forums List are now clickable anywhere in the box, not just the room name.

2 years agoMade the bubble icons in the Forums list round, and colored differently based on...
Art Cancro [Fri, 4 Feb 2022 00:25:44 +0000 (19:25 -0500)]
Made the bubble icons in the Forums list round, and colored differently based on the presence of new messages.

2 years agoInitial commit of the "new" room list. It's going to be a lot more "traditional...
Art Cancro [Tue, 1 Feb 2022 23:46:06 +0000 (18:46 -0500)]
Initial commit of the "new" room list.  It's going to be a lot more "traditional web forum" looking.  I hope I don't regret this.

2 years agomore divs
Art Cancro [Fri, 28 Jan 2022 05:01:12 +0000 (00:01 -0500)]
more divs

2 years agoctdl-roomlist-floor class for the floor banner over each floor's room list
Art Cancro [Fri, 28 Jan 2022 00:22:36 +0000 (19:22 -0500)]
ctdl-roomlist-floor class for the floor banner over each floor's room list

2 years ago/ctdl/r/<room_name>/info.txt now fetches the room info banner
Art Cancro [Thu, 27 Jan 2022 23:41:18 +0000 (18:41 -0500)]
/ctdl/r/<room_name>/info.txt now fetches the room info banner

2 years agoSort room list by floor but also put them in different divs
Art Cancro [Tue, 25 Jan 2022 00:38:19 +0000 (19:38 -0500)]
Sort room list by floor but also put them in different divs

2 years ago/ctdl/f/ to get a list of all floors
Art Cancro [Mon, 24 Jan 2022 20:40:45 +0000 (15:40 -0500)]
/ctdl/f/ to get a list of all floors

2 years agoroom list renderer is now aware of which rooms are forum view:
Art Cancro [Sun, 23 Jan 2022 21:14:05 +0000 (16:14 -0500)]
room list renderer is now aware of which rooms are forum view:

2 years agoMoved the room list from the sidebar to the main viewing pane.
Art Cancro [Sun, 23 Jan 2022 21:01:16 +0000 (16:01 -0500)]
Moved the room list from the sidebar to the main viewing pane.
This is going to turn into a "forum list" and we'll do something
else for mailboxes.

2 years agoTweaked the icons a bit
Art Cancro [Sun, 23 Jan 2022 06:28:23 +0000 (01:28 -0500)]
Tweaked the icons a bit

2 years agoThe "Post message" button in forum view is now active.
Art Cancro [Sat, 22 Jan 2022 21:56:29 +0000 (16:56 -0500)]
The "Post message" button in forum view is now active.

2 years agoSet up a "new item" dispatcher so it can be different for each view
Art Cancro [Sat, 22 Jan 2022 21:24:09 +0000 (16:24 -0500)]
Set up a "new item" dispatcher so it can be different for each view

2 years agoAdded a button to the screen that can be populated and brought into
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"

2 years agoExplain in comments how the connection pool works.
Art Cancro [Sat, 15 Jan 2022 20:58:46 +0000 (15:58 -0500)]
Explain in comments how the connection pool works.

2 years agoI was able to simplify the login code too. ctdl_startup() is now called at landing...
Art Cancro [Sat, 15 Jan 2022 20:41:53 +0000 (15:41 -0500)]
I was able to simplify the login code too.  ctdl_startup() is now called at landing, at login, and logout.  It always does The Right Thing.

2 years agook, that function needed to be async
Art Cancro [Sat, 15 Jan 2022 20:37:44 +0000 (15:37 -0500)]
ok, that function needed to be async

2 years agoSimplified the logout javascript
Art Cancro [Sat, 15 Jan 2022 20:28:54 +0000 (15:28 -0500)]
Simplified the logout javascript

2 years agoA little more cosmetic work on the login modal.
Art Cancro [Fri, 14 Jan 2022 16:29:17 +0000 (11:29 -0500)]
A little more cosmetic work on the login modal.
Still not in its final ultra-pretty form but it looks semi-presentable now.

2 years agobanner change
Art Cancro [Fri, 14 Jan 2022 16:10:46 +0000 (11:10 -0500)]
banner change

2 years agoThis is a better version of detect_logged_in() for webcit-ng that
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.

2 years agoRemoved some debugs that are no longer needed now that the listsub rework is complete...
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.

2 years agoBig change to mailing list subscription/unsubscription!
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.

2 years agoGenerate a random 100-byte string to be used as a host key for hashing various things.
Art Cancro [Wed, 12 Jan 2022 21:18:11 +0000 (16:18 -0500)]
Generate a random 100-byte string to be used as a host key for hashing various things.

2 years agoSeed the random number generator before the config system is initialized.
Art Cancro [Wed, 12 Jan 2022 21:04:12 +0000 (16:04 -0500)]
Seed the random number generator before the config system is initialized.

2 years agoRelease version 949 generated by do-release.sh v949
Art Cancro [Wed, 12 Jan 2022 19:29:10 +0000 (14:29 -0500)]
Release version 949 generated by do-release.sh

2 years agoChange TLS_server_method() to SSLv23_server_method() because people are still using...
Art Cancro [Wed, 12 Jan 2022 18:51:09 +0000 (13:51 -0500)]
Change TLS_server_method() to SSLv23_server_method() because people are still using older builds that don't have the new name.

2 years agomissed a few references to delete
Art Cancro [Tue, 11 Jan 2022 23:54:49 +0000 (18:54 -0500)]
missed a few references to delete

2 years agoRemoved APOP authentication from the text client. No one has ever used it and the...
Art Cancro [Tue, 11 Jan 2022 23:27:00 +0000 (18:27 -0500)]
Removed APOP authentication from the text client.  No one has ever used it and the server doesn't even support it anymore.

2 years agoMultiple invocations of HELO and/or EHLO from an SMTP client now replace, rather...
Art Cancro [Tue, 11 Jan 2022 05:00:59 +0000 (00:00 -0500)]
Multiple invocations of HELO and/or EHLO from an SMTP client now replace, rather than append to, the helo_node variable.

2 years agoRelease version 948 generated by do-release.sh v948
Art Cancro [Mon, 10 Jan 2022 23:03:11 +0000 (18:03 -0500)]
Release version 948 generated by do-release.sh

2 years agossl ciphers had to be set to its old value of
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.

2 years agoANGRY SCREED WITH CAPS LOCK ON
Art Cancro [Mon, 10 Jan 2022 22:37:52 +0000 (17:37 -0500)]
ANGRY SCREED WITH CAPS LOCK ON

2 years agoFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUuu----------------
Art Cancro [Mon, 10 Jan 2022 21:58:00 +0000 (16:58 -0500)]
FFFFFFFFFFFFFFFFFUUUUUUUUUUUUUuu----------------

2 years agoTesting to see if SSLv23_server_method() is actually the one we want
Art Cancro [Mon, 10 Jan 2022 21:37:57 +0000 (16:37 -0500)]
Testing to see if SSLv23_server_method() is actually the one we want

2 years agoLONG STRING OF EXPLETIVES
Art Cancro [Mon, 10 Jan 2022 21:10:34 +0000 (16:10 -0500)]
LONG STRING OF EXPLETIVES

2 years agoRelease version 947 generated by do-release.sh v947
Art Cancro [Mon, 10 Jan 2022 19:54:58 +0000 (14:54 -0500)]
Release version 947 generated by do-release.sh

2 years agoI got a little too eager in removing old cruft from the TLS code. Not setting the...
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.

2 years agoRelease version 946 generated by do-release.sh v946
Art Cancro [Mon, 10 Jan 2022 18:31:36 +0000 (13:31 -0500)]
Release version 946 generated by do-release.sh

2 years agoSwitch out the key/cert in a critical section (mutex wrapped). This will prevent...
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)

2 years agoUnified the openssl library initialization code
Art Cancro [Mon, 10 Jan 2022 16:28:03 +0000 (11:28 -0500)]
Unified the openssl library initialization code

2 years agoReplaced all instances of SSLv23_server_method() with TLS_server_method()
Art Cancro [Mon, 10 Jan 2022 16:16:43 +0000 (11:16 -0500)]
Replaced all instances of SSLv23_server_method() with TLS_server_method()
(thanks to zcw159357 for suggesting this)

2 years agoRelease version 945 generated by do-release.sh v945
Art Cancro [Sat, 8 Jan 2022 21:32:09 +0000 (16:32 -0500)]
Release version 945 generated by do-release.sh

2 years agoRelease version 944 generated by do-release.sh v944
Art Cancro [Sat, 8 Jan 2022 21:18:08 +0000 (16:18 -0500)]
Release version 944 generated by do-release.sh

2 years agoNew ctx change semantics in WebCit-NG
Art Cancro [Sat, 8 Jan 2022 21:17:18 +0000 (16:17 -0500)]
New ctx change semantics in WebCit-NG

2 years agoNew ctx change semantics in WebCit-classic
Art Cancro [Sat, 8 Jan 2022 21:14:08 +0000 (16:14 -0500)]
New ctx change semantics in WebCit-classic

2 years agoWhen a new certificate is installed, allocate a new ssl_ctx and bind to it; then...
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.

2 years agoSignificant cleanup of the code that generates a self-signed certificate. There...
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.

2 years agoremoved some unused variables
Art Cancro [Fri, 7 Jan 2022 21:20:39 +0000 (16:20 -0500)]
removed some unused variables

2 years agoRemoved the local implementation of snprintf() and vsnprintf() that we hacked in...
Art Cancro [Fri, 7 Jan 2022 16:54:54 +0000 (11:54 -0500)]
Removed the local implementation of snprintf() and vsnprintf() that we hacked in two decades ago to work around broken or missing system libraries.  Not needed anymore.

2 years agossl_ctx = SSL_CTX_new(SSLv23_server_method()) instead of using a temporary variable...
Art Cancro [Fri, 7 Jan 2022 16:38:19 +0000 (11:38 -0500)]
ssl_ctx = SSL_CTX_new(SSLv23_server_method()) instead of using a temporary variable f or the server method.  (Changed in Citadel Server, WebCit Classic, and WebCit-NG)

2 years agorandom acts of style cleanup
Art Cancro [Thu, 6 Jan 2022 04:41:41 +0000 (23:41 -0500)]
random acts of style cleanup

2 years agoWhile hunting for an internet address bug, cleaning up more style.
Art Cancro [Wed, 5 Jan 2022 21:52:23 +0000 (16:52 -0500)]
While hunting for an internet address bug, cleaning up more style.

2 years agoI was checking something in serv_user.c and just couldn't help myself -- style cleanup
Art Cancro [Wed, 5 Jan 2022 21:10:06 +0000 (16:10 -0500)]
I was checking something in serv_user.c and just couldn't help myself -- style cleanup

2 years agoWhen checking to see whether we have to rebind a new key and/or
Art Cancro [Wed, 5 Jan 2022 18:49:17 +0000 (13:49 -0500)]
When checking to see whether we have to rebind a new key and/or
certificate, the stored "previous value" is now the sum of the
existing key *and* certificate modification times.  This causes a
rebind to occur if either file's modification time is touched.
It does not matter if this rolls over on 32-bit systems because
we are only checking to see if the value changed, not for any
particular date comparison.

2 years agoMore of me not being able to look at code without poking around changing everything...
Art Cancro [Tue, 4 Jan 2022 14:49:35 +0000 (09:49 -0500)]
More of me not being able to look at code without poking around changing everything to C99 style comments

2 years agothe crufty code, it stings...
Art Cancro [Mon, 3 Jan 2022 22:56:01 +0000 (17:56 -0500)]
the crufty code, it stings...

2 years agoI went looking for something in the text client, and was reminded
Art Cancro [Mon, 3 Jan 2022 22:33:19 +0000 (17:33 -0500)]
I went looking for something in the text client, and was reminded
how absolutely rubbish my coding style was in the late 1980s.  I did
a few bits of cleanup but most of that code ought to be rewritten.
The good news is that unlike WebCit, I believe we can redo the text
client in place over a period of time.

2 years agoReplyQuoted works now.
Art Cancro [Mon, 3 Jan 2022 22:04:37 +0000 (17:04 -0500)]
ReplyQuoted works now.

2 years agoCleaned up the editor-div-replacement thing
Art Cancro [Mon, 3 Jan 2022 21:47:43 +0000 (16:47 -0500)]
Cleaned up the editor-div-replacement thing

2 years agoThe current local date and time now displays in the message entry div.
Art Cancro [Mon, 3 Jan 2022 20:21:00 +0000 (15:21 -0500)]
The current local date and time now displays in the message entry div.

2 years agoMessage date/time is now sent to the browser in unix timestamp format
Art Cancro [Mon, 3 Jan 2022 20:13:44 +0000 (15:13 -0500)]
Message date/time is now sent to the browser in unix timestamp format
and converted to a displayable date/time in the local timezone by the
browser.

2 years agossl error handling
Art Cancro [Sat, 1 Jan 2022 23:23:47 +0000 (18:23 -0500)]
ssl error handling

2 years agoRemoved some comments
Art Cancro [Sat, 1 Jan 2022 23:15:00 +0000 (18:15 -0500)]
Removed some comments

2 years agominor comment change
Art Cancro [Sat, 1 Jan 2022 22:50:37 +0000 (17:50 -0500)]
minor comment change