$77 GRAYBYTE WORDPRESS FILE MANAGER $60

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.23
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/ruby18/lib64/ruby/1.8/drb/

HOME
Current File : /opt/alt/ruby18/lib64/ruby/1.8/drb//unix.rb
require 'socket'
require 'drb/drb'
require 'tmpdir'

raise(LoadError, "UNIXServer is required") unless defined?(UNIXServer)

module DRb

  class DRbUNIXSocket < DRbTCPSocket
    def self.parse_uri(uri)
      if /^drbunix:(.*?)(\?(.*))?$/ =~ uri 
	filename = $1
	option = $3
	[filename, option]
      else
	raise(DRbBadScheme, uri) unless uri =~ /^drbunix:/
	raise(DRbBadURI, 'can\'t parse uri:' + uri)
      end
    end

    def self.open(uri, config)
      filename, option = parse_uri(uri)
      filename.untaint
      soc = UNIXSocket.open(filename)
      self.new(uri, soc, config)
    end

    def self.open_server(uri, config)
      filename, option = parse_uri(uri)
      if filename.size == 0
	soc = temp_server
        filename = soc.path
	uri = 'drbunix:' + soc.path
      else
	soc = UNIXServer.open(filename)
      end
      owner = config[:UNIXFileOwner]
      group = config[:UNIXFileGroup]
      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
      mode = config[:UNIXFileMode]
      File.chmod(mode, filename) if mode

      self.new(uri, soc, config, true)
    end

    def self.uri_option(uri, config)
      filename, option = parse_uri(uri)
      return "drbunix:#{filename}", option
    end

    def initialize(uri, soc, config={}, server_mode = false)
      super(uri, soc, config)
      set_sockopt(@socket)
      @server_mode = server_mode
      @acl = nil
    end
    
    # import from tempfile.rb
    Max_try = 10
    private
    def self.temp_server
      tmpdir = Dir::tmpdir
      n = 0
      while true
	begin
	  tmpname = sprintf('%s/druby%d.%d', tmpdir, $$, n)
	  lock = tmpname + '.lock'
	  unless File.exist?(tmpname) or File.exist?(lock)
	    Dir.mkdir(lock)
	    break
	  end
	rescue
	  raise "cannot generate tempfile `%s'" % tmpname if n >= Max_try
	  #sleep(1)
	end
	n += 1
      end
      soc = UNIXServer.new(tmpname)
      Dir.rmdir(lock)
      soc
    end

    public
    def close
      return unless @socket
      path = @socket.path if @server_mode
      @socket.close
      File.unlink(path) if @server_mode
      @socket = nil
    end

    def accept
      s = @socket.accept
      self.class.new(nil, s, @config)
    end

    def set_sockopt(soc)
      soc.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) if defined? Fcntl::FD_CLOEXEC
    end
  end

  DRbProtocol.add_protocol(DRbUNIXSocket)
end


Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
3 Mar 2024 10.48 PM
root / root
0755
acl.rb
2.581 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
drb.rb
52.199 KB
3 Jul 2009 12.40 AM
root / linksafe
0644
eq.rb
0.247 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
extserv.rb
1.056 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
extservm.rb
1.601 KB
13 Nov 2007 1.04 PM
root / linksafe
0644
gw.rb
1.88 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
invokemethod.rb
0.757 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
observer.rb
0.36 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
ssl.rb
4.897 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
timeridconv.rb
1.472 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
unix.rb
2.429 KB
6 Jun 2012 5.20 AM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF