# Adds a Netmask
#
def add_netmask(mask)
- m = mask.to_irc_netmask
+ m = mask.to_irc_netmask(:server => nil,:force => true)
@netmasks << m
if self.autologin?
Auth.manager.maskdb.add(self, m)
h = {}
h[:server] = @server if defined?(@server) and @server
h[:casemap] = @casemap if defined?(@casemap) and @casemap
+ h[:casemap] ||= @server.casemap if defined?(@server) and @server
return h
end
# Subclasses of Netmask will return a new Netmask, using full_downcase
#
def to_irc_netmask(opts={})
- if self.class == Netmask
+ if self.class == Netmask and not opts[:force]
return self if fits_with_server_and_casemap?(opts)
end
return self.full_downcase.to_irc_netmask(server_and_casemap.merge(opts))