ConfigFileEntry.default_operstring = NULL;
ConfigFileEntry.default_adminstring = NULL;
ConfigFileEntry.servicestring = NULL;
+ ConfigFileEntry.sasl_service = NULL;
ConfigFileEntry.default_umodes = UMODE_INVISIBLE;
ConfigFileEntry.failed_oper_notice = YES;
if (ConfigFileEntry.servicestring == NULL)
ConfigFileEntry.servicestring = rb_strdup("is a Network Service");
+ if (ConfigFileEntry.sasl_service == NULL)
+ ConfigFileEntry.sasl_service = rb_strdup("SaslServ");
+
/* RFC 1459 says 1 message per 2 seconds on average and bursts of
* 5 messages are acceptable, so allow at least that.
*/
}
void
-deactivate_conf(struct ConfItem *aconf, rb_dlink_node *ptr)
+deactivate_conf(struct ConfItem *aconf, rb_dlink_node *ptr, time_t now)
{
int i;
del_from_resv_hash(aconf->host, aconf);
break;
}
- if (aconf->lifetime != 0 && rb_current_time() < aconf->lifetime)
+ if (aconf->lifetime != 0 && now < aconf->lifetime)
aconf->status |= CONF_ILLEGAL;
else
{
aconf->lifetime = aconf->hold;
/* Tell deactivate_conf() to destroy it. */
oldconf->lifetime = rb_current_time();
- deactivate_conf(oldconf, ptr);
+ deactivate_conf(oldconf, ptr, oldconf->lifetime);
}
}
rb_dlink_node *ptr;
rb_dlink_node *next_ptr;
struct ConfItem *aconf;
+ time_t now;
+ now = rb_current_time();
RB_DLINK_FOREACH_SAFE(ptr, next_ptr, ((rb_dlink_list *) list)->head)
{
aconf = ptr->data;
- if(aconf->lifetime <= rb_current_time() ||
- (aconf->hold <= rb_current_time() &&
+ if(aconf->lifetime <= now ||
+ (aconf->hold <= now &&
!(aconf->status & CONF_ILLEGAL)))
{
/* Alert opers that a TKline expired - Hwy */
aconf->host ? aconf->host : "*");
/* will destroy or mark illegal */
- deactivate_conf(aconf, ptr);
+ deactivate_conf(aconf, ptr, now);
}
}
}
ConfigFileEntry.servicestring = NULL;
rb_free(ConfigFileEntry.kline_reason);
ConfigFileEntry.kline_reason = NULL;
+ rb_free(ConfigFileEntry.sasl_service);
+ ConfigFileEntry.sasl_service = NULL;
/* clean out log */
rb_free(ConfigFileEntry.fname_userlog);