game-server 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
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