game-server 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile CHANGED
@@ -8,7 +8,7 @@ source "http://rubygems.org"
8
8
  group :development do
9
9
  gem "shoulda", ">= 0"
10
10
  gem "rdoc", "~> 3.12"
11
- gem "bundler", "~> 1.0.0"
11
+ gem "bundler", "~> 1.0"
12
12
  gem "jeweler", "~> 1.8.3"
13
13
  gem "simplecov", ">= 0"
14
14
  end
data/Gemfile.lock CHANGED
@@ -26,7 +26,7 @@ PLATFORMS
26
26
  ruby
27
27
 
28
28
  DEPENDENCIES
29
- bundler (~> 1.0.0)
29
+ bundler (~> 1.0)
30
30
  jeweler (~> 1.8.3)
31
31
  rdoc (~> 3.12)
32
32
  shoulda
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.2
1
+ 0.4.3
data/game-server.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "game-server"
8
- s.version = "0.4.2"
8
+ s.version = "0.4.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["V_M"]
12
- s.date = "2012-06-29"
12
+ s.date = "2012-09-10"
13
13
  s.description = "siply general-porpuse game server"
14
14
  s.email = "nobody@nowhere.com"
15
15
  s.extra_rdoc_files = [
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
41
41
  s.homepage = "http://github.com/blimp666/game-server"
42
42
  s.licenses = ["MIT"]
43
43
  s.require_paths = ["lib"]
44
- s.rubygems_version = "1.8.15"
44
+ s.rubygems_version = "1.8.24"
45
45
  s.summary = "simply game server"
46
46
 
47
47
  if s.respond_to? :specification_version then
@@ -50,20 +50,20 @@ Gem::Specification.new do |s|
50
50
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
51
  s.add_development_dependency(%q<shoulda>, [">= 0"])
52
52
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
53
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
53
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
54
54
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
55
55
  s.add_development_dependency(%q<simplecov>, [">= 0"])
56
56
  else
57
57
  s.add_dependency(%q<shoulda>, [">= 0"])
58
58
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
59
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
59
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
60
60
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
61
61
  s.add_dependency(%q<simplecov>, [">= 0"])
62
62
  end
63
63
  else
64
64
  s.add_dependency(%q<shoulda>, [">= 0"])
65
65
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
66
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
66
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
67
67
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
68
68
  s.add_dependency(%q<simplecov>, [">= 0"])
69
69
  end
data/lib/base_listner.rb CHANGED
@@ -2,8 +2,14 @@
2
2
  require File.dirname(__FILE__) + '/daemon_logger'
3
3
  # Базовый модуль для прослушивания JSON запросов от клиента
4
4
  module GameServer::BaseListner
5
+ MAX_INPUT_BUFFER_SIZE = 128 * 1024
5
6
 
6
7
  include DaemonLogger::Mixins
8
+
9
+ def initialize(*args)
10
+ super(*args)
11
+ self.input_buffer = ""
12
+ end
7
13
 
8
14
  def find_controller(request)
9
15
  return unless request.name =~ /^[A-Za-z_]+$/
@@ -48,12 +54,29 @@ module GameServer::BaseListner
48
54
  # close_connection_after_writing
49
55
  end
50
56
 
57
+
58
+ # В этом буфере хранится начало сообщения от клиента, если оно вдруг разбилось на несколько кусоков данных
59
+ attr_accessor :input_buffer
60
+
51
61
  # Обработать входящие данные (может быть несклько строк запросов в одном пакете данных)
52
62
  def receive_data(data)
53
63
  data.gsub!("\000", "")
54
- log "Received from #{connection_info}: " + data.inspect
55
- return if policy_file_request(data)
56
- data.split("\n").each do |query_string|
64
+
65
+ complete_message = input_buffer + data
66
+ if complete_message[-1] != "\n"
67
+ self.input_buffer = complete_message
68
+ if input_buffer.size >= MAX_INPUT_BUFFER_SIZE
69
+ self.input_buffer.clear
70
+ raise "OVERFLOW OF INPUT BUFFER #{input_buffer.size}"
71
+ end
72
+ return
73
+ else
74
+ input_buffer.clear
75
+ end
76
+
77
+ log "Received from #{connection_info} (size #{complete_message.size}): " + complete_message.inspect
78
+ return if policy_file_request(complete_message)
79
+ complete_message.split("\n").each do |query_string|
57
80
  process_query(query_string)
58
81
  end
59
82
  rescue => e
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: game-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-29 00:00:00.000000000 Z
12
+ date: 2012-09-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda
16
- requirement: &80314020 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *80314020
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rdoc
27
- requirement: &80313590 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,21 +37,31 @@ dependencies:
32
37
  version: '3.12'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *80313590
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.12'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: bundler
38
- requirement: &80351950 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
42
52
  - !ruby/object:Gem::Version
43
- version: 1.0.0
53
+ version: '1.0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *80351950
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: jeweler
49
- requirement: &80351540 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: 1.8.3
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *80351540
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.8.3
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: simplecov
60
- requirement: &80350760 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,7 +85,12 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *80350760
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  description: siply general-porpuse game server
70
95
  email: nobody@nowhere.com
71
96
  executables: []
@@ -109,7 +134,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
134
  version: '0'
110
135
  segments:
111
136
  - 0
112
- hash: -949991089
137
+ hash: -847890477
113
138
  required_rubygems_version: !ruby/object:Gem::Requirement
114
139
  none: false
115
140
  requirements:
@@ -118,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
143
  version: '0'
119
144
  requirements: []
120
145
  rubyforge_project:
121
- rubygems_version: 1.8.15
146
+ rubygems_version: 1.8.24
122
147
  signing_key:
123
148
  specification_version: 3
124
149
  summary: simply game server