Author: Kev <klmitch@mit.edu>
authorKevin L. Mitchell <klmitch@mit.edu>
Mon, 12 Feb 2001 18:47:45 +0000 (18:47 +0000)
committerKevin L. Mitchell <klmitch@mit.edu>
Mon, 12 Feb 2001 18:47:45 +0000 (18:47 +0000)
commit66190a22678bf071de49851353b7c89c519f1a67
tree80006a028c1d1f7a3cbc0db9d128bc3d8389df67
parent38e7be8ec06f41e1de3745a87b0da6bbdd0f3f93
Author: Kev <klmitch@mit.edu>
Log message:

Fix G-line bugs reguarding U-lined servers that Maniac- pointed out; fix a
bug in /list

1) If a new server signed on and a U-lined server re-issued a G-line,
   intermediate servers would not pass on that message.  Logic has been
   added to detect that it's a re-issued G-line, and the existing G-line is
   repropagated.  Note that the expire time used is the time we think the
   G-line has left, not what the U-lined server tells us.
2) If a U-lined server attempted to revoke a G-line, and we didn't have
   that G-line, not only would we ignore the message, we would fail to
   propagate it and return a "not enough parameters" reply.  Corrected by
   manually repropagating the G-line removal.
3) If a U-lined server attempted to add (or update, or re-issue) a G-line
   we knew about, that G-line's lastmod time would be updated, causing us
   to no longer consider the G-line as having been issued by a U-lined
   server.  This causes promotions we don't want occuring.  Corrected by
   prohibiting lastmod updates when the existing lastmod is 0.
4) The /list command would not deal properly with "LIST #channel", but
   would do the right thing if we did "LIST #channel <anything else>".
   This was just a logic inversion problem--I said "parc != 2" when I meant
   "parc == 2".

Testing:

The /list command now works correctly.  G-lines issued by U-lined servers
are doing the right thing.  I have not checked that G-lines issued by opers
are still working correctly, so this needs to be checked.  Also, all forms
of local G-line need to be double-checked.

git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@384 c9e4aea6-c8fd-4c43-8297-357d70d61c8c
ChangeLog
include/gline.h
ircd/gline.c
ircd/m_gline.c
ircd/m_list.c