1 /***************************************************************************** 2 3 POPular -- A POP3 server and proxy for large mail systems 4 5 $Id: ctrl.h,v 1.10 2002/11/28 13:56:03 sqrt Exp $ 6 7 http://www.remote.org/jochen/mail/popular/ 8 9 ****************************************************************************** 10 11 Copyright (C) 1999-2001 Jochen Topf <jochen@remote.org> 12 13 This program is free software; you can redistribute it and/or modify 14 it under the terms of the GNU General Public License as published by 15 the Free Software Foundation; either version 2 of the License, or 16 (at your option) any later version. 17 18 This program is distributed in the hope that it will be useful, 19 but WITHOUT ANY WARRANTY; without even the implied warranty of 20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 GNU General Public License for more details. 22 23 You should have received a copy of the GNU General Public License 24 along with this program; if not, write to the Free Software 25 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA 26 27 *****************************************************************************/ 28 29 30 struct ctrl_cmd_dispatch_table { 31 char *cmd_name; 32 void (*cmd_handler)(char **, int, char*); 33 int minarg, maxarg; 34 }; 35 36 37 void control_command(int sock); 38 39 void init_config_vars(void); 40 void ctrl_cmd_backend(char *argv[], int argc, char *answer); 41 void ctrl_cmd_capa(char *argv[], int argc, char *answer); 42 void ctrl_cmd_debug(char *argv[], int argc, char *answer); 43 void ctrl_cmd_pdm(char *argv[], int argc, char *answer); 44 void ctrl_cmd_server(char *argv[], int argc, char *answer); 45 void ctrl_cmd_set(char *argv[], int argc, char *answer); 46 void ctrl_cmd_show(char *argv[], int argc, char *answer); 47 void ctrl_cmd_shutdown(char *argv[], int argc, char *answer); 48 void ctrl_cmd_vserv(char *argv[], int argc, char *answer); 49 void ctrl_cmd_prng(char *argv[], int argc, char *answer); 50 51 52 #define ANSWER0(t) { (void) strlcpy(answer, (t), MAXBUF); return; } 53 54 /* This doesn't work in older gccs :-( 55 #define ANSWERX(t, ...) { (void) snprintf(answer, MAXBUF, (t), __VA_ARGS__); return; } 56 */ 57 58 #define ANSWER1(t, a1) { (void) snprintf(answer, MAXBUF, (t), (a1)); return; } 59 60 #define ANSWER2(t, a1, a2) { (void) snprintf(answer, MAXBUF, (t), (a1), (a2)); return; } 61 62 63 /** THE END *****************************************************************/ 64