]> code.citadel.org Git - citadel.git/commitdiff
* added citlogin.c
authorArt Cancro <ajc@citadel.org>
Wed, 21 Feb 2001 05:30:38 +0000 (05:30 +0000)
committerArt Cancro <ajc@citadel.org>
Wed, 21 Feb 2001 05:30:38 +0000 (05:30 +0000)
citadel/Makefile.in
citadel/citlogin.c [new file with mode: 0644]

index cc0330de6334bb5d5422206c8f60e634ce236237..5bd7128d2fe7d6f868fc53e412c19364c102b418 100644 (file)
@@ -41,7 +41,7 @@ SERV_MODULES=modules/serv_chat$(SO) modules/serv_vcard$(SO) \
        modules/serv_ical$(SO)
 UTIL_TARGETS=aidepost netmailer netproc netsetup msgform readlog rcit \
        stats citmail netpoll mailinglist userlist sendcommand \
-       base64 qpdecode
+       base64 qpdecode citlogin
 
 prefix=@prefix@
 srcdir=@srcdir@
@@ -81,7 +81,7 @@ SOURCES=aidepost.c citadel.c citmail.c citserver.c client_chat.c commands.c \
        config.c control.c $(DATABASE) dynloader.c file_ops.c \
        housekeeping.c internetmail.c ipc_c_tcp.c locate_host.c \
        logging.c mailinglist.c messages.c msgbase.c msgform.c netmailer.c \
-       netpoll.c netproc.c netsetup.c policy.c rcit.c readlog.c \
+       netpoll.c netproc.c netsetup.c policy.c rcit.c readlog.c citlogin.c \
        room_ops.c rooms.c routines.c routines2.c serv_chat.c \
        serv_info.c serv_test.c setup.c snprintf.c stats.c serv_vcard.c \
        support.c sysdep.c tools.c user_ops.c userlist.c serv_expire.c \
@@ -325,6 +325,9 @@ msgform: msgform.o
 readlog: readlog.o config.o
        $(CC) readlog.o config.o $(LDFLAGS) -o readlog
 
+citlogin: citlogin.o config.o
+       $(CC) citlogin.o config.o $(LDFLAGS) -o citlogin
+
 rcit: rcit.o config.o
        $(CC) rcit.o config.o $(LDFLAGS) -o rcit
 
diff --git a/citadel/citlogin.c b/citadel/citlogin.c
new file mode 100644 (file)
index 0000000..117bf8e
--- /dev/null
@@ -0,0 +1,26 @@
+/* 
+ * $Id$
+ *
+ * A simple wrapper for the Citadel client.  This allows telnetd to call
+ * Citadel without a system login.
+ *
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <time.h>
+#include <string.h>
+#include <errno.h>
+#include "citadel.h"
+
+void get_config(void);
+struct config config;
+
+int main (int argc, char **argv) {
+       get_config();
+       setuid(config.c_bbsuid);
+       execlp("./citadel", "citadel", NULL);
+       exit(errno);
+}