/* commands.h -- All eurephiadm commands are declared here * The function is found in the ./commands dir * where each command have their own file * * GPLv2 only - Copyright (C) 2008, 2009 * David Sommerseth * * 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; version 2 * of the License. * * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ #ifndef EUREPHIADM_COMMANDS_H_ # define EUREPHIADM_COMMANDS_H_ /* struct used for definition of commands, help info and function pointers to the command */ typedef struct { char *command; int need_session; char *accesslvl; char *arghint; char *helpinfo; void (*helpfunc)(void); int (*function)(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *, int argc, char **argv); } eurephiadm_functions; /* eurephiadm commands, found in eurephiadm.c */ void help_Help(); int cmd_Help(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *cfg, int argc, char **argv); int cmd_Logout(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *cfg, int argc, char **argv); int cmd_ShowCfg(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *cfg, int argc, char **argv); /* Commands and help functions listed here are found in ./commands/{command}.c files - one file per command*/ void help_Users(); int cmd_Users(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *cfg, int argc, char **argv); void help_Lastlog(); int cmd_Lastlog(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *cfg, int argc, char **argv); void help_Certificates(); int cmd_Certificates(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *cfg, int argc, char **argv); void help_UserCerts(); int cmd_UserCerts(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *cfg, int argc, char **argv); void help_fwAdmin(); int cmd_fwAdmin(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *cfg, int argc, char **argv); void help_AdminAccess(); int cmd_AdminAccess(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *cfg, int argc, char **argv); void help_EditConfig(); int cmd_EditConfig(eurephiaCTX *, eurephiaSESSION *, eurephiaVALUES *cfg, int argc, char **argv); /* Declaration of all commands */ static const eurephiadm_functions cmdline_functions[] = { // {command, need_session, acclvl, arghints, // helpinfo, helpdescr, function} {"help", 0, NULL, "[]", "This help screen", help_Help, cmd_Help}, {"logout", 1, NULL, NULL, // Logout is specially handled - change with care "Logout from an open session", NULL, cmd_Logout}, {"users", 1, "useradmin", "-l", "User management", help_Users, cmd_Users}, {"lastlog", 1, "useradmin", NULL, "Query the eurephia lastlog", help_Lastlog, cmd_Lastlog}, {"certs", 1, "certadmin", NULL, "Certificate management", help_Certificates, cmd_Certificates}, {"usercerts", 1, "useradmin", NULL, "User account/Certificate link management", help_UserCerts, cmd_UserCerts}, {"fwadmin", 1, "fwadmin", NULL, "Firewall access management", help_fwAdmin, cmd_fwAdmin}, {"adminaccess", 1, "useradmin", NULL, "User account access levels (admin)", help_AdminAccess, cmd_AdminAccess}, {"show-config", 1, "config", NULL, "List all config settings", NULL, cmd_ShowCfg}, {"show-configfile", 0, NULL, NULL, "List only config file settings", NULL, cmd_ShowCfg}, {"config", 1, "config", "[-s|-d] [] | [-l]", "Add, delete or show one config setting", help_EditConfig, cmd_EditConfig}, // End of records marker {NULL, 0, NULL, NULL, NULL, NULL, NULL} }; #endif /* !COMMANDS_H_ */