mirror of
https://github.com/osmarks/ngircd.git
synced 2024-12-12 09:50:29 +00:00
Implement new configuration option "HelpFile"
This new configuration option allows to specify a specially formatted text file which can be used by the HELP command to provide information about the commands and their syntaxes.
This commit is contained in:
parent
588af510a3
commit
f68aa02272
@ -54,6 +54,7 @@ static CONF_SERVER New_Server;
|
|||||||
static int New_Server_Idx;
|
static int New_Server_Idx;
|
||||||
|
|
||||||
static char Conf_MotdFile[FNAME_LEN];
|
static char Conf_MotdFile[FNAME_LEN];
|
||||||
|
static char Conf_HelpFile[FNAME_LEN];
|
||||||
|
|
||||||
static void Set_Defaults PARAMS(( bool InitServers ));
|
static void Set_Defaults PARAMS(( bool InitServers ));
|
||||||
static bool Read_Config PARAMS(( bool TestOnly, bool IsStarting ));
|
static bool Read_Config PARAMS(( bool TestOnly, bool IsStarting ));
|
||||||
@ -316,6 +317,7 @@ Conf_Test( void )
|
|||||||
printf(" AdminInfo1 = %s\n", Conf_ServerAdmin1);
|
printf(" AdminInfo1 = %s\n", Conf_ServerAdmin1);
|
||||||
printf(" AdminInfo2 = %s\n", Conf_ServerAdmin2);
|
printf(" AdminInfo2 = %s\n", Conf_ServerAdmin2);
|
||||||
printf(" AdminEMail = %s\n", Conf_ServerAdminMail);
|
printf(" AdminEMail = %s\n", Conf_ServerAdminMail);
|
||||||
|
printf(" HelpFile = %s\n", Conf_HelpFile);
|
||||||
printf(" Info = %s\n", Conf_ServerInfo);
|
printf(" Info = %s\n", Conf_ServerInfo);
|
||||||
printf(" Listen = %s\n", Conf_ListenAddress);
|
printf(" Listen = %s\n", Conf_ListenAddress);
|
||||||
if (Using_MotdFile) {
|
if (Using_MotdFile) {
|
||||||
@ -701,8 +703,11 @@ Set_Defaults(bool InitServers)
|
|||||||
Conf_ListenAddress = NULL;
|
Conf_ListenAddress = NULL;
|
||||||
array_free(&Conf_ListenPorts);
|
array_free(&Conf_ListenPorts);
|
||||||
array_free(&Conf_Motd);
|
array_free(&Conf_Motd);
|
||||||
|
array_free(&Conf_Helptext);
|
||||||
strlcpy(Conf_MotdFile, SYSCONFDIR, sizeof(Conf_MotdFile));
|
strlcpy(Conf_MotdFile, SYSCONFDIR, sizeof(Conf_MotdFile));
|
||||||
strlcat(Conf_MotdFile, MOTD_FILE, sizeof(Conf_MotdFile));
|
strlcat(Conf_MotdFile, MOTD_FILE, sizeof(Conf_MotdFile));
|
||||||
|
strlcpy(Conf_HelpFile, SYSCONFDIR, sizeof(Conf_HelpFile));
|
||||||
|
strlcat(Conf_HelpFile, HELP_FILE, sizeof(Conf_HelpFile));
|
||||||
strcpy(Conf_ServerPwd, "");
|
strcpy(Conf_ServerPwd, "");
|
||||||
strlcpy(Conf_PidFile, PID_FILE, sizeof(Conf_PidFile));
|
strlcpy(Conf_PidFile, PID_FILE, sizeof(Conf_PidFile));
|
||||||
Conf_UID = Conf_GID = 0;
|
Conf_UID = Conf_GID = 0;
|
||||||
@ -1047,6 +1052,12 @@ Read_Config(bool TestOnly, bool IsStarting)
|
|||||||
Using_MotdFile = true;
|
Using_MotdFile = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Try to read ngIRCd help text file. */
|
||||||
|
(void)Read_TextFile(Conf_HelpFile, "help text", &Conf_Helptext);
|
||||||
|
if (!array_bytes(&Conf_Helptext))
|
||||||
|
Config_Error(LOG_WARNING,
|
||||||
|
"No help text available, HELP command will be of limited use.");
|
||||||
|
|
||||||
#ifdef SSL_SUPPORT
|
#ifdef SSL_SUPPORT
|
||||||
/* Make sure that all SSL-related files are readable */
|
/* Make sure that all SSL-related files are readable */
|
||||||
CheckFileReadable("CertFile", Conf_SSLOptions.CertFile);
|
CheckFileReadable("CertFile", Conf_SSLOptions.CertFile);
|
||||||
@ -1312,6 +1323,12 @@ Handle_GLOBAL( int Line, char *Var, char *Arg )
|
|||||||
Config_Error_TooLong(Line, Var);
|
Config_Error_TooLong(Line, Var);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (strcasecmp(Var, "HelpFile") == 0) {
|
||||||
|
len = strlcpy(Conf_HelpFile, Arg, sizeof(Conf_HelpFile));
|
||||||
|
if (len >= sizeof(Conf_HelpFile))
|
||||||
|
Config_Error_TooLong(Line, Var);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (strcasecmp(Var, "Listen") == 0) {
|
if (strcasecmp(Var, "Listen") == 0) {
|
||||||
if (Conf_ListenAddress) {
|
if (Conf_ListenAddress) {
|
||||||
Config_Error(LOG_ERR,
|
Config_Error(LOG_ERR,
|
||||||
|
@ -111,6 +111,9 @@ GLOBAL char Conf_ServerAdminMail[CLIENT_INFO_LEN];
|
|||||||
/** Message of the day (MOTD) of this server */
|
/** Message of the day (MOTD) of this server */
|
||||||
GLOBAL array Conf_Motd;
|
GLOBAL array Conf_Motd;
|
||||||
|
|
||||||
|
/** Help text of this server */
|
||||||
|
GLOBAL array Conf_Helptext;
|
||||||
|
|
||||||
/** Array of ports this server should listen on */
|
/** Array of ports this server should listen on */
|
||||||
GLOBAL array Conf_ListenPorts;
|
GLOBAL array Conf_ListenPorts;
|
||||||
|
|
||||||
|
@ -77,6 +77,9 @@
|
|||||||
/** Name of the MOTD file. */
|
/** Name of the MOTD file. */
|
||||||
#define MOTD_FILE "/ngircd.motd"
|
#define MOTD_FILE "/ngircd.motd"
|
||||||
|
|
||||||
|
/** Name of the help file. */
|
||||||
|
#define HELP_FILE "/ngircd.help"
|
||||||
|
|
||||||
/** Default chroot() directory. */
|
/** Default chroot() directory. */
|
||||||
#define CHROOT_DIR ""
|
#define CHROOT_DIR ""
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user