]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/listsub/serv_listsub.c
ListSubscriber: initialize vars
[citadel.git] / citadel / modules / listsub / serv_listsub.c
index 0eb2300f2247c241f327a0990d556ac7b28588f0..495fc0f9aed1582d696df88a8e830b835bf382ca 100644 (file)
@@ -1,10 +1,21 @@
 /*
- * $Id$
- *
  * This module handles self-service subscription/unsubscription to mail lists.
  *
- * Copyright (C) 2002-2005 by Art Cancro and others.
- * This code is released under the terms of the GNU General Public License.
+ * Copyright (c) 2002-2009 by the citadel.org team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  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.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  */
 
@@ -39,9 +50,7 @@
 #include "citserver.h"
 #include "support.h"
 #include "config.h"
-#include "room_ops.h"
 #include "user_ops.h"
-#include "policy.h"
 #include "database.h"
 #include "msgbase.h"
 #include "internet_addressing.h"
@@ -93,7 +102,7 @@ void do_subscribe(char *room, char *email, char *subtype, char *webpage) {
        char scanemail[256];
        int found_sub = 0;
 
-       if (getroom(&qrbuf, room) != 0) {
+       if (CtdlGetRoom(&qrbuf, room) != 0) {
                cprintf("%d There is no list called '%s'\n", ERROR + ROOM_NOT_FOUND, room);
                return;
        }
@@ -156,7 +165,7 @@ void do_subscribe(char *room, char *email, char *subtype, char *webpage) {
 
        /* Generate and send the confirmation request */
 
-       urlesc(urlroom, qrbuf.QRname);
+       urlesc(urlroom, ROOMNAMELEN, qrbuf.QRname);
 
        snprintf(confirmation_request, sizeof confirmation_request,
 
@@ -233,7 +242,7 @@ void do_unsubscribe(char *room, char *email, char *webpage) {
        char scanemail[256];
        int found_sub = 0;
 
-       if (getroom(&qrbuf, room) != 0) {
+       if (CtdlGetRoom(&qrbuf, room) != 0) {
                cprintf("%d There is no list called '%s'\n",
                        ERROR + ROOM_NOT_FOUND, room);
                return;
@@ -296,7 +305,7 @@ void do_unsubscribe(char *room, char *email, char *webpage) {
 
        /* Generate and send the confirmation request */
 
-       urlesc(urlroom, qrbuf.QRname);
+       urlesc(urlroom, ROOMNAMELEN, qrbuf.QRname);
 
        snprintf(confirmation_request, sizeof confirmation_request,
 
@@ -370,19 +379,17 @@ void do_confirm(char *room, char *token) {
        int line_length;
        char buf[512];
        char cmd[256];
-       char email[256];
+       char email[256] = "";
        char subtype[128];
        int success = 0;
-       char address_to_unsubscribe[256];
+       char address_to_unsubscribe[256] = "";
        char scancmd[256];
        char scanemail[256];
        char *holdbuf = NULL;
        int linelen = 0;
        int buflen = 0;
 
-       strcpy(address_to_unsubscribe, "");
-
-       if (getroom(&qrbuf, room) != 0) {
+       if (CtdlGetRoom(&qrbuf, room) != 0) {
                cprintf("%d There is no list called '%s'\n",
                        ERROR + ROOM_NOT_FOUND, room);
                return;
@@ -506,7 +513,7 @@ void do_confirm(char *room, char *token) {
         */
        if (success) {
                cprintf("%d %d operation(s) confirmed.\n", CIT_OK, success);
-               lprintf(CTDL_NOTICE, 
+               syslog(LOG_NOTICE, 
                        "Mailing list: %s %ssubscribed to %s with token %s\n", 
                        email, 
                        (!IsEmptyStr(address_to_unsubscribe)) ? "un" : "", 
@@ -570,8 +577,11 @@ void cmd_subs(char *cmdbuf) {
  */
 CTDL_MODULE_INIT(listsub)
 {
-       CtdlRegisterProtoHook(cmd_subs, "SUBS", "List subscribe/unsubscribe");
-
-       /* return our Subversion id for the Log */
-       return "$Id$";
+       if (!threading)
+       {
+               CtdlRegisterProtoHook(cmd_subs, "SUBS", "List subscribe/unsubscribe");
+       }
+       
+       /* return our module name for the log */
+       return "listsub";
 }