/* Copyright (C) 2008 Andreas Baumann 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, see . */ #ifndef WOLF_MESSAGES_H #define WOLF_MESSAGES_H /** * @addtogroup wolf_i18n Localization * @{ */ /** * @file messages.h * @brief Global Message Identifiers and Category Identifiers used for logging * @author Andreas Baumann */ /* IMPORTANT: Think once and define the constants here. They should * NEVER be changed anymore! * IMPORTANT: Mark deprecated messages and categories, but don't * delete them! Maybe after a major release cycle they * can drop out.. */ /* * CATEGORIES */ /* * Categories should represent aspects or subsystems, e.g. networking, * logging, protocol. The constants must be system-wide unique and * strictly increasing starting from 1 (this is a requirement for * the event logger on Windows and it's definition of category * resources in the DLL). */ #define WOLF_CATEGORY_LOGGER 1 #define WOLF_CATEGORY_DAEMON 2 #define WOLF_CATEGORY_SERVICE 3 /** * Last internally used category. Applications should define their * own categories starting from WOLF_LAST_INTERNAL_CATEGORY+1. */ #define WOLF_LAST_INTERNAL_CATEGORY 3 /* * MESSAGES of category LOGGER */ #define WOLF_MSG_LOGGER_BASE WOLF_CATEGORY_LOGGER * 1000 #define WOLF_MSG_LOGGER_UNABLE_TO_OPEN_LOGFILE WOLF_MSG_LOGGER_BASE+1 /* for users which extend the logger, for instance their own logging channel to a serial console */ #define WOLF_MSG_LOGGER_USER_BASE WOLF_MSG_LOGGER_BASE+500 /* * MESSAGES of category DAEMON */ #define WOLF_MSG_DAEMON_BASE WOLF_CATEGORY_DAEMON * 1000 /* daemon/signals.c */ #define WOLF_MSG_DAEMON_CANT_INSTALL_IGNORE_SIGNAL WOLF_MSG_DAEMON_BASE+1 #define WOLF_MSG_DAEMON_IGNORE_SIGNAL WOLF_MSG_DAEMON_BASE+2 #define WOLF_MSG_DAEMON_CANT_INSTALL_CRITICAL_SIGNAL WOLF_MSG_DAEMON_BASE+3 #define WOLF_MSG_DAEMON_CRITICAL_SIGNAL WOLF_MSG_DAEMON_BASE+4 #define WOLF_MSG_DAEMON_GOT_SIGNAL WOLF_MSG_DAEMON_BASE+5 #define WOLF_MSG_DAEMON_CANT_INSTALL_FUNC_SIGNAL WOLF_MSG_DAEMON_BASE+6 #define WOLF_MSG_DAEMON_FUNC_SIGNAL WOLF_MSG_DAEMON_BASE+7 /* daemon/pidfile.c */ #define WOLF_MSG_DAEMON_NO_PIDFILE WOLF_MSG_DAEMON_BASE+20 #define WOLF_MSG_DAEMON_CANT_OPEN_PIDFILE_FOR_READING WOLF_MSG_DAEMON_BASE+21 #define WOLF_MSG_DAEMON_CANT_OPEN_PIDFILE_FOR_WRITTING WOLF_MSG_DAEMON_BASE+22 #define WOLF_MSG_DAEMON_ANOTHER_IS_RUNNING WOLF_MSG_DAEMON_BASE+23 #define WOLF_MSG_DAEMON_CANT_LOCK_PIDFILE WOLF_MSG_DAEMON_BASE+24 #define WOLF_MSG_DAEMON_CANT_READ_PID_FROM_PIDFILE WOLF_MSG_DAEMON_BASE+25 #define WOLF_MSG_DAEMON_PIDFILE_WITH_ILLEGAL_DATA WOLF_MSG_DAEMON_BASE+26 #define WOLF_MSG_DAEMON_FOUND_PID_IN_PIDFILE WOLF_MSG_DAEMON_BASE+27 #define WOLF_MSG_DAEMON_FOUND_PID_BUT_NO_PROCESS_RUNNING WOLF_MSG_DAEMON_BASE+28 #define WOLF_MSG_DAEMON_PROCESS_ALIVE_CHECK_FAILED WOLF_MSG_DAEMON_BASE+29 #define WOLF_MSG_DAEMON_ALREADY_RUNNING_WITH_PID WOLF_MSG_DAEMON_BASE+30 #define WOLF_MSG_DAEMON_PIDFILE_IN_USE WOLF_MSG_DAEMON_BASE+31 #define WOLF_MSG_DAEMON_CANT_LOCK_PIDFILE_AFTER_CREATION WOLF_MSG_DAEMON_BASE+32 #define WOLF_MSG_DAEMON_CANT_TRUNCATE_PIDFILE WOLF_MSG_DAEMON_BASE+33 #define WOLF_MSG_DAEMON_CANT_WRITE_PID_INTO_PIDFILE WOLF_MSG_DAEMON_BASE+34 #define WOLF_MSG_DAEMON_ATOMIC_PIDFILE_WRITE_FAILED WOLF_MSG_DAEMON_BASE+35 #define WOLF_MSG_DAEMON_STORED_PIDFILE WOLF_MSG_DAEMON_BASE+36 #define WOLF_MSG_DAEMON_RELEASING_PIDFILE WOLF_MSG_DAEMON_BASE+37 #define WOLF_MSG_DAEMON_CANT_UNLOCK_PIDFILE WOLF_MSG_DAEMON_BASE+38 #define WOLF_MSG_DAEMON_CANT_CLOSE_PIDFILE WOLF_MSG_DAEMON_BASE+39 #define WOLF_MSG_DAEMON_REMOVING_PIDFILE WOLF_MSG_DAEMON_BASE+40 #define WOLF_MSG_DAEMON_CANT_REMOVE_PIDFILE WOLF_MSG_DAEMON_BASE+41 /* daemon/daemon.c */ #define WOLF_MSG_DAEMON_CANT_CLOSE_FD WOLF_MSG_DAEMON_BASE+60 #define WOLF_MSG_DAEMON_RETRIEVING_MAXNOFFDS_FAILED WOLF_MSG_DAEMON_BASE+61 #define WOLF_MSG_DAEMON_CLOSING_ALL_FDS WOLF_MSG_DAEMON_BASE+62 #define WOLF_MSG_DAEMON_CANT_OPEN_FD_AS_DEV_NULL WOLF_MSG_DAEMON_BASE+63 #define WOLF_MSG_DAEMON_FD_NUMBERS_WRONG WOLF_MSG_DAEMON_BASE+64 #define WOLF_MSG_DAEMON_PIPE_ATOMIC_WRITE_FAILED WOLF_MSG_DAEMON_BASE+65 #define WOLF_MSG_DAEMON_PIPE_ATOMIC_WRITE_WRONG_OCTETS WOLF_MSG_DAEMON_BASE+66 #define WOLF_MSG_DAEMON_PIPE_ATOMIC_READ_FAILED WOLF_MSG_DAEMON_BASE+67 #define WOLF_MSG_DAEMON_PIPE_ATOMIC_READ_WRONG_OCTETS WOLF_MSG_DAEMON_BASE+68 #define WOLF_MSG_DAEMON_ALREADY_RUNNING WOLF_MSG_DAEMON_BASE+69 #define WOLF_MSG_DAEMON_CANT_START_AS_NON_ROOT WOLF_MSG_DAEMON_BASE+70 #define WOLF_MSG_DAEMON_CANT_CREATE_EXIT_CODE_PIPE WOLF_MSG_DAEMON_BASE+71 #define WOLF_MSG_DAEMON_EXIT_CODE_PIPE_CREATED WOLF_MSG_DAEMON_BASE+72 #define WOLF_MSG_DAEMON_FIRST_FORK_FAILED WOLF_MSG_DAEMON_BASE+73 #define WOLF_MSG_DAEMON_FIRST_FORK_REACHED WOLF_MSG_DAEMON_BASE+74 #define WOLF_MSG_DAEMON_PARENT_AFTER_FIRST_FORK WOLF_MSG_DAEMON_BASE+75 #define WOLF_MSG_DAEMON_CANT_CREATE_PARENT_PIPE WOLF_MSG_DAEMON_BASE+76 #define WOLF_MSG_DAEMON_PARENT_PIPE_CREATED WOLF_MSG_DAEMON_BASE+77 #define WOLF_MSG_DAEMON_CANT_SET_NEW_PROCESS_GROUP WOLF_MSG_DAEMON_BASE+78 #define WOLF_MSG_DAEMON_SECOND_FORK_FAILED WOLF_MSG_DAEMON_BASE+79 #define WOLF_MSG_DAEMON_SECOND_FORK_REACHED WOLF_MSG_DAEMON_BASE+80 #define WOLF_MSG_DAEMON_PARENT_AFTER_SECOND_FORK WOLF_MSG_DAEMON_BASE+81 #define WOLF_MSG_DAEMON_CANT_CHANGE_ROOT_DIR WOLF_MSG_DAEMON_BASE+82 #define WOLF_MSG_DAEMON_CHANGED_ROOT_DIR WOLF_MSG_DAEMON_BASE+83 #define WOLF_MSG_DAEMON_SWITCHED_UMASK WOLF_MSG_DAEMON_BASE+84 #define WOLF_MSG_DAEMON_DAEMON_ALREADY_RUNNING_WITH_PID WOLF_MSG_DAEMON_BASE+85 #define WOLF_MSG_DAEMON_SWITCHED_UMASK_FINAL WOLF_MSG_DAEMON_BASE+86 #define WOLF_MSG_DAEMON_GROUP_NOT_FOUND WOLF_MSG_DAEMON_BASE+87 #define WOLF_MSG_DAEMON_GETGRNAM_FAILED WOLF_MSG_DAEMON_BASE+88 #define WOLF_MSG_DAEMON_USER_NOT_FOUND WOLF_MSG_DAEMON_BASE+89 #define WOLF_MSG_DAEMON_GETPWNAM_FAILED WOLF_MSG_DAEMON_BASE+90 #define WOLF_MSG_DAEMON_SETTING_UNPRIVILEGED_GROUP_FAILED WOLF_MSG_DAEMON_BASE+91 #define WOLF_MSG_DAEMON_SETTING_UNPRIVILEGED_USER_FAILED WOLF_MSG_DAEMON_BASE+92 #define WOLF_MSG_DAEMON_SWITCHED_USER WOLF_MSG_DAEMON_BASE+93 #define WOLF_MSG_DAEMON_EXIT_CALLED WOLF_MSG_DAEMON_BASE+94 #define WOLF_MSG_DAEMON_WAITING_FOR_EXIT_CODE_ON_PIPE WOLF_MSG_DAEMON_BASE+95 #define WOLF_MSG_DAEMON_TERMINATING_GRAND_PARENT WOLF_MSG_DAEMON_BASE+96 #define WOLF_MSG_DAEMON_WAITING_FOR_TERMINATION WOLF_MSG_DAEMON_BASE+97 #define WOLF_MSG_DAEMON_PARENT_GOT_TERMINATION WOLF_MSG_DAEMON_BASE+98 #define WOLF_MSG_DAEMON_TERMINATING_PARENT WOLF_MSG_DAEMON_BASE+99 #define WOLF_MSG_DAEMON_TERMINATING_DAEMON_OK WOLF_MSG_DAEMON_BASE+100 #define WOLF_MSG_DAEMON_TERMINATING_DAEMON_ERROR WOLF_MSG_DAEMON_BASE+101 #define WOLF_MSG_DAEMON_CANT_CREATE_SIGNAL_PIPE WOLF_MSG_DAEMON_BASE+102 #define WOLF_MSG_DAEMON_SIGNAL_PIPE_CREATED WOLF_MSG_DAEMON_BASE+103 #define WOLF_MSG_DAEMON_SELECT_FAILED_WAITING_FOR_SIGNAL WOLF_MSG_DAEMON_BASE+104 #define WOLF_MSG_DAEMON_CANT_READ_SIGNAL_FROM_PIPE WOLF_MSG_DAEMON_BASE+105 #define WOLF_MSG_DAEMON_NON_ATOMIC_READ_ON_SIGNAL_PIPE WOLF_MSG_DAEMON_BASE+106 #define WOLF_MSG_DAEMON_CANT_SET_NEW_PROCESS_GROUP_PARENT WOLF_MSG_DAEMON_BASE+107 /* for users which extend the daemon, for instance when writting a real daemon */ #define WOLF_MSG_DAEMON_USER_BASE WOLF_MSG_DAEMON_BASE+500 /* * MESSAGES of category SERVICE */ #define WOLF_MSG_SERVICE_BASE WOLF_CATEGORY_SERVICE * 1000 /* service/service.c */ #define WOLF_MSG_SERVICE_INSTALLING_SERVICE WOLF_MSG_SERVICE_BASE+1 #define WOLF_MSG_SERVICE_CANT_OPEN_SCM_FOR_INSTALL WOLF_MSG_SERVICE_BASE+2 #define WOLF_MSG_SERVICE_CANT_GET_PATH_OF_BINARY WOLF_MSG_SERVICE_BASE+3 #define WOLF_MSG_SERVICE_CANT_CREATE_SERVICE WOLF_MSG_SERVICE_BASE+4 #define WOLF_MSG_SERVICE_SERVICE_INSTALLED WOLF_MSG_SERVICE_BASE+5 #define WOLF_MSG_SERVICE_UNINSTALLING_SERVICE WOLF_MSG_SERVICE_BASE+6 #define WOLF_MSG_SERVICE_CANT_OPEN_SCM_FOR_UNINSTALL WOLF_MSG_SERVICE_BASE+7 #define WOLF_MSG_SERVICE_CANT_OPEN_SERVICE WOLF_MSG_SERVICE_BASE+8 #define WOLF_MSG_SERVICE_CANT_DELETE_SERVICE WOLF_MSG_SERVICE_BASE+9 #define WOLF_MSG_SERVICE_SERVICE_UNINSTALLED WOLF_MSG_SERVICE_BASE+10 #define WOLF_MSG_SERVICE_REPORT_STATUS WOLF_MSG_SERVICE_BASE+11 #define WOLF_MSG_SERVICE_CANT_REPORT_STATUS WOLF_MSG_SERVICE_BASE+12 #define WOLF_MSG_SERVICE_HANDLING_EVENT WOLF_MSG_SERVICE_BASE+13 #define WOLF_MSG_SERVICE_CANT_REGISTER_SERVICE_CTRL_HANDLER WOLF_MSG_SERVICE_BASE+14 #define WOLF_MSG_SERVICE_CANT_CREATE_STOP_EVENT WOLF_MSG_SERVICE_BASE+15 #define WOLF_MSG_SERVICE_WAIT_FOR_OBJECT_FAILED WOLF_MSG_SERVICE_BASE+16 #define WOLF_MSG_SERVICE_CANT_DISPATCH_SERVICE WOLF_MSG_SERVICE_BASE+17 #define WOLF_MSG_SERVICE_CANT_REGISTER_CONSOLE_CTRL_HANDLER WOLF_MSG_SERVICE_BASE+18 #define WOLF_MSG_SERVICE_CONSOLE_CTRL_RECEIVED WOLF_MSG_SERVICE_BASE+19 #define WOLF_MSG_SERVICE_CANT_SET_SERVICE_DESCRIPTION WOLF_MSG_SERVICE_BASE+20 #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus } #endif /** @} */ /* @addtogroup wolf_i18n */ #endif /* ifndef WOLF_MESSAGES_H */