예제 #1
0
void Auth_Login_f() {

    client_t *invoker;
    int id,clientNum;


    if(Cmd_Argc() != 3) {
        Com_Printf("Usage: %s <login> <password>\n",Cmd_Argv(0));
        return;
    }

    clientNum = SV_RemoteCmdGetInvokerClnum();
    if(clientNum < 0 || clientNum > 63) {
        Com_Error(ERR_FATAL,"Auth_Login_f: index out of bounds.\n");
        return;
    }

    invoker = &svs.clients[clientNum];

    id = Auth_Authorize(Cmd_Argv(1),Cmd_Argv(2));
    if(id < 0 || id > MAX_AUTH_ADMINS) {
        //Com_PrintLogFile("Failed login attempt from slot %d with login %s. Client dropped.",clientNum,Cmd_Argv(1));
        SV_DropClient(invoker,"Incorrect login credentials.\n");
        return;
    }

    invoker->uid = auth_admins.admins[id].uid;
    invoker->power = SV_RemoteCmdGetClPower(invoker);
    Com_Printf("^2Successfully authorized. UID: %d, name: %s, power: %d\n",
               auth_admins.admins[id].uid, auth_admins.admins[id].username, invoker->power);
}
예제 #2
0
void GScr_ScriptCommandCB()
{
    char buffer[1024];

    if(!com_sv_running || !com_sv_running->boolean )
        return;

    if(Cmd_Argc() == 1)
    {
        Scr_ScriptCommand(SV_RemoteCmdGetInvokerClnum(), Cmd_Argv(0), "");

    }else{

        Cmd_Argsv(1, buffer, sizeof(buffer));

        Scr_ScriptCommand(SV_RemoteCmdGetInvokerClnum(), Cmd_Argv(0), buffer);
    }
}