em-websocket-request 0.0.7 → 0.1.0

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.
@@ -39,9 +39,13 @@ class WebSocket
39
39
 
40
40
  @server = params[:server]
41
41
  @socket = arg
42
- line = gets().chomp()
42
+ line = gets()
43
+ if !line
44
+ raise(WebSocket::Error, "Client disconnected without sending anything.")
45
+ end
46
+ line = line.chomp()
43
47
  if !(line =~ /\AGET (\S+) HTTP\/1.1\z/n)
44
- raise(WebSocket::Error, "invalid request: #{line}")
48
+ raise(WebSocket::Error, "Invalid request: #{line}")
45
49
  end
46
50
  @path = $1
47
51
  read_header()
@@ -300,10 +304,16 @@ class WebSocket
300
304
  @header[$1] = $2
301
305
  @header[$1.downcase()] = $2
302
306
  end
307
+ if !@header["upgrade"]
308
+ raise(WebSocket::Error, "Upgrade header is missing")
309
+ end
303
310
  if !(@header["upgrade"] =~ /\AWebSocket\z/i)
304
311
  raise(WebSocket::Error, "invalid Upgrade: " + @header["upgrade"])
305
312
  end
306
- if !(@header["connection"] =~ /\AUpgrade\z/i)
313
+ if !@header["connection"]
314
+ raise(WebSocket::Error, "Connection header is missing")
315
+ end
316
+ if @header["connection"].split(/,/).grep(/\A\s*Upgrade\s*\z/i).empty?
307
317
  raise(WebSocket::Error, "invalid Connection: " + @header["connection"])
308
318
  end
309
319
  end
@@ -495,7 +505,7 @@ class WebSocketServer
495
505
  send_flash_socket_policy_file(socket)
496
506
  return nil
497
507
  else
498
- socket.ungetc(ch)
508
+ socket.ungetc(ch) if ch
499
509
  return WebSocket.new(socket, :server => self)
500
510
  end
501
511
  end
@@ -1,3 +1,3 @@
1
1
  module EventMachine
2
- WS_REQUEST_VERSION = "0.0.7"
2
+ WS_REQUEST_VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-websocket-request
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.1.0
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-01-12 00:00:00.000000000 Z
12
+ date: 2013-03-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: em-http-request
16
- requirement: &70163894954540 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,12 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70163894954540
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.0.0
25
30
  description: EventMachine WebSocket client
26
31
  email:
27
32
  - mrykov@gmail.com
@@ -61,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
66
  version: '0'
62
67
  requirements: []
63
68
  rubyforge_project:
64
- rubygems_version: 1.8.11
69
+ rubygems_version: 1.8.23
65
70
  signing_key:
66
71
  specification_version: 3
67
72
  summary: EventMachine WebSocket client