swiftiply 0.6.1 → 0.6.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,7 +18,7 @@ end
18
18
 
19
19
  module Swiftcore
20
20
  module Swiftiply
21
- Version = '0.6.1'
21
+ Version = '0.6.1.1'
22
22
 
23
23
  # Yeah, these constants look kind of tacky. Inside of tight loops,
24
24
  # though, using them makes a small but measurable difference, and those
@@ -407,7 +407,8 @@ module Swiftcore
407
407
  @data.unshift data
408
408
  push
409
409
  else
410
- if data =~ /^Host:\s*([^\r:]*)/
410
+ # Note the \0 below. intern() blows up when passed a \0. People who are trying to break a server like to pass \0s. This should cope with that.
411
+ if data =~ /^Host:\s*([^\r\0:]*)/
411
412
  # NOTE: Should I be using intern for this? It might not
412
413
  # be a good idea.
413
414
  @name = $1.intern
@@ -82,14 +82,19 @@ module Mongrel
82
82
  end
83
83
 
84
84
  class HttpServer
85
- def initialize(host, port, num_processors=(2**30-1), timeout=0)
85
+ def initialize(host, port, num_processors=950, x=0, y=nil) # Deal with Mongrel 1.0.1 or earlier, as well as later.
86
86
  @socket = nil
87
87
  @classifier = URIClassifier.new
88
88
  @host = host
89
89
  @port = port
90
90
  @workers = ThreadGroup.new
91
- @timeout = timeout
92
- @num_processors = num_processors
91
+ if y
92
+ @throttle = x
93
+ @timeout = y || 60
94
+ else
95
+ @timeout = x
96
+ end
97
+ @num_processors = num_processors #num_processors is pointless for evented....
93
98
  @death_time = 60
94
99
  self.class.const_set(:Instance,self)
95
100
  end
@@ -98,6 +103,8 @@ module Mongrel
98
103
  trap('INT') { raise StopServer }
99
104
  trap('TERM') { raise StopServer }
100
105
  @acceptor = Thread.new do
106
+ EventMachine.epoll
107
+ EventMachine.set_descriptor_table_size(4096)
101
108
  EventMachine.run do
102
109
  begin
103
110
  EventMachine.start_server(@host,@port,MongrelProtocol)
@@ -94,14 +94,19 @@ module Mongrel
94
94
  # a key. If someone want to donate any patches. Otherwise, this won't
95
95
  # really be useful to most people until 0.7.0.
96
96
 
97
- def initialize(host, port, num_processors=(2**30-1), timeout=0,key = '')
97
+ def initialize(host, port, num_processors=950, x=0, y=nil,key='') # Deal with Mongrel 1.0.1 or earlier, as well as later.
98
98
  @socket = nil
99
99
  @classifier = URIClassifier.new
100
100
  @host = host
101
101
  @port = port
102
102
  @key = key
103
103
  @workers = ThreadGroup.new
104
- @timeout = timeout
104
+ if y
105
+ @throttle = x
106
+ @timeout = y || 60
107
+ else
108
+ @timeout = x
109
+ end
105
110
  @num_processors = num_processors
106
111
  @death_time = 60
107
112
  self.class.const_set(:Instance,self)
data/swiftiply.gemspec CHANGED
@@ -11,7 +11,7 @@ spec = Gem::Specification.new do |s|
11
11
  s.name = 'swiftiply'
12
12
  s.author = %q(Kirk Haines)
13
13
  s.email = %q(wyhaines@gmail.com)
14
- s.version = '0.6.1'
14
+ s.version = '0.6.1.1'
15
15
  s.summary = %q(A fast clustering proxy for web applications.)
16
16
  s.platform = Gem::Platform::RUBY
17
17
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: swiftiply
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.6.1
7
- date: 2007-08-13 00:00:00 +02:00
6
+ version: 0.6.1.1
7
+ date: 2007-11-06 00:00:00 -06:00
8
8
  summary: A fast clustering proxy for web applications.
