hayabusa 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,7 +19,16 @@ class Hayabusa::Http_session::Request
19
19
  #Reads content from the socket until the end of headers. Also does various error-checks.
20
20
  def read_socket(socket, cont)
21
21
  loop do
22
- raise Errno::ECONNRESET, "Socket closed." if socket.closed?
22
+ if socket.closed?
23
+ if !cont.empty?
24
+ #This might just be the last allowed request...
25
+ break
26
+ else
27
+ #This should not have happened...
28
+ raise Errno::ECONNRESET, "Socket closed before trying to read."
29
+ end
30
+ end
31
+
23
32
  read = socket.gets
24
33
  raise Errno::ECONNRESET, "Socket returned non-string: '#{read.class.name}'." if !read.is_a?(String)
25
34
  cont << read
@@ -58,15 +67,18 @@ class Hayabusa::Http_session::Request
58
67
  method = match[1]
59
68
  cont = cont.gsub(match[0], "")
60
69
 
70
+ uri_raw = match[2]
71
+ uri_raw = "index.rhtml" if uri_raw == ""
72
+
61
73
  uri = Knj::Web.parse_uri(match[2])
62
74
 
63
75
  page_filepath = Knj::Web.urldec(uri[:path])
64
- if page_filepath.length <= 0 or page_filepath == "/" or File.directory?("#{@hb.config[:doc_root]}/#{page_filepath}")
76
+ if page_filepath.empty? or page_filepath == "/" or File.directory?("#{@hb.config[:doc_root]}/#{page_filepath}")
65
77
  page_filepath = "#{page_filepath}/#{@hb.config[:default_page]}"
66
78
  end
67
79
 
68
80
  @page_path = "#{@hb.config[:doc_root]}/#{page_filepath}"
69
- @get = Knj::Web.parse_urlquery(uri[:query], {:urldecode => true, :force_utf8 => true})
81
+ @get = Knj::Web.parse_urlquery(uri[:query], :urldecode => true, :force_utf8 => true)
70
82
 
71
83
  if @get["_hb_httpsession_id"]
72
84
  @hb.httpsessions_ids[@get["_hb_httpsession_id"]] = @args[:httpsession]
@@ -139,6 +139,9 @@ class Hayabusa::Http_session::Response
139
139
  end
140
140
  end
141
141
 
142
- @socket.close if @close and @mode != :cgi
142
+ if @close and @mode != :cgi
143
+ _hb.log_puts("Closing socket.")
144
+ @socket.close
145
+ end
143
146
  end
144
147
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  def _(str)
4
4
  hb = _hb
5
- session = _session
5
+ session = Thread.current[:hayabusa][:session].sess_data if Thread.current[:hayabusa] and Thread.current[:hayabusa][:session]
6
6
  locale = nil
7
7
 
8
8
  if Thread.current[:locale].to_s.length > 0
@@ -20,7 +20,6 @@ end
20
20
 
21
21
  def _session
22
22
  return Thread.current[:hayabusa][:session].sess_data if Thread.current[:hayabusa] and Thread.current[:hayabusa][:session]
23
- raise "Session was not registered on thread."
24
23
  end
25
24
 
26
25
  def _session_hash
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: hayabusa
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.3
5
+ version: 0.0.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kasper Johansen
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-08-17 00:00:00 +02:00
13
+ date: 2012-08-19 00:00:00 +02:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -69,19 +69,30 @@ dependencies:
69
69
  prerelease: false
70
70
  version_requirements: *id005
71
71
  - !ruby/object:Gem::Dependency
72
- name: json
72
+ name: tpool
73
73
  requirement: &id006 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ">="
77
77
  - !ruby/object:Gem::Version
78
78
  version: "0"
79
- type: :development
79
+ type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: *id006
82
82
  - !ruby/object:Gem::Dependency
83
- name: rspec
83
+ name: json
84
84
  requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: rspec
95
+ requirement: &id008 !ruby/object:Gem::Requirement
85
96
  none: false
86
97
  requirements:
87
98
  - - ~>
@@ -89,10 +100,10 @@ dependencies:
89
100
  version: 2.3.0
90
101
  type: :development
91
102
  prerelease: false
92
- version_requirements: *id007
103
+ version_requirements: *id008
93
104
  - !ruby/object:Gem::Dependency
94
105
  name: bundler
95
- requirement: &id008 !ruby/object:Gem::Requirement
106
+ requirement: &id009 !ruby/object:Gem::Requirement
96
107
  none: false
97
108
  requirements:
98
109
  - - ">="
@@ -100,10 +111,10 @@ dependencies:
100
111
  version: 1.0.0
101
112
  type: :development
102
113
  prerelease: false
103
- version_requirements: *id008
114
+ version_requirements: *id009
104
115
  - !ruby/object:Gem::Dependency
105
116
  name: jeweler
106
- requirement: &id009 !ruby/object:Gem::Requirement
117
+ requirement: &id010 !ruby/object:Gem::Requirement
107
118
  none: false
108
119
  requirements:
109
120
  - - ~>
@@ -111,10 +122,10 @@ dependencies:
111
122
  version: 1.6.3
112
123
  type: :development
113
124
  prerelease: false
114
- version_requirements: *id009
125
+ version_requirements: *id010
115
126
  - !ruby/object:Gem::Dependency
116
127
  name: sqlite3
117
- requirement: &id010 !ruby/object:Gem::Requirement
128
+ requirement: &id011 !ruby/object:Gem::Requirement
118
129
  none: false
119
130
  requirements:
120
131
  - - ">="
@@ -122,7 +133,7 @@ dependencies:
122
133
  version: "0"
123
134
  type: :development
124
135
  prerelease: false
125
- version_requirements: *id010
136
+ version_requirements: *id011
126
137
  description: A threadded web/app-server that focuses on threadding, shared ressources, speed and more.
127
138
  email: k@spernj.org
128
139
  executables:
@@ -172,6 +183,7 @@ files:
172
183
  - lib/hayabusa_ext/threadding_timeout.rb
173
184
  - lib/hayabusa_ext/translations.rb
174
185
  - lib/hayabusa_ext/web.rb
186
+ - lib/hayabusa_fcgi.rb
175
187
  - lib/hayabusa_http_server.rb
176
188
  - lib/hayabusa_http_session.rb
177
189
  - lib/hayabusa_http_session_contentgroup.rb
@@ -237,7 +249,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
237
249
  requirements:
238
250
  - - ">="
239
251
  - !ruby/object:Gem::Version
240
- hash: -3172074389611406810
252
+ hash: -4467639254146667780
241
253
  segments:
242
254
  - 0
243
255
  version: "0"