# File lib/puppet/network/server.rb, line 53
53:   def initialize(args = {})
54:     valid_args = [:handlers, :xmlrpc_handlers, :port]
55:     bad_args = args.keys.find_all { |p| ! valid_args.include?(p) }.collect { |p| p.to_s }.join(",")
56:     raise ArgumentError, "Invalid argument(s) #{bad_args}" unless bad_args == ""
57:     @server_type = Puppet[:servertype] or raise "No servertype configuration found."  # e.g.,  WEBrick, Mongrel, etc.
58:     http_server_class || raise(ArgumentError, "Could not determine HTTP Server class for server type [#{@server_type}]")
59: 
60:     @port = args[:port] || Puppet[:masterport] || raise(ArgumentError, "Must specify :port or configure Puppet :masterport")
61:     @address = determine_bind_address
62: 
63:     @protocols = [ :rest, :xmlrpc ]
64:     @listening = false
65:     @routes = {}
66:     @xmlrpc_routes = {}
67:     self.register(args[:handlers]) if args[:handlers]
68:     self.register_xmlrpc(args[:xmlrpc_handlers]) if args[:xmlrpc_handlers]
69: 
70:     # Make sure we have all of the directories we need to function.
71:     Puppet.settings.use(:main, :ssl, Puppet[:name])
72:   end