thanks, I've been waiting for this since that update.
I'm not home right now, so I can't test it, I'll post result when I come.

Kveri

Maxim Shpakov  wrote / napĂ­sal(a):
> Seems attachments are not allowed here..
>
> so going plain text...
>
> diff -uNr qstat2.orig/a2s.c qstat2/a2s.c
> --- qstat2.orig/a2s.c   2008-10-29 04:07:08.000000000 +0200
> +++ qstat2/a2s.c        2009-01-04 19:56:39.000000000 +0200
> @@ -22,6 +22,8 @@
>  #include "packet_manip.h"
>  
>  #define A2S_GETCHALLENGE         "\xFF\xFF\xFF\xFF\x57"
> +#define A2S_PLAYER_CHALLENGE   "\xFF\xFF\xFF\xFF\x55\xFF\xFF\xFF\xFF"
> +#define A2S_RULES_CHALLENGE    "\xFF\xFF\xFF\xFF\x56\xFF\xFF\xFF\xFF"
>  #define A2S_CHALLENGERESPONSE 0x41
>  #define A2S_INFO                         "\xFF\xFF\xFF\xFF\x54Source Engine 
> Query"
>  #define A2S_INFORESPONSE_HL1  0x6D
> @@ -77,7 +79,7 @@
>                 if(!status->have_challenge)
>                 {
>                         debug(3, "sending challenge");
> -                       if( SOCKET_ERROR == qserver_send_initial(server, 
> A2S_GETCHALLENGE, sizeof(A2S_GETCHALLENGE)-1) )
> +                       if( SOCKET_ERROR == qserver_send_initial(server, 
> A2S_PLAYER_CHALLENGE, sizeof(A2S_PLAYER_CHALLENGE)-1) )
>                         {
>                                 return SOCKET_ERROR;
>                         }
> @@ -179,11 +181,21 @@
>                         // 2. the index of this packet starting from 0 ( byte 
> )
>                         // 3. Size of the split ( short )
>                         if(pktlen < 10) goto out_too_short;
> -                       pkt_max = ((unsigned char)*pkt);
> -                       pkt_index = ((unsigned char)*(pkt+1));
> -                       debug( 3, "packetid[2]: 0x%hhx => idx: %hhu, max: 
> %hhu", *pkt, pkt_index, pkt_max );
> -                       pkt+=4;
> -                       pktlen -= 12;
> +                       if(server->appid < 200) // Goldsource Engine
> +                       {
> +                           pkt_max = ((unsigned char)*pkt) & 15;
> +                           pkt_index = ((unsigned char)*pkt) >> 4;
> +                           pkt++;
> +                           pktlen -= 9;
> +                       }
> +                       else // Source Engine
> +                       {
> +                           pkt_max = ((unsigned char)*pkt);
> +                           pkt_index = ((unsigned char)*(pkt+1));
> +                           pkt+=4;
> +                           pktlen -= 12;
> +                       }
> +                       debug( 3, "packetid[2]: 0x%hhx => idx: %hhu, max: 
> %hhu", server->appid, *pkt, pkt_index, pkt_max );
>                 }
>                 else
>                 {
> @@ -437,6 +449,7 @@
>                 if(pktlen < 9) goto out_too_short;
>  
>                 // pkt[0], pkt[1] steam id unused
> +               server->appid       = *pkt;                             
>                 server->num_players = (unsigned char)pkt[2];
>                 server->max_players = (unsigned char)pkt[3];
>                 // pkt[4] number of bots
> @@ -498,7 +511,7 @@
>                                 add_rule( server, "game_port", buf, 0 );
>                                 pkt += 2;
>                                 pktlen -= 2;
> -                               fprintf( stderr, "game port = %d\n", gameport 
> );
> +//                             fprintf( stderr, "game port = %d\n", gameport 
> );
>                         }
>  
>                         if ( edf & 0x40 )
> diff -uNr qstat2.orig/qserver.h qstat2/qserver.h
> --- qstat2.orig/qserver.h       2008-04-25 19:53:14.000000000 +0300
> +++ qstat2/qserver.h    2009-01-04 16:11:35.000000000 +0200
> @@ -104,6 +104,7 @@
>      int max_players;
>      int num_players;
>      int protocol_version;
> +    unsigned short appid;
>         int max_spectators;
>         int num_spectators;
>  
>
>
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives, please 
> visit:
> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>
>   

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to