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.
- data/Gemfile +1 -0
- data/Gemfile.lock +5 -3
- data/VERSION +1 -1
- data/bin/hayabusa_fcgi.fcgi +2 -129
- data/bin/hayabusa_fcgi.rb +2 -129
- data/hayabusa.gemspec +6 -2
- data/lib/hayabusa.rb +58 -34
- data/lib/hayabusa_cgi_session.rb +25 -2
- data/lib/hayabusa_cgi_tools.rb +45 -34
- data/lib/hayabusa_ext/threadding.rb +2 -2
- data/lib/hayabusa_ext/translations.rb +5 -3
- data/lib/hayabusa_fcgi.rb +172 -0
- data/lib/hayabusa_http_server.rb +5 -5
- data/lib/hayabusa_http_session.rb +19 -18
- data/lib/hayabusa_http_session_request.rb +15 -3
- data/lib/hayabusa_http_session_response.rb +4 -1
- data/lib/kernel_ext/gettext_methods.rb +1 -1
- data/lib/kernel_ext/magic_methods.rb +0 -1
- metadata +25 -13
@@ -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
|
-
|
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.
|
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],
|
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]
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: hayabusa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
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-
|
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:
|
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: :
|
79
|
+
type: :runtime
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: *id006
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
|
-
name:
|
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: *
|
103
|
+
version_requirements: *id008
|
93
104
|
- !ruby/object:Gem::Dependency
|
94
105
|
name: bundler
|
95
|
-
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: *
|
114
|
+
version_requirements: *id009
|
104
115
|
- !ruby/object:Gem::Dependency
|
105
116
|
name: jeweler
|
106
|
-
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: *
|
125
|
+
version_requirements: *id010
|
115
126
|
- !ruby/object:Gem::Dependency
|
116
127
|
name: sqlite3
|
117
|
-
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: *
|
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: -
|
252
|
+
hash: -4467639254146667780
|
241
253
|
segments:
|
242
254
|
- 0
|
243
255
|
version: "0"
|