class Dizby::UnixProtocol::Server
Public Class Methods
new(args, filename)
click to toggle source
Calls superclass method
# File lib/dizby/protocols/unix.rb, line 48 def initialize(args, filename) unless filename temp = Tempfile.new(%w(dizby-unix .socket)) filename = temp.path temp.close! end socket = UNIXServer.open(filename) UnixProtocol.apply_sockopt(socket) args.uri = "drbunix:#{filename}" super(args, socket) self.class.set_permissions(filename, args.config) end
Private Class Methods
set_permissions(filename, config)
click to toggle source
# File lib/dizby/protocols/unix.rb, line 84 def self.set_permissions(filename, config) owner = config[:unix_owner] group = config[:unix_group] mode = config[:unix_mode] if owner || group require 'etc' owner = Etc.getpwnam(owner).uid if owner group = Etc.getgrnam(group).gid if group File.chown(owner, group, filename) end File.chmod(mode, filename) if mode end
Public Instance Methods
accept()
click to toggle source
Calls superclass method
# File lib/dizby/protocols/unix.rb, line 77 def accept socket = super UnixProtocol.apply_sockopt(socket) BasicConnection.new(self, socket) end
close()
click to toggle source
# File lib/dizby/protocols/unix.rb, line 64 def close if stream path = stream.path stream.close self.stream = nil log.debug("unlinking #{path}") File.unlink(path) end close_shutdown_pipe end