Various changes to appimage. Removed some old docs.
authorArt Cancro <ajc@citadel.org>
Tue, 30 Mar 2021 18:19:50 +0000 (14:19 -0400)
committerArt Cancro <ajc@citadel.org>
Tue, 30 Mar 2021 18:19:50 +0000 (14:19 -0400)
appimage/ctdlvisor.c
citadel/citmail.c
citadel/docs/netconfigs.txt
citadel/docs/package-setup.txt [deleted file]
citadel/docs/smtpclient.txt [deleted file]
citadel/docs/welcomemail.html [deleted file]
citadel/docs/welcomemail.txt [deleted file]

index 041d1a5..405a56b 100644 (file)
@@ -71,17 +71,18 @@ void signal_handler(int signal) {
                else {
                        what_exited = "unknown";
                }
-               if (WIFEXITED(status)) {
-                       fprintf(stderr, "ctdlvisor: %d (%s) exited, exitcode=%d\n", who_exited, what_exited, WEXITSTATUS(status));
-               }
-               else if (WIFSIGNALED(status)) {
-                       fprintf(stderr, "ctdlvisor: %d (%s) crashed, signal=%d\n", who_exited, what_exited, WTERMSIG(status));
-               }
-               else {
-                       fprintf(stderr, "ctdlvisor: %d (%s) ended, status=%d\n", who_exited, what_exited, status);
+               if (who_exited >= 0) {
+                       if (WIFEXITED(status)) {
+                               fprintf(stderr, "ctdlvisor: %d (%s) exited, exitcode=%d\n", who_exited, what_exited, WEXITSTATUS(status));
+                       }
+                       else if (WIFSIGNALED(status)) {
+                               fprintf(stderr, "ctdlvisor: %d (%s) crashed, signal=%d\n", who_exited, what_exited, WTERMSIG(status));
+                       }
+                       else {
+                               fprintf(stderr, "ctdlvisor: %d (%s) ended, status=%d\n", who_exited, what_exited, status);
+                       }
                }
        } while (who_exited >= 0);
-
        ctdlvisor_exit(0);
 }
 
@@ -113,6 +114,7 @@ pid_t start_citadel() {
                exit(errno);
        }
        else {
+               fprintf(stderr, "ctdlvisor: citserver running on pid=%d\n", pid);
                return(pid);
        }
 }
@@ -131,6 +133,7 @@ pid_t start_webcit() {
                exit(errno);
        }
        else {
+               fprintf(stderr, "ctdlvisor: webcit (HTTP) running on pid=%d\n", pid);
                return(pid);
        }
 }
@@ -149,6 +152,7 @@ pid_t start_webcits() {
                exit(errno);
        }
        else {
+               fprintf(stderr, "ctdlvisor: webcit (HTTPS) running on pid=%d\n", pid);
                return(pid);
        }
 }
