Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions lib/steam-condenser/servers/game_server.rb
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ def handle_response_for_request(request_type, repeat_on_failure = true)
request_packet = Packets::A2S_PLAYER_Packet.new
expected_response = Packets::S2C_CHALLENGE_Packet
when :info then
request_packet = Packets::A2S_INFO_Packet.new
request_packet = Packets::A2S_INFO_Packet.new(@challenge_number)
expected_response = Packets::S2A_INFO_BasePacket
when :players then
request_packet = Packets::A2S_PLAYER_Packet.new(@challenge_number)
Expand Down Expand Up @@ -254,8 +254,8 @@ def handle_response_for_request(request_type, repeat_on_failure = true)
# @see #update_server_info
def init
update_ping
update_server_info
update_challenge_number
update_server_info
end

# Sends a A2S_PLAYERS request to the server and updates the players' data for
Expand Down
11 changes: 8 additions & 3 deletions lib/steam-condenser/servers/packets/a2s_info_packet.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# Copyright (c) 2008-2012, Sebastian Staudt

require 'steam-condenser/servers/packets/base_packet'
require 'steam-condenser/servers/packets/request_info_with_challenge'

module SteamCondenser::Servers::Packets

Expand All @@ -17,10 +18,14 @@ module SteamCondenser::Servers::Packets
class A2S_INFO_Packet

include BasePacket
include RequestInfoWithChallenge

# Creates a new A2S_INFO request object
def initialize
super A2S_INFO_HEADER, "Source Engine Query\0"
# Creates a new A2S_INFO request object including the challenge number
#
# @param [Numeric] challenge_number The challenge number received from the
# server
def initialize(challenge_number = -1)
super A2S_INFO_HEADER, challenge_number
end

end
Expand Down
22 changes: 22 additions & 0 deletions lib/steam-condenser/servers/packets/request_info_with_challenge.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# This code is free software; you can redistribute it and/or modify it under
# the terms of the new BSD License.
#
# Copyright (c) 2008-2012, Sebastian Staudt

module SteamCondenser::Servers::Packets

# This module implements a method to generate raw packet data used by request
# packets which send a challenge number
#
# @author Sebastian Staudt
module RequestInfoWithChallenge

# Returns the raw data representing this packet
#
# @return [String] A string containing the raw data of this request packet
def to_s
[0xFF, 0xFF, 0xFF, 0xFF, @header_data, "Source Engine Query\0", @content_data.string.to_i].pack('c5a*l')
end

end
end