X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fcontrol.c;h=327270bccff88f7b5aedd85415d43ce0be9674bb;hb=4eb74b26380dfde31c86c685f0589e0c653aebf0;hp=07edd88baf386e9b8fa9f091751be8b261648667;hpb=98979e042ba6cf2dbb9e1656fc44769ebf628c48;p=citadel.git diff --git a/citadel/control.c b/citadel/control.c index 07edd88ba..327270bcc 100644 --- a/citadel/control.c +++ b/citadel/control.c @@ -3,6 +3,21 @@ * * This module handles states which are global to the entire server. * + * Copyright (c) 1987-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 */ #include "sysdep.h" @@ -29,6 +44,7 @@ #include #include #include +#include #include #include "citadel.h" #include "server.h" @@ -47,6 +63,8 @@ #include "snprintf.h" #endif +#include "ctdl_module.h" + struct CitControl CitControl; extern struct config config; FILE *control_fp = NULL; @@ -147,6 +165,7 @@ void control_find_user (struct ctdluser *EachUser, void *out_data) void get_control(void) { static int already_have_control = 0; + int rv = 0; /* * If we already have the control record in memory, there's no point @@ -163,35 +182,30 @@ void get_control(void) control_fp = fopen(file_citadel_control, "rb+"); if (control_fp != NULL) { lock_control(); - fchown(fileno(control_fp), config.c_ctdluid, -1); - fchmod(fileno(control_fp), - S_IRUSR|S_IWUSR); + rv = fchown(fileno(control_fp), config.c_ctdluid, -1); + rv = fchmod(fileno(control_fp), S_IRUSR|S_IWUSR); } } if (control_fp == NULL) { control_fp = fopen(file_citadel_control, "wb+"); if (control_fp != NULL) { lock_control(); - fchown(fileno(control_fp), config.c_ctdluid, -1); - fchmod(fileno(control_fp), - S_IRUSR|S_IWUSR); + rv = fchown(fileno(control_fp), config.c_ctdluid, -1); + rv = fchmod(fileno(control_fp), S_IRUSR|S_IWUSR); memset(&CitControl, 0, sizeof(struct CitControl)); - fwrite(&CitControl, sizeof(struct CitControl), - 1, control_fp); + rv = fwrite(&CitControl, sizeof(struct CitControl), 1, control_fp); rewind(control_fp); } } if (control_fp == NULL) { - CtdlLogPrintf(CTDL_ALERT, "ERROR opening %s: %s\n", - file_citadel_control, - strerror(errno)); + CtdlLogPrintf(CTDL_ALERT, "ERROR opening %s: %s\n", file_citadel_control, strerror(errno)); return; } rewind(control_fp); - fread(&CitControl, sizeof(struct CitControl), 1, control_fp); + rv = fread(&CitControl, sizeof(struct CitControl), 1, control_fp); already_have_control = 1; - chown(file_citadel_control, config.c_ctdluid, (-1)); + rv = chown(file_citadel_control, config.c_ctdluid, (-1)); } @@ -200,11 +214,11 @@ void get_control(void) */ void put_control(void) { + int rv = 0; if (control_fp != NULL) { rewind(control_fp); - fwrite(&CitControl, sizeof(struct CitControl), 1, - control_fp); + rv = fwrite(&CitControl, sizeof(struct CitControl), 1, control_fp); fflush(control_fp); } } @@ -389,7 +403,6 @@ void cmd_conf(char *argbuf) cprintf("%ld\n", config.c_pop3_fetch); cprintf("%ld\n", config.c_pop3_fastest); cprintf("%d\n", config.c_spam_flag_only); - cprintf("%d\n", config.c_xmpps_c2s_port); cprintf("000\n"); } @@ -646,9 +659,6 @@ void cmd_conf(char *argbuf) case 66: config.c_spam_flag_only = atoi(buf); break; - case 67: - config.c_xmpps_c2s_port = atoi(buf); - break; } ++a; } @@ -700,3 +710,16 @@ void cmd_conf(char *argbuf) ERROR + ILLEGAL_VALUE); } } + + +/*****************************************************************************/ +/* MODULE INITIALIZATION STUFF */ +/*****************************************************************************/ + + +CTDL_MODULE_INIT(control) +{ + CtdlRegisterProtoHook(cmd_conf, "CONF", "Autoconverted. TODO: document me."); + /* return our Subversion id for the Log */ + return "$Id$"; +}