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;
|
||||
struct Client *target_p;
|
||||
int hop;
|
||||
struct Capability *cap;
|
||||
|
||||
name = parv[1];
|
||||
hop = atoi(parv[2]);
|
||||
|
@ -108,6 +109,23 @@ mr_server(struct Client *client_p, struct Client *source_p, int parc, const char
|
|||
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
|
||||
* check for us... -A1kmm. */
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue