Move check for required CAPABs to mr_server -- CAPAB may not be sent.
Also fix exit message.
This commit is contained in:
parent
c6240d7940
commit
a416ed2e79
2 changed files with 18 additions and 17 deletions
|
@ -75,6 +75,7 @@ mr_server(struct Client *client_p, struct Client *source_p, int parc, const char
|
||||||
const char *name;
|
const char *name;
|
||||||
struct Client *target_p;
|
struct Client *target_p;
|
||||||
int hop;
|
int hop;
|
||||||
|
struct Capability *cap;
|
||||||
|
|
||||||
name = parv[1];
|
name = parv[1];
|
||||||
hop = atoi(parv[2]);
|
hop = atoi(parv[2]);
|
||||||
|
@ -108,6 +109,23 @@ mr_server(struct Client *client_p, struct Client *source_p, int parc, const char
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* check to ensure any "required" caps are set. --nenolod */
|
||||||
|
for (cap = captab; cap->name; cap++)
|
||||||
|
{
|
||||||
|
if (!cap->required)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!(client_p->localClient->caps & cap->cap))
|
||||||
|
{
|
||||||
|
char exitbuf[BUFSIZE];
|
||||||
|
|
||||||
|
rb_snprintf(exitbuf, BUFSIZE, "Missing required CAPAB [%s]", cap->name);
|
||||||
|
exit_client(client_p, client_p, client_p, exitbuf);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Now we just have to call check_server and everything should be
|
/* Now we just have to call check_server and everything should be
|
||||||
* check for us... -A1kmm. */
|
* check for us... -A1kmm. */
|
||||||
switch (check_server(name, client_p))
|
switch (check_server(name, client_p))
|
||||||
|
|
|
@ -96,23 +96,6 @@ mr_capab(struct Client *client_p, struct Client *source_p, int parc, const char
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check to ensure any "required" caps are set. --nenolod */
|
|
||||||
for (cap = captab; cap->name; cap++)
|
|
||||||
{
|
|
||||||
if (!cap->required)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!(client_p->localClient->caps & cap->cap))
|
|
||||||
{
|
|
||||||
char exitbuf[BUFSIZE];
|
|
||||||
|
|
||||||
rb_snprintf(exitbuf, BUFSIZE, "Missing required CAPAB [%s]", cap->cap);
|
|
||||||
exit_client(client_p, client_p, client_p, exitbuf);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue