m_server: reenable required cap negotiation

This commit is contained in:
William Pitcock 2012-02-04 02:03:52 -06:00
parent f01f67f0ad
commit 79d488b283

View file

@ -75,7 +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; unsigned int required_mask;
name = parv[1]; name = parv[1];
hop = atoi(parv[2]); hop = atoi(parv[2]);
@ -109,24 +109,15 @@ mr_server(struct Client *client_p, struct Client *source_p, int parc, const char
return 0; return 0;
} }
#ifdef NOTYET
/* check to ensure any "required" caps are set. --nenolod */ /* check to ensure any "required" caps are set. --nenolod */
for (cap = captab; cap->name; cap++) /* XXX: show required CAPABs. */
required_mask = capability_index_get_required(serv_capindex);
if (!(client_p->localClient->caps & required_mask))
{ {
if (!cap->required) exit_client(client_p, client_p, client_p, "Missing required CAPABs");
continue;
if (!(client_p->localClient->caps & cap->cap)) return 0;
{
char exitbuf[BUFSIZE];
rb_snprintf(exitbuf, BUFSIZE, "Missing required CAPAB [%s]", cap->name);
exit_client(client_p, client_p, client_p, exitbuf);
return 0;
}
} }
#endif
/* 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. */