summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--src/channels.c2
-rw-r--r--src/protocol/inspircd12.c6
-rw-r--r--src/protocol/inspircd20.c6
-rw-r--r--version.log3
5 files changed, 14 insertions, 4 deletions
diff --git a/Changes b/Changes
index c44e6323b..19aa73bde 100644
--- a/Changes
+++ b/Changes
@@ -2,6 +2,7 @@ Anope Version 1.8 - GIT
-----------------------
05/30 F Fixed removing vhosts on InspIRCd when m_cloaking is unloaded [#1273]
07/23 F Fixed a potential crash in the badwords kicker [ #00]
+08/09 F Fixed deopping the first user to join a channel during a burst [#1287]
Anope Version 1.8.6
-------------------
diff --git a/src/channels.c b/src/channels.c
index 59efc7d92..13a0b7c81 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -1478,7 +1478,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
* Unless the channel has just been created. -heinz
* Or the user matches CA_AUTODEOP... -GD
*/
- if (((ci->flags & CI_SECUREOPS) || (c->usercount == 1)
+ if (((ci->flags & CI_SECUREOPS) || (c->usercount == 1 && is_sync(user->server))
|| check_access(user, ci, CA_AUTODEOP))
&& !is_ulined(user->server->name)) {
if (ircd->owner && (status & CUS_OWNER) && !is_founder(user, ci))
diff --git a/src/protocol/inspircd12.c b/src/protocol/inspircd12.c
index 01703baed..3dbc1768b 100644
--- a/src/protocol/inspircd12.c
+++ b/src/protocol/inspircd12.c
@@ -127,7 +127,7 @@ IRCDVar myIrcd[] = {
1, /* support helper umode */
0, /* p10 */
NULL, /* character set */
- 0, /* reports sync state */
+ 1, /* reports sync state */
1, /* CIDR channelbans */
0, /* +j */
CMODE_j, /* +j Mode */
@@ -1803,6 +1803,7 @@ int anope_event_burst(char *source, int ac, char **av)
int anope_event_eob(char *source, int ac, char **av)
{
+ Server *s = findserver_uid(servlist, source);
User *u = u_intro_regged;
u_intro_regged = NULL;
@@ -1814,6 +1815,9 @@ int anope_event_eob(char *source, int ac, char **av)
validate_user(u);
}
+ if (s != NULL)
+ finish_sync(s, 1);
+
/* End of burst.. */
burst = 0;
diff --git a/src/protocol/inspircd20.c b/src/protocol/inspircd20.c
index 969ad4a94..63f7ba558 100644
--- a/src/protocol/inspircd20.c
+++ b/src/protocol/inspircd20.c
@@ -158,7 +158,7 @@ IRCDVar myIrcd[] = {
1, /* support helper umode */
0, /* p10 */
NULL, /* character set */
- 0, /* reports sync state */
+ 1, /* reports sync state */
1, /* CIDR channelbans */
0, /* +j */
CMODE_j, /* +j Mode */
@@ -1809,6 +1809,7 @@ int anope_event_burst(char *source, int ac, char **av)
int anope_event_eob(char *source, int ac, char **av)
{
+ Server *s = findserver_uid(servlist, source);
User *u = u_intro_regged;
u_intro_regged = NULL;
@@ -1820,6 +1821,9 @@ int anope_event_eob(char *source, int ac, char **av)
validate_user(u);
}
+ if (s != NULL)
+ finish_sync(s, 1);
+
/* End of burst.. */
burst = 0;
diff --git a/version.log b/version.log
index dda1da865..67dce8658 100644
--- a/version.log
+++ b/version.log
@@ -8,9 +8,10 @@ VERSION_MAJOR="1"
VERSION_MINOR="8"
VERSION_PATCH="7"
VERSION_EXTRA="-git"
-VERSION_BUILD="3076"
+VERSION_BUILD="3077"
# $Log$ # Changes since 1.8.6 Release
+#Revision 3077 - Bug #1287 - Fixed chan_set_correct_modes to not deop the first user from syncing servers
#Revision 3076 - Bug #1269 - Fixed install.js for Windows 7 builds.
#Revision 3075 - Fixed a potential crash in the badwords kicker, and fixed matching BW_SINGLE with BSCaseSensitive enabled
#Revision 3074 - Bug #1273 - Fixed removing vhosts on InspIRCd when m_cloaking is unloaded