projects
/
ircu2.10.12-pk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add '6' to server options when compiled with IPv6 support (and related
[ircu2.10.12-pk.git]
/
ircd
/
ircd_parser.y
diff --git
a/ircd/ircd_parser.y
b/ircd/ircd_parser.y
index 2bba81662e85bbd27a11c82cf3f33590a4f26eb8..2937d92bd8afdb885377a2c01c7653853803f2eb 100644
(file)
--- a/
ircd/ircd_parser.y
+++ b/
ircd/ircd_parser.y
@@
-652,7
+652,7
@@
clientblock: CLIENT
'{' clientitems '}' ';'
{
struct irc_in_addr addr;
'{' clientitems '}' ';'
{
struct irc_in_addr addr;
- unsigned char addrbits;
+ unsigned char addrbits
= 0
;
if (ip && !ipmask_parse(ip, &addr, &addrbits)) {
parse_error("Invalid IP address in block");
if (ip && !ipmask_parse(ip, &addr, &addrbits)) {
parse_error("Invalid IP address in block");
@@
-663,7
+663,10
@@
clientblock: CLIENT
struct ConfItem *aconf = make_conf(CONF_CLIENT);
aconf->username = username;
aconf->host = host;
struct ConfItem *aconf = make_conf(CONF_CLIENT);
aconf->username = username;
aconf->host = host;
- memcpy(&aconf->address.addr, &addr, sizeof(aconf->address.addr));
+ if (ip)
+ memcpy(&aconf->address.addr, &addr, sizeof(aconf->address.addr));
+ else
+ memset(&aconf->address.addr, 0, sizeof(aconf->address.addr));
aconf->addrbits = addrbits;
aconf->name = ip;
aconf->conn_class = c_class ? c_class : find_class("default");
aconf->addrbits = addrbits;
aconf->name = ip;
aconf->conn_class = c_class ? c_class : find_class("default");