X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_server.c;h=4f06d2fb0724a50302a185aa589d3a789d306e53;hb=592e569802dbc1d90a0095d6f8fed409d6bf8c39;hp=3dafded80a7809d05160360c90fa9f25b2c0bb21;hpb=d6cbb59fb3d36f3c9322f20638d1710144907aab;p=ircu2.10.12-pk.git diff --git a/ircd/m_server.c b/ircd/m_server.c index 3dafded..4f06d2f 100644 --- a/ircd/m_server.c +++ b/ircd/m_server.c @@ -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);