9266 Commits

Author SHA1 Message Date
w00t
349b6b9193 Rewrite BufferedSocket::BindAddr to actually make sense, and not infinite loop under some conditions, etc. This also splits a lot of it into DoBindMagic(), for readability.
Seems to work okay on an invalid bind and nonexistant bind.. Fixes bug #754, reported by HiroP and Indoril.

Fix FD leak in some circumstances: if bind fails hard (requested address couldn't be bound), Close() the socket. Also fixes a deficiency of the previous commit in that if one address failed to bind, the FD would be invalidated.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11189 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-09 18:51:07 +00:00
danieldg
63bdb9171f An FJOIN is not bursting unless the source server is bursting
Fixes bug #755

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11188 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-09 16:17:57 +00:00
danieldg
3ddb8accad Correctly fill LastParseParams on servermode. Fixes bug 763, thanks Ankit
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11187 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-09 13:38:45 +00:00
danieldg
a5baaeecf6 m_override: fix messages on multi-mode changes
This fixes bug 664

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11186 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-08 22:01:19 +00:00
danieldg
269f12c272 Fix +k for real
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11185 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-07 05:47:09 +00:00
danieldg
2d004034fe Let's try that +k fix again, this time with more testing
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11184 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-07 04:54:50 +00:00
danieldg
acb72fdf2d Remove some unneeded debug messages on the common case of FJOIN
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11183 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-07 02:45:10 +00:00
danieldg
1c33356677 Fix r11178 not allowing keys to be unset
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11182 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-07 02:45:02 +00:00
danieldg
96a4a1d41e Include explicit parameter list in ProtocolInterface::SendMode
Also leave the strings split into deque, there's no need to pack it into a
string just to unpack it during the translate.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11181 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-07 01:29:45 +00:00
danieldg
526f5a4a02 Construct explicit parameter type list for MODE parameters
Previously, we used TR_SPACENICKLIST on the parameters. This worked only because
usually, if anything in the list parsed as a nick, then it was a nick. However,
some modes like +k and +g allow free-form text, which could also resolve as a
nick. Add extra parameters to allow modes to specify their TranslateType,
defaulting to TR_TEXT.

This fixes bug #757, found by Taros

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11180 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-06 22:28:57 +00:00
danieldg
eacd707421 Send SVSNICKs during nick collision to prevent servers that do not fully implement collisions from killing users
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11179 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-06 20:39:02 +00:00
w00t
f25f6319d5 Drop channel keys if they are identical to the already-set key (fix for bug #756, reported by Taros)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11178 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-06 10:04:51 +00:00
w00t
7ce1303cab Fix number of events in noctcp, so 'C' is shown in EXTBAN= 005 token, fixes bug #758 reported by Taros.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11177 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-06 10:04:50 +00:00
w00t
f9336c57cc Fix +g notices going to remote users. Fixes bug #749, reported by Taros.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11176 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-06 10:04:49 +00:00
w00t
63f8e06d41 Convert helpop to use a ModeHandler base rather than a SimpleUserModeHandler, users should not be able to set +h. Fixes #750, reported by Taros.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11175 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-06 10:04:42 +00:00
danieldg
d17bf9f895 m_sakick needs to be marked VF_COMMON
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11174 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-05 21:45:16 +00:00
danieldg
55865e9b1b Final configuration comment update [jdhore]
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11173 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-05 05:41:17 +00:00
danieldg
ebab04970b Fix delayjoin adding an extra @ prefix mode
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11172 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-05 01:51:30 +00:00
danieldg
75f147a25e Fix crash when services (or a misbehaving remote server) introduces a server with duplicate SID
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11171 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-05 01:27:19 +00:00
danieldg
94ed0a3ed4 Add missing .example to modules.conf <include>
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11170 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-04 05:24:15 +00:00
danieldg
6fc5882d5c delayjoin: Remove broken check for channel ops, use ModeHandler parameter instead
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11169 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-04 05:12:25 +00:00
danieldg
71cd4678a5 Clean up delayjoin extension behavior
There were a number of cases where delayjoin left stale metadata attached
to a user, which wastes memory. Also, the quit message of a users in a +D
channel could not be seen because of the emulated PART.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11168 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-04 04:54:09 +00:00
danieldg
e88f1be133 Grammar/whitespace fixup
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11167 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-04 00:57:52 +00:00
danieldg
08d55d0b30 More documentation to example configs [jdhore]
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11166 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-04 00:46:12 +00:00
danieldg
2089dfce57 Add more documentation to example configs [jdhore]
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11165 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-04 00:07:56 +00:00
danieldg
d66ce94423 Restrict some /WHO options to opers
There is no reason to be able to query the umodes of other users or the port
they connected on; this can contain private information.

If HideWhoisServer is on, also restrict local/far query.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11164 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-03 17:45:31 +00:00
danieldg
b2688f6cdf Revert "Don't apply channel modes received in an non-burst, non-creation FJOIN, because they could be out of date"
This keeps the protocol closer to TS6 behavior. The mode sync in the FJOIN is
used to resync channel modes after a desync caused by modes crossing on the
wire. In the future, an alternate join command will be used to prevent MODExJOIN
desync without rejecting modes from an FJOIN.

This reverts commit 4820e6bb9578e53ea1553070108599349d0ffbcb.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11163 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-02 23:38:04 +00:00
danieldg
4820e6bb95 Don't apply channel modes received in an non-burst, non-creation FJOIN, because they could be out of date
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11162 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-02 22:08:56 +00:00
danieldg
f0552b8d76 Fix +P channels being deleted when the final user /QUITs, thanks SnoFox
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11161 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-02 04:23:22 +00:00
dz
789e43b40d Fix a crash in m_conn_waitpong, spotted by Obi_Wan.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11159 e03df62e-2008-0410-955e-edbf42e46eb7
2009-03-01 13:20:28 +00:00
danieldg
862bdf27b8 Revert r10640, it blocked override notices unless they contained an op/deop/etc
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11158 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-27 21:53:01 +00:00
danieldg
a940fbddee Add more information to /CHECK output
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11157 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-27 16:02:21 +00:00
danieldg
00fa6d592e [Taros] Add m_sakick.so
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11156 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-27 02:44:36 +00:00
danieldg
d3c32dc048 Fix SID-sourced KILL being displayed to killee as from SID not from server name
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11155 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-27 01:05:05 +00:00
danieldg
e75c523e59 Fix previous module mismatch message; "remote" is misleading when sent as an ERROR
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11154 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-27 01:04:57 +00:00
danieldg
b6de960d97 Add VF_COMMON to all modules that provide an extban
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11153 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-25 19:03:13 +00:00
danieldg
2c8dd5f19a Remove VF_COMMON from m_banredirect, it only adds an extban
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11152 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-25 18:33:19 +00:00
danieldg
a01d6ade99 Clarify CMD_LOCALONLY return values for /WATCH
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11151 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-25 17:26:17 +00:00
danieldg
c2623e318f m_customtitle: Don't route TITLE command, route metadata only
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11150 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-25 17:26:09 +00:00
danieldg
d56e1a1d58 Allow accountname to be changed without an explicit unset
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11149 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-25 02:54:04 +00:00
danieldg
37671dc1cc Clarify module mismatch message
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11148 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-24 23:50:04 +00:00
danieldg
4d42d54458 Allow non-opers to use /MKPASSWD
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11147 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-24 18:14:38 +00:00
danieldg
e8a6dfa763 Fix svn:keywords on m_nationalchars.cpp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11146 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-24 03:19:19 +00:00
special
ecc55199cf m_uninvite and m_ssl_oper_cert should be marked as VF_COMMON and returning CMD_LOCALONLY respectively
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11144 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-23 13:30:38 +00:00
special
410e7b9e2f Forward port r11142: Commands that only give a response locally should not be propagated globally, especially if not flagged as VF_COMMON (specifically, m_sslinfo). Found by satmd.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11143 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-23 13:18:59 +00:00
w00t
4efdfce66a In retrospect, not allowing *any* XLines to be set was pretty fucking stupid.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11141 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-22 14:37:38 +00:00
w00t
590dd9292f Don't remove an expired xline on add, simply drop duplicates (1.1 behaviour). This can lead to bouncing between servers.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11140 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-22 10:54:09 +00:00
w00t
2497f6da2f Don't allow expired XLines to be added.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11139 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-22 10:54:08 +00:00
peavey
ce19cce8cb Forward port r11137 from stable:
================================
Use extended open method instead of the basic. Because basic always does SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE and we just want SQLITE_OPEN_READWRITE so we can warn if the db does not exist, rather than create an empty db.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11138 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-22 02:56:43 +00:00
danieldg
d6501677e1 Remove unneeded "fd" member of issl_session
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11135 e03df62e-2008-0410-955e-edbf42e46eb7
2009-02-19 22:32:17 +00:00