@@ -177,7 +181,6 @@ void main_loop(void) {
        int citserver_exit_code = 0;
 
        do {
-               fprintf(stderr, "ctdlvisor: waiting for any child process to exit...\n");
                who_exited = waitpid(-1, &status, 0);
                fprintf(stderr, "ctdlvisor: pid=%d exited, status=%d, exitcode=%d\n", who_exited, status, WEXITSTATUS(status));
 
index 777edb7..f1c6ae8 100644 (file)
@@ -1,18 +1,17 @@
-/*
- * This program attempts to act like a local MDA if you're using sendmail or
- * some other non-Citadel MTA.  It basically just contacts the Citadel LMTP
- * listener on a unix domain socket and transmits the message.
- *
- * Copyright (c) 1987-2021 by the citadel.org team
- *
- * This program is open source software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
+// This program attempts to act like a local MDA if you're using sendmail or
+// some other non-Citadel MTA.  It basically just contacts the Citadel LMTP
+// listener on a unix domain socket and transmits the message.  Really though,
+// if your MTA supports LMTP then you definitely should be using that instead.
+//
+// Copyright (c) 1987-2021 by the citadel.org team
+//
+// This program is open source software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 3.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
 
 #include "sysdep.h"
 #include <stdlib.h>
 int serv_sock;
 int debug = 0;
 
-void strip_trailing_nonprint(char *buf)
-{
-        while ( (!IsEmptyStr(buf)) && (!isprint(buf[strlen(buf) - 1])) )
+void strip_trailing_nonprint(char *buf) {
+        while ( (!IsEmptyStr(buf)) && (!isprint(buf[strlen(buf) - 1])) ) {
                 buf[strlen(buf) - 1] = 0;
+       }
 }
 
 
-void timeout(int signum)
-{
+void timeout(int signum) {
        exit(signum);
 }
 
 
-int uds_connectsock(char *sockpath)
-{
+int uds_connectsock(char *sockpath) {
        int s;
        struct sockaddr_un addr;
 
        memset(&addr, 0, sizeof(addr));
        addr.sun_family = AF_UNIX;
-       strncpy(addr.sun_path, sockpath, sizeof addr.sun_path);
+       strcpy(addr.sun_path, sockpath);
 
        s = socket(AF_UNIX, SOCK_STREAM, 0);
        if (s < 0) {
index bdfc6aa..113871d 100644 (file)
@@ -31,13 +31,10 @@ is used for "list serve" applications.
 INSTRUCTION:  digestrecp
 SYNTAX:       digestrecp|friko@mumjiboolean.com
 DESCRIPTION:
-Defines a recipient to whom all messages in this room should be sent.  This
-is used for "list serve" applications.  The difference between listrecps and
-digestrecps is that the latter will have messages embedded inside a message
-sent by the listserver.  The message will appear to be sent by the room's
-e-mail address instead of the sender's e-mail address.
+As of 2021, this is now an alias for listrecp and may be converted to listrecp
+by the mailing list manager.
+
+
 INSTRUCTION:  subpending
 SYNTAX:       subpending|friko@mumjiboolean.com|listrecp|A234Z|1234567890|http://foo.com/lists
 "Subscription pending" for the specified address.  This means that
diff --git a/citadel/docs/package-setup.txt b/citadel/docs/package-setup.txt
deleted file mode 100644 (file)
index ff60a6f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-Package builders: you can set the following environment variables
-before running setup in quiet mode (setup -q) in order to keep it
-quiet but still do setup.
-
-First, please set CITADEL_INSTALLER to "yes"
-
-Then set:
-
-CITADEL                        Directory in which Citadel is installed
-
-SLAPD_BINARY           Location of slapd (optional)
-LDAP_CONFIG            Location of slapd.conf (optional)
-
-SUPPORT                        Location of libraries, etc. (optional)
-                       (i.e. /usr/local/ctdlsupport)
-
-CTDL_DIALOG            Location of the 'dialog' program (optional)
-
-ACT_AS_MTA             When other MTA's (Postfix, etc.) are found, setup
-                       will offer to disable them in order to keep them
-                       from interfering with Citadel.  Set this variable to
-                       "yes" to always disable the other MTA without asking,
-                       or to "no" to never disable the other MTA.
-
-CREATE_INITTAB_ENTRY   Set to "yes" to automatically create an entry in
-                       /etc/inittab to start the Citadel server, if needed.
-
-CREATE_XINETD_ENTRY    Set to "yes" to automatically configure xinetd to route
-                       telnet connections into a Citadel client, if needed.
-
-SYSADMIN_NAME          Name of system administrator.
-
-NO_INIT_SCRIPTS                Set to non-null to suppress the creation of init
-                       scripts when running on a SysV-init based host.
diff --git a/citadel/docs/smtpclient.txt b/citadel/docs/smtpclient.txt
deleted file mode 100644 (file)
index 01fad92..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-====== SMTP Client ======
-===== source files involved: =====
-
-
-modules/smtp/smtp_clienthandlers.h - SMTP-Client Context struct & functions.
-modules/smtp/smtpqueue.h - parsing of Queue mails & respective structures
-
-modules/smtp/serv_smtpqueue.c - queue handling executed by housekeeping thread; de/serialization of Queue-control-messages
-modules/smtp/serv_smtpeventclient.c - business logic 
-modules/smtp/smtp_clienthandlers.c - Protocol logic
-
-msgbase.c - writes spool messages + spoolcontrol files
-
-event_client.c - base event functions
-
-modules/eventclient/serv_eventclient.c - the event queue
-modules/c-ares-dns/serv_c-ares-dns.c - nameserver lookup
-
-===== Spool Control =====
-Citadel stores two messages for mail deliveries; the spool control message format is described in delivery-list.txt; its generated in msgbase.c, and de/serialized in serv_smtpqueue.c.
-The for Spool-control structures are kept in memory as OneQueItem per Spool-Control-File, and MailQEntry per Recipient of the message.
-For each MailQEntry which is still to be delivered, one SmtpOutMsg (containing the AsyncIO context) is spawned. The Jobs are processed in paralell, each job finished triggers an update of the spool control message, so we don't accidently deliver a message twice to one recipient. If the last recipient has succeeded, or permanently failed, the spool-file and the mail-file are removed from the spool room.
-
-===== Business Logic for one SMTP Connection =====
-For each SMTP client one SmtpOutMsg is created as Context; we now live inside the IO-Eventloop. SMTP requires to attempt to connect different servers in different situations; not all errors from remote sides are permanent, or fatal for one delivery attempt. One delivery attempt may involve talking to several SMTP-Servers; maybe the first isn't active or currently not accepting messages.
-If citadel runs in relay mode, only the relays are connected; no MX lookup is done.
-
- - MX nameserver lookup; may give several mailservers; IPv4 and IPv6 addresses may be there. If no MX is found, the server is contacted directly.
- - Now we have a number of Mailservers we have to iterate over; This is the entry for all subsequent tries for delivery; FailOneAttempt() will decide what to do next.
- - one server has to be resolved; A or AAAA record in case of IPv4 or IPv6
- - we try to connect the server nonblocking; if we fail to connect in a given time range, the next server has to be tried.
- - we now have to wait for the server greeting; we musn't say anything before the server sent a complete line. A timeout may occur, the next server has to be tried, if.
- - Now the handlers start to control the logic. A timeout may occur between each of them; Servers may reply with fatal or non fatal or temporary error codes; depending on them
-   - we fail the conversation with this server, and try the next
-   - we fail this delivery attempt, and retry later in the next queue run.
-   - we succeed the delivery of this message.
diff --git a/citadel/docs/welcomemail.html b/citadel/docs/welcomemail.html
deleted file mode 100644 (file)
index f646908..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<html>\r
-<head>\r
-<title>Welcome to your new Citadel installation</title>\r
-</head>\r
-<!-- use /usr/bin/elinks -force-html -dump welcomemail.html >welcomemail.txt to dump this over to the textfile. -->\r
-<body>\r
-<h3>Welcome to your new Citadel installation! </h3>\r
-\r
-Congratulations! You've now completed your Citadel Installation.<br>\r
-Your Citadel system provides\r
-you with the following Protocols to communicate with your Client Software: \r
-\r
-<ul>\r
- <li>Webmail via http and https. Any remaining configuration\r
-     Tasks, are most likely able to be completed in Webcit</li>\r
- <li>IMAP Directory Services. Access your Inbox and other Rooms easily\r
-     via IMAP. </li>\r
- <li>POP3 Mail Delivery. If you'd like to poll mails over to your\r
-     Client, use Pop3.</li>\r
- <li><a href="http://www.groupdav.org">GroupDAV</a>\r
-     Calendaring and Address book Access. Connect your Calendaring Client to a\r
-     central Storage, and share calendars with others.</li>\r
- <li>ICal Access to your personal Calendar.</li>\r
- <li>SMTP / MSA access with TLS support. Receive mails from others or\r
-     relay your own Client via your Citadel.</li>\r
-</ul>\r
-\r
-<br>\r
-For advice regarding how to configure your favorite Mail client to interact\r
-with Citadel, please see the <a href="http://www.citadel.org/clientmatrix">\r
-Client Matrix </a>. If you don't find your client there, please sign into \r
-<a href="https://uncensored.citadel.org/">Uncensored!</a> and tell us about \r
-it in the <b>Citadel Documentation</b> Room! And if you would like to provide\r
-screenshots on how you did the configuration for documentation purposes, we'll\r
-appreciate them. <br>\r
-<br>\r
-Please see the \r
-<a href="http://citadel.org/index.php?option=com_content&amp;task=section&amp;id=3&amp;Itemid=38">FAQ</a>\r
-for more general questions, or the \r
-<a href="http://easyinstall.citadel.org/citadel/docs/citadel.html">\r
-Citadel Administration Manual </a>\r
-for more involved situations. Or, join us at \r
-<a href="https://uncensored.citadel.org/">Uncensored!</a>,\r
-post your message into the <b>Citadel Support</b> Room and you will get help\r
-there. You may also join us on <a href="irc://irc.citadel.org/#citadel">IRC</a>\r
-(irc.citadel.org, or freenode network) in #Citadel.<br>\r
-<br>\r
-If Webcit does not yet speak your language, please tell us at \r
-<a href="https://uncensored.citadel.org/">Uncensored!</a> in the <b>Citadel Development</b> \r
-Room, where you will be welcomed and encouraged to add a translation Working \r
-contributions in various forms are always welcome, in fact, so feel free to \r
-join us in improving the Citadel system!<br>\r
-Enjoying Citadel? Please let us know. Just log into \r
-<a href="http://uncensored.citadel.org/">Uncensored!</a> and drop us a note! <br>\r
-<br>\r
-\r
-Your Citadel Development Team <br>\r
-<br>\r
-Read more about <a href="http://en.wikipedia.org/wiki/Citadel/UX">Citadel on Wikipedia</a>\r
-\r
-</body>\r
-\r
-</html>\r
diff --git a/citadel/docs/welcomemail.txt b/citadel/docs/welcomemail.txt
deleted file mode 100644 (file)
index f5777aa..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-  Welcome to your new Citadel installation!
-
-   Congratulations! You've now completed your Citadel Installation.
-   Your Citadel system provides you with the following Protocols to
-   communicate with your Client Software:
-
-     * Webmail via http and https. Any remaining configuration Tasks, are
-       most likely able to be completed in Webcit
-     * IMAP Directory Services. Access your Inbox and other Rooms easily via
-       IMAP.
-     * POP3 Mail Delivery. If you'd like to poll mails over to your Client,
-       use POP3.
-     * [1]GroupDAV Calendaring and Address book Access. Connect your
-       Calendaring Client to a central Storage, and share calendars with
-       others.
-     * iCalendar-over-WebDAV ("Webcal") Access to your personal Calendar.
-     * SMTP / MSA access with TLS support. Receive mails from others or relay
-       your own Client via your Citadel.
-
-   For advice regarding how to configure your favorite Mail client to
-   interact with Citadel, please see the [2]Client Matrix . If you don't find
-   your client there, please sign into [3]Uncensored! and tell us about it in
-   the Citadel Documentation Room! And if you would like to provide
-   screenshots on how you did the configuration for documentation purposes,
-   we'll appreciate them.
-
-   Please see the [4]FAQ for more general questions, or the [5]Citadel
-   Administration Manual for more involved situations. Or, join us at
-   [6]Uncensored!, post your message into the Citadel Support Room and you
-   will get help there. You may also join us on [7]IRC (irc.citadel.org, or
-   freenode network) in #Citadel.
-
-   If Webcit does not yet speak your language, please tell us at
-   [8]Uncensored! in the Citadel Development Room, where you will be welcomed
-   and encouraged to add a translation Working contributions in various forms
-   are always welcome, in fact, so feel free to join us in improving the
-   Citadel system!
-   Enjoying Citadel? Please let us know. Just log
-   into [9]Uncensored! and drop us a note!
-
-   Your Citadel Development Team
-
-   Read more about [10]Citadel on Wikipedia
-
-References
-
-   Visible links
-   1. http://www.groupdav.org/
-   2. http://www.citadel.org/clientmatrix
-   3. http://uncensored.citadel.org/
-   4. http://citadel.org/index.php?option=com_content&task=section&id=3&Itemid=38
-   5. http://easyinstall.citadel.org/citadel/docs/citadel.html
-   6. http://uncensored.citadel.org/
-   7. irc://irc.citadel.org/#citadel
-   8. http://uncensored.citadel.org/
-   9. http://uncensored.citadel.org/
-  10. http://en.wikipedia.org/wiki/Citadel/UX