[IRCServices] Linked nicks and Operserv

Yusuf Iskenderoglu uhc0 at rz.uni-karlsruhe.de
Tue May 29 17:35:05 PDT 2001


Here is the place in the code, checking who is
services admin.

/* Does the given user have Services admin privileges? */

int is_services_admin(User *u)
{
    int i;

    if (!is_oper_u(u))
	return 0;
    if (is_services_root(u))
	return 1;
    if (skeleton)
	return 1;
    for (i = 0; i < MAX_SERVADMINS; i++) {
	if (services_admins[i] && u->ni == getlink(services_admins[i])) {
	    if (nick_identified(u))
		return 1;
	    return 0;
	}
    }
    return 0;
}


I am absolutely sure that I did not modify this section.

The correct code could be:
if (services_admins[i] && services_admins[i] == getlink(u->ni)) {

And this is working, because the nick change changes the value
of u->ni to getlink(u->real_ni)

In my case, u->ni points to TimeMr14C, because getlink(Enygma)
return TimeMr14C.

That means, because TimeMr14C as a Services Admin exists,
AND TimeMr14C (value of u->ni) equals to TimeMr14C (value of
getlink(TimeMr14C))
AND I have identified to NickServ, I get recognised as a
services admin.

Regards;
yusuf


Yusuf Iskenderoglu  ***  eMail uhc0 at rz.uni-karlsruhe.de