viewing paste Unknown #14694 | C

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
int chlogif_parse_ackaccreq(int fd, struct char_session_data* sd){
        if (RFIFOREST(fd) < 25)
                return 0;
        {
                int account_id = RFIFOL(fd,2);
                uint32 login_id1 = RFIFOL(fd,6);
                uint32 login_id2 = RFIFOL(fd,10);
                uint8 sex = RFIFOB(fd,14);
                uint8 result = RFIFOB(fd,15);
                int request_id = RFIFOL(fd,16);
                uint32 version = RFIFOL(fd,20);
                ShowInfo("Checking char_logif output, version=%d, result=%d\n",version,(char)result);
                uint8 clienttype = RFIFOB(fd,24);
                RFIFOSKIP(fd,25);
 
                if( session_isActive(request_id) && (sd=(struct char_session_data*)session[request_id]->session_data) &&
                        !sd->auth && sd->account_id == account_id && sd->login_id1 == login_id1 && sd->login_id2 == login_id2 && sd->sex == sex )
                {
                        int client_fd = request_id;
                        sd->version = version;
                        sd->clienttype = clienttype;
 
                        //ShowWarning("Checking char_logif output, version=%d",sd->version);
 
                        if(sd->version != date2version(PACKETVER))
                                ShowWarning("s aid=%d has an incorect version=%d in clientinfo. Server compiled for %d\n",
                                        sd->account_id,sd->version,date2version(PACKETVER));
 
                        switch( result )
                        {
                        case 0:// ok
                                char_auth_ok(client_fd, sd);
                                break;
                        case 1:// auth failed
                                WFIFOHEAD(client_fd,3);
                                WFIFOW(client_fd,0) = 0x6c;
                                WFIFOB(client_fd,2) = 0;// rejected from server
                                WFIFOSET(client_fd,3);
                                break;
                        }
                }
        }
        return 1;
}
Viewed 345 times, submitted by unknown.