Browse Source

Merge branch 'request-op-backwards-compat' into maint

* request-op-backwards-compat:
  Fix backwards compat with 1.2/1.3

Conflicts:
	doc/UPDATES
Bryan Drewery 13 years ago
parent
commit
7a396887af
2 changed files with 3 additions and 1 deletions
  1. 1 0
      doc/UPDATES
  2. 2 1
      src/mod/irc.mod/irc.c

+ 1 - 0
doc/UPDATES

@@ -5,6 +5,7 @@ maint
     This was always requiring a valid host, but was not restricted to that bot.
   * Fix leaf bots being able to initiate userfile transfer to hubs
   * Protect binary updates so that only hubs can offer/send them
+  * Fix backwards compatibility with older 1.2/1.3 bots
 
 1.4.2 - http://wraith.botpack.net/milestone/1.4.2
   * Prevent crashing on startup if openssl can not be loaded

+ 2 - 1
src/mod/irc.mod/irc.c

@@ -766,11 +766,12 @@ getin_request(char *botnick, char *code, char *par)
 
     // Does the remote bot have the same number of clients in its channel as me? And a shared member?
     const char *bot_network = tmp;
+    int members = atoi(tmp);
 
     char *shared_nick = par[0] ? newsplit(&par) : NULL;
     memberlist* shared_member = shared_nick ? ismember(chan, shared_nick) : NULL;
     char *shared_host = par[0] ? newsplit(&par) : NULL;
-    if (!shared_nick || !shared_member || !shared_host || (strcasecmp(curnetwork, bot_network)) || strcmp(shared_host, shared_member->userhost)) {
+    if (!shared_nick || !shared_member || !shared_host || (strcasecmp(curnetwork, bot_network) && ((chan->channel.members - chan->channel.splitmembers) != members)) || strcmp(shared_host, shared_member->userhost)) {
       putlog(LOG_GETIN, "*", "opreq from %s/%s on %s - Bot seems to be on a different network '%s' / me: '%s'", botnick, nick, chan->dname, bot_network, curnetwork);
       return;
     }