#include "hash.h"
#include "ircd.h"
#include "ircd_log.h"
-#include "ircd_policy.h"
#include "ircd_features.h"
#include "ircd_reply.h"
#include "ircd_string.h"
#include "s_serv.h"
#include "send.h"
#include "userload.h"
-#include "map.h"
#include <assert.h>
#include <stdlib.h>
char info[REALLEN + 1];
char* host;
struct Client* acptr;
- struct Client* bcptr;
struct Client* LHcptr = 0;
struct ConfItem* aconf = 0;
struct ConfItem* lhconf = 0;
recv_time = TStime();
info[0] = '\0';
- if (parc < 7)
+ if (parc < 8)
{
need_more_params(sptr, "SERVER");
return exit_client(cptr, cptr, &me, "Need more parameters");
*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]);
else
ret = 0;
+#if defined(HEAD_IN_SAND_MAP) || defined(HEAD_IN_SAND_LINKS)
map_update(cptr);
+#endif
if (feature_bool(FEAT_RELIABLE_CLOCK) &&
abs(cli_serv(cptr)->timestamp - recv_time) > 30) {
struct Client* acptr;
struct Client* bcptr;
struct Client* LHcptr = 0;
- struct ConfItem* aconf = 0;
struct ConfItem* lhconf = 0;
int hop;
- int ret;
int active_lh_line = 0;
unsigned short prot;
time_t start_timestamp;
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]);
- *parv[5] = 'J';
-
- 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);
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);
+#if defined(HEAD_IN_SAND_MAP) || defined(HEAD_IN_SAND_LINKS)
map_update(acptr);
+#endif
if (*parv[5] == 'J')
{