2004-05-09 Michael Poole <mdpoole@troilus.org>
[ircu2.10.12-pk.git] / ircd / m_server.c
index 3dafded80a7809d05160360c90fa9f25b2c0bb21..4f06d2fb0724a50302a185aa589d3a789d306e53 100644 (file)
@@ -170,22 +170,22 @@ int mr_server(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
 
   *parv[5] = 'J';
 
+  prot = atoi(parv[5] + 1);
+  if (prot > atoi(MAJOR_PROTOCOL))
+    prot = atoi(MAJOR_PROTOCOL);
+
   if (*parv[7] == '+') {
     for (ch = parv[7] + 1; *ch; ch++)
       switch (*ch) {
       case 'h':
-       SetHub(cptr);
-       break;
+        SetHub(cptr);
+        break;
       case 's':
-       SetService(cptr);
-       break;
+        SetService(cptr);
+        break;
       }
   }
 
-  prot = atoi(parv[5] + 1);
-  if (prot > atoi(MAJOR_PROTOCOL))
-    prot = atoi(MAJOR_PROTOCOL);
-
   hop = atoi(parv[2]);
   start_timestamp = atoi(parv[3]);
   timestamp = atoi(parv[4]);
@@ -702,18 +702,6 @@ int ms_server(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
   if (strlen(parv[5]) != 3 || (parv[5][0] != 'P' && parv[5][0] != 'J'))
     return exit_client_msg(cptr, sptr, &me, "Bogus protocol (%s)", parv[5]);
 
-  if (*parv[7] == '+') {
-    for (ch = parv[7] + 1; *ch; ch++)
-      switch (*ch) {
-      case 'h':
-       SetHub(cptr);
-       break;
-      case 's':
-       SetService(cptr);
-       break;
-      }
-  }
-
   prot = atoi(parv[5] + 1);
   if (prot > atoi(MAJOR_PROTOCOL))
     prot = atoi(MAJOR_PROTOCOL);
@@ -1072,6 +1060,18 @@ int ms_server(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
      for numeric nicks ! */
   SetServerYXX(cptr, acptr, parv[6]);
 
+  if (*parv[7] == '+') {
+    for (ch = parv[7] + 1; *ch; ch++)
+      switch (*ch) {
+      case 'h':
+       SetHub(acptr);
+       break;
+      case 's':
+       SetService(acptr);
+       break;
+      }
+  }
+
   Count_newremoteserver(UserStats);
   add_client_to_list(acptr);
   hAddClient(acptr);