hayabusa 0.0.3 → 0.0.4

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.
@@ -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"