$Log$
+ Revision 1.490 2000/03/17 04:11:24 ajc
+ * Moved bio-related commands out to a loadable module
+
Revision 1.489 2000/03/16 17:58:54 smw
Created a docs directory.
Moved install.txt to docs.
Fri Jul 10 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
* Initial CVS import
+
modules/serv_smtp$(SO) modules/serv_pop3$(SO) \
modules/serv_inetcfg$(SO) \
modules/serv_rwho$(SO) \
+ modules/serv_bio$(SO) \
modules/serv_expire$(SO) $(SERV_ICQ)
UTIL_TARGETS=aidepost netmailer netproc netsetup msgform readlog rcit \
stats citmail netpoll mailinglist userlist sendcommand \
whobbs.c sendcommand.c mime_parser.c base64.c qpdecode.c getutline.c \
auth.c chkpwd.c client_icq.c html.c vcard.c serv_upgrade.c \
serv_smtp.c serv_pop3.c internet_addressing.c parsedate.c genstamp.c \
- domain.c clientsocket.c serv_inetcfg.c serv_rwho.c
+ domain.c clientsocket.c serv_inetcfg.c serv_rwho.c serv_bio.c
DEP_FILES=$(SOURCES:.c=.d)
modules/serv_rwho.mo: serv_rwho.mo
ln -f serv_rwho.mo modules
+modules/serv_bio.so: serv_bio.mo
+ $(LINK_SHARED) -o modules/serv_bio.so serv_bio.mo
+
+modules/serv_bio.mo: serv_bio.mo
+ ln -f serv_bio.mo modules
+
modules/serv_expire.so: serv_expire.mo
$(LINK_SHARED) -o modules/serv_expire.so serv_expire.mo
cmd_ipgm(&cmdbuf[5]);
}
- else if (!strncasecmp(cmdbuf,"EBIO",4)) {
- cmd_ebio();
- }
-
- else if (!strncasecmp(cmdbuf,"RBIO",4)) {
- cmd_rbio(&cmdbuf[5]);
- }
-
- else if (!strncasecmp(cmdbuf,"LBIO",4)) {
- cmd_lbio();
- }
-
else if (!strncasecmp(cmdbuf,"TERM",4)) {
cmd_term(&cmdbuf[5]);
}
--- /dev/null
+/*
+ * $Id$
+ *
+ * This module implementsserver commands related to the display and
+ * manipulation of user "bio" files.
+ *
+ */
+
+#include "sysdep.h"
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <pwd.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+#include <string.h>
+#include <limits.h>
+#include "citadel.h"
+#include "server.h"
+#include <time.h>
+#include "sysdep_decls.h"
+#include "citserver.h"
+#include "support.h"
+#include "config.h"
+#include "control.h"
+#include "dynloader.h"
+#include "room_ops.h"
+#include "user_ops.h"
+#include "policy.h"
+#include "database.h"
+#include "msgbase.h"
+#include "tools.h"
+
+
+
+
+/*
+ * enter user bio
+ */
+void cmd_ebio(char *cmdbuf) {
+ char buf[256];
+ FILE *fp;
+
+ if (!(CC->logged_in)) {
+ cprintf("%d Not logged in.\n",ERROR+NOT_LOGGED_IN);
+ return;
+ }
+
+ sprintf(buf,"./bio/%ld",CC->usersupp.usernum);
+ fp = fopen(buf,"w");
+ if (fp == NULL) {
+ cprintf("%d Cannot create file\n",ERROR);
+ return;
+ }
+ cprintf("%d \n",SEND_LISTING);
+ while(client_gets(buf), strcmp(buf,"000")) {
+ fprintf(fp,"%s\n",buf);
+ }
+ fclose(fp);
+}
+
+/*
+ * read user bio
+ */
+void cmd_rbio(char *cmdbuf)
+{
+ struct usersupp ruser;
+ char buf[256];
+ FILE *fp;
+
+ extract(buf,cmdbuf,0);
+ if (getuser(&ruser,buf)!=0) {
+ cprintf("%d No such user.\n",ERROR+NO_SUCH_USER);
+ return;
+ }
+ sprintf(buf,"./bio/%ld",ruser.usernum);
+
+ fp = fopen(buf,"r");
+ if (fp == NULL) {
+ cprintf("%d %s has no bio on file.\n",
+ ERROR+FILE_NOT_FOUND,ruser.fullname);
+ return;
+ }
+ cprintf("%d \n",LISTING_FOLLOWS);
+ while (fgets(buf,256,fp)!=NULL) cprintf("%s",buf);
+ fclose(fp);
+ cprintf("000\n");
+}
+
+/*
+ * list of users who have entered bios
+ */
+void cmd_lbio(char *cmdbuf) {
+ char buf[256];
+ FILE *ls;
+ struct usersupp usbuf;
+
+ ls=popen("cd ./bio; ls","r");
+ if (ls==NULL) {
+ cprintf("%d Cannot open listing.\n",ERROR+FILE_NOT_FOUND);
+ return;
+ }
+
+ cprintf("%d\n",LISTING_FOLLOWS);
+ while (fgets(buf,255,ls)!=NULL)
+ if (getuserbynumber(&usbuf,atol(buf))==0)
+ cprintf("%s\n",usbuf.fullname);
+ pclose(ls);
+ cprintf("000\n");
+}
+
+
+
+
+char *Dynamic_Module_Init(void)
+{
+ CtdlRegisterProtoHook(cmd_ebio, "EBIO", "Enter your bio");
+ CtdlRegisterProtoHook(cmd_rbio, "RBIO", "Read a user's bio");
+ CtdlRegisterProtoHook(cmd_lbio, "LBIO", "List users with bios");
+ return "$Id$";
+}
+
+
}
-/*
- * enter user bio
- */
-void cmd_ebio(void) {
- char buf[256];
- FILE *fp;
-
- if (!(CC->logged_in)) {
- cprintf("%d Not logged in.\n",ERROR+NOT_LOGGED_IN);
- return;
- }
-
- sprintf(buf,"./bio/%ld",CC->usersupp.usernum);
- fp = fopen(buf,"w");
- if (fp == NULL) {
- cprintf("%d Cannot create file\n",ERROR);
- return;
- }
- cprintf("%d \n",SEND_LISTING);
- while(client_gets(buf), strcmp(buf,"000")) {
- fprintf(fp,"%s\n",buf);
- }
- fclose(fp);
- }
-
-/*
- * read user bio
- */
-void cmd_rbio(char *cmdbuf)
-{
- struct usersupp ruser;
- char buf[256];
- FILE *fp;
-
- extract(buf,cmdbuf,0);
- if (getuser(&ruser,buf)!=0) {
- cprintf("%d No such user.\n",ERROR+NO_SUCH_USER);
- return;
- }
- sprintf(buf,"./bio/%ld",ruser.usernum);
-
- fp = fopen(buf,"r");
- if (fp == NULL) {
- cprintf("%d %s has no bio on file.\n",
- ERROR+FILE_NOT_FOUND,ruser.fullname);
- return;
- }
- cprintf("%d \n",LISTING_FOLLOWS);
- while (fgets(buf,256,fp)!=NULL) cprintf("%s",buf);
- fclose(fp);
- cprintf("000\n");
- }
-
-/*
- * list of users who have entered bios
- */
-void cmd_lbio(void) {
- char buf[256];
- FILE *ls;
- struct usersupp usbuf;
-
- ls=popen("cd ./bio; ls","r");
- if (ls==NULL) {
- cprintf("%d Cannot open listing.\n",ERROR+FILE_NOT_FOUND);
- return;
- }
-
- cprintf("%d\n",LISTING_FOLLOWS);
- while (fgets(buf,255,ls)!=NULL)
- if (getuserbynumber(&usbuf,atol(buf))==0)
- cprintf("%s\n",usbuf.fullname);
- pclose(ls);
- cprintf("000\n");
- }
-
-
/*
* Administrative Get User Parameters
*/
void cmd_list (void);
void cmd_chek (void);
void cmd_qusr (char *who);
-void cmd_ebio (void);
-void cmd_rbio (char *cmdbuf);
-void cmd_lbio (void);
void cmd_agup (char *cmdbuf);
void cmd_asup (char *cmdbuf);
int NewMailCount(void);