Hi
I’m trying to make a simple web server to provide decryption to a C#
app that can’t access OpenSSL libraries. It has to run on a FreeBSD
server so I need to make it run as a daemon, but I can’t work out how.
The skeleton of the code is below. I’ve noticed there is a
WEBrick::Daemon class but I can’t figure out how to use it. I’ve
tried using script/server from Rails as a template but it’s pretty
complex. Can anyone offer some hints?
Thanks in advance
Ashley
#!/usr/bin/env ruby
class PasswordServer
include WEBrick
def initialize(port)
decrypter_proc = lambda { |request, response|
# blah
}
decrypt = HTTPServlet::ProcHandler.new(decrypter_proc)
@server = HTTPServer.new(:Port => port)
@server.mount("/decrypt", decrypt)
end
def start
trap(“INT”) { server.shutdown }
trap(“TERM”) { server.shutdown }
server.start
end
end
if $0 == FILE
PasswordServer.new(2999).start
end
On 12/13/06, Ashley M. [email protected] wrote:
The skeleton of the code is below. I’ve noticed there is a
WEBrick::Daemon class but I can’t figure out how to use it. I’ve
tried using script/server from Rails as a template but it’s pretty
complex. Can anyone offer some hints?
blows dust off of gambit
We just pass a become_daemon flag in our subclass of
Webrick::HTTPServer, and then use this to determine whether or not to
start the Daemon. There is some extra stuff in there, but I figured
it’d be useful to see it in context.
def initialize( game_class,
port = 80, html_dir = "html", become_daemon = false )
super(:Port => port)
@html_dir = File.join(File.expand_path(File.dirname($0)), html_dir)
self.class.const_set(:SERVER, self)
@server_message = nil
@game_class = game_class
@games = Hash.new
@players = Hash.new
WEBrick::Daemon.start if become_daemon
mount_proc("/") { |req, resp| serve_file(req, resp, req.path) }
mount_proc("/view") { |req, resp| serve_view(req, resp) }
mount_proc("/event") { |req, resp| serve_event(req, resp) }
mount_proc("/server") { |req, resp| serve_server_event(req, resp) }
['INT', 'TERM'].each { |signal| trap(signal) { shutdown } }
end
On 12/13/06, Gregory B. [email protected] wrote:
Webrick::HTTPServer, and then use this to determine whether or not to
start the Daemon. There is some extra stuff in there, but I figured
it’d be useful to see it in context.
Here is the whole server, btw. http://tinyurl.com/yjet4l
Note, bug JEG2 if you have questions, aside from light debugging, I’ve
only worked with the gambit server externally.
On 13 Dec 2006, at 14:46, Gregory B. wrote:
Here is the whole server, btw. http://tinyurl.com/yjet4l
Note, bug JEG2 if you have questions, aside from light debugging, I’ve
only worked with the gambit server externally.
Cheers! I’ve extracted the important bits out of your code and it’s
working fine. Thanks for replying so quick.
Ashley
On 12/13/06, Ashley M. [email protected] wrote:
Cheers! I’ve extracted the important bits out of your code and it’s
working fine. Thanks for replying so quick.
Great to hear. Best of luck!
-greg