mirror of
https://github.com/osmarks/ngircd.git
synced 2024-12-12 09:50:29 +00:00
Merge branch 'bug165-005-NETWORK' of git://arthur.barton.de/ngircd-alex
* 'bug165-005-NETWORK' of git://arthur.barton.de/ngircd-alex: Implement new configuration option "Network"
This commit is contained in:
commit
61b7932e82
@ -54,6 +54,12 @@
|
||||
# A simple Phrase (<256 chars) if you don't want to use a motd file.
|
||||
;MotdPhrase = "Hello world!"
|
||||
|
||||
# The name of the IRC network to which this server belongs. This name
|
||||
# is optional, should only contain ASCII characters, and can't contain
|
||||
# spaces. It is only used to inform clients. The default is empty,
|
||||
# so no network name is announced to clients.
|
||||
;Network = aIRCnetwork
|
||||
|
||||
# Global password for all users needed to connect to the server.
|
||||
# (Default: not set)
|
||||
;Password = abc
|
||||
|
@ -126,6 +126,12 @@ configuration file.
|
||||
\fBMotdPhrase\fR (string)
|
||||
A simple Phrase (<256 chars) if you don't want to use a MOTD file.
|
||||
.TP
|
||||
\fBNetwork\fR (string)
|
||||
The name of the IRC network to which this server belongs. This name is
|
||||
optional, should only contain ASCII characters, and can't contain spaces.
|
||||
It is only used to inform clients. The default is empty, so no network
|
||||
name is announced to clients.
|
||||
.TP
|
||||
\fBPassword\fR (string)
|
||||
Global password for all users needed to connect to the server. The default is
|
||||
empty, so no password is required. Please note: This feature is not available
|
||||
|
@ -369,6 +369,7 @@ Conf_Test( void )
|
||||
printf(" MotdPhrase = %s\n", array_bytes(&Conf_Motd)
|
||||
? (const char*) array_start(&Conf_Motd) : "");
|
||||
}
|
||||
printf(" Network = %s\n", Conf_Network);
|
||||
#ifndef PAM
|
||||
printf(" Password = %s\n", Conf_ServerPwd);
|
||||
#endif
|
||||
@ -749,6 +750,7 @@ Set_Defaults(bool InitServers)
|
||||
strcpy(Conf_ServerAdminMail, "");
|
||||
snprintf(Conf_ServerInfo, sizeof Conf_ServerInfo, "%s %s",
|
||||
PACKAGE_NAME, PACKAGE_VERSION);
|
||||
strcpy(Conf_Network, "");
|
||||
free(Conf_ListenAddress);
|
||||
Conf_ListenAddress = NULL;
|
||||
array_free(&Conf_ListenPorts);
|
||||
@ -1409,6 +1411,7 @@ Handle_GLOBAL(const char *File, int Line, char *Var, char *Arg )
|
||||
struct group *grp;
|
||||
size_t len;
|
||||
const char *section;
|
||||
char *ptr;
|
||||
|
||||
assert(File != NULL);
|
||||
assert(Line > 0);
|
||||
@ -1491,6 +1494,19 @@ Handle_GLOBAL(const char *File, int Line, char *Var, char *Arg )
|
||||
Using_MotdFile = false;
|
||||
return;
|
||||
}
|
||||
if (strcasecmp(Var, "Network") == 0) {
|
||||
len = strlcpy(Conf_Network, Arg, sizeof(Conf_Network));
|
||||
if (len >= sizeof(Conf_Network))
|
||||
Config_Error_TooLong(File, Line, Var);
|
||||
ptr = strchr(Conf_Network, ' ');
|
||||
if (ptr) {
|
||||
Config_Error(LOG_WARNING,
|
||||
"%s, line %d: \"Network\" can't contain spaces!",
|
||||
File, Line);
|
||||
*ptr = '\0';
|
||||
}
|
||||
return;
|
||||
}
|
||||
if(strcasecmp(Var, "Password") == 0) {
|
||||
len = strlcpy(Conf_ServerPwd, Arg, sizeof(Conf_ServerPwd));
|
||||
if (len >= sizeof(Conf_ServerPwd))
|
||||
|
@ -109,6 +109,9 @@ GLOBAL char Conf_ServerAdmin1[CLIENT_INFO_LEN];
|
||||
GLOBAL char Conf_ServerAdmin2[CLIENT_INFO_LEN];
|
||||
GLOBAL char Conf_ServerAdminMail[CLIENT_INFO_LEN];
|
||||
|
||||
/** Network name (optional, no spaces allowed) */
|
||||
GLOBAL char Conf_Network[CLIENT_INFO_LEN];
|
||||
|
||||
/** Message of the day (MOTD) of this server */
|
||||
GLOBAL array Conf_Motd;
|
||||
|
||||
|
@ -1539,6 +1539,10 @@ IRC_Send_NAMES(CLIENT * Client, CHANNEL * Chan)
|
||||
GLOBAL bool
|
||||
IRC_Send_ISUPPORT(CLIENT * Client)
|
||||
{
|
||||
if (Conf_Network[0] && !IRC_WriteStrClient(Client, RPL_ISUPPORTNET_MSG,
|
||||
Client_ID(Client),
|
||||
Conf_Network))
|
||||
return DISCONNECTED;
|
||||
if (!IRC_WriteStrClient(Client, RPL_ISUPPORT1_MSG, Client_ID(Client),
|
||||
CHANTYPES, CHANTYPES, Conf_MaxJoins))
|
||||
return DISCONNECTED;
|
||||
|
@ -21,6 +21,7 @@
|
||||
#define RPL_YOURHOST_MSG "002 %s :Your host is %s, running version ngircd-%s (%s/%s/%s)"
|
||||
#define RPL_CREATED_MSG "003 %s :This server has been started %s"
|
||||
#define RPL_MYINFO_MSG "004 %s %s ngircd-%s %s %s"
|
||||
#define RPL_ISUPPORTNET_MSG "005 %s NETWORK=%s :is my network name"
|
||||
#define RPL_ISUPPORT1_MSG "005 %s RFC2812 IRCD=ngIRCd CHARSET=UTF-8 CASEMAPPING=ascii PREFIX=(qaohv)~&@%%+ CHANTYPES=%s CHANMODES=beI,k,l,imMnOPQRstVz CHANLIMIT=%s:%d :are supported on this server"
|
||||
#define RPL_ISUPPORT2_MSG "005 %s CHANNELLEN=%d NICKLEN=%d TOPICLEN=%d AWAYLEN=%d KICKLEN=%d MODES=%d MAXLIST=beI:%d EXCEPTS=e INVEX=I PENALTY :are supported on this server"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user