9
9
  require_paths:
10
10
  - src
@@ -29,52 +29,52 @@ post_install_message:
29
29
  authors:
30
30
  - Kirk Haines
31
31
  files:
32
- - bin
33
32
  - external
34
- - src
33
+ - bin
35
34
  - test
36
- - CONTRIBUTORS
37
- - README
38
- - setup.rb
35
+ - src
39
36
  - ext
40
37
  - swiftiply.gemspec
41
- - bin/swiftiply
38
+ - README
39
+ - CONTRIBUTORS
40
+ - setup.rb
41
+ - external/package.rb
42
+ - external/test_support.rb
42
43
  - bin/mongrel_rails
44
+ - bin/swiftiply
43
45
  - bin/swiftiply_mongrel_rails
44
46
  - bin/echo_client
45
- - external/test_support.rb
46
- - external/package.rb
47
- - src/swiftcore
48
- - src/fastfilereader.rb
49
- - src/swiftcore/types.rb
50
- - src/swiftcore/Swiftiply.rb
51
- - src/swiftcore/swiftiplied_mongrel.rb
52
- - src/swiftcore/evented_mongrel.rb
53
- - src/swiftcore/Swiftiply
54
- - src/swiftcore/Swiftiply/swiftiply_client.rb
55
- - src/swiftcore/Swiftiply/support_pagecache.rb
56
- - test/TC_Swiftiply.rb
57
- - test/TC_ProxyBag.rb
58
47
  - test/TC_ProxyBag
59
48
  - test/TC_Swiftiply
49
+ - test/TC_Swiftiply.rb
50
+ - test/TC_ProxyBag.rb
60
51
  - test/TC_ProxyBag/test_serve_static_file
61
- - test/TC_Swiftiply/mongrel
52
+ - test/TC_Swiftiply/test_serve_normal_proxy_with_authentication
62
53
  - test/TC_Swiftiply/slow_echo_client
54
+ - test/TC_Swiftiply/mongrel
55
+ - test/TC_Swiftiply/test_serve_static_file_from_cachedir
63
56
  - test/TC_Swiftiply/test_serve_static_file
64
57
  - test/TC_Swiftiply/test_serve_normal_proxy
65
- - test/TC_Swiftiply/test_serve_static_file_from_cachedir
66
- - test/TC_Swiftiply/test_serve_normal_proxy_with_authentication
58
+ - test/TC_Swiftiply/mongrel/threaded_hello.rb
67
59
  - test/TC_Swiftiply/mongrel/swiftiplied_hello.rb
68
60
  - test/TC_Swiftiply/mongrel/evented_hello.rb
69
- - test/TC_Swiftiply/mongrel/threaded_hello.rb
70
61
  - test/TC_Swiftiply/test_serve_static_file_from_cachedir/public
62
+ - src/fastfilereader.rb
63
+ - src/swiftcore
64
+ - src/swiftcore/types.rb
65
+ - src/swiftcore/Swiftiply
66
+ - src/swiftcore/evented_mongrel.rb
67
+ - src/swiftcore/Swiftiply.rb
68
+ - src/swiftcore/swiftiplied_mongrel.rb
69
+ - src/swiftcore/Swiftiply/swiftiply_client.rb
70
+ - src/swiftcore/Swiftiply/support_pagecache.rb
71
71
  - ext/swiftiply_parse
72
72
  - ext/fastfilereader
73
73
  - ext/swiftiply_parse/parse.rl
74
- - ext/fastfilereader/extconf.rb
75
74
  - ext/fastfilereader/rubymain.cpp
76
- - ext/fastfilereader/mapper.cpp
75
+ - ext/fastfilereader/extconf.rb
77
76
  - ext/fastfilereader/mapper.h
77
+ - ext/fastfilereader/mapper.cpp
78
78
  test_files: []
79
79
 
80
80
  rdoc_options: