lib/darwin/sys/admin.rb in sys-admin-1.7.5 vs lib/darwin/sys/admin.rb in sys-admin-1.7.6

- old
+ new

@@ -3,24 +3,23 @@ # The Darwin specific code. module Sys class Admin - private - # :no-doc: BUF_MAX = 65536 # Max buf size for retry. + private_constant :BUF_MAX attach_function :getlogin_r, [:pointer, :int], :int attach_function :getpwnam_r, [:string, :pointer, :pointer, :size_t, :pointer], :int attach_function :getpwuid_r, [:long, :pointer, :pointer, :size_t, :pointer], :int attach_function :getgrnam_r, [:string, :pointer, :pointer, :size_t, :pointer], :int attach_function :getgrgid_r, [:long, :pointer, :pointer, :size_t, :pointer], :int attach_function :getlastlogx, [:long, :pointer], :pointer - private_class_method :getlogin_r, :getpwnam_r, :getpwuid_r, :getgrnam_r - private_class_method :getgrgid_r, :getlastlogx + private_class_method :getlogin_r, :getpwnam_r, :getpwuid_r + private_class_method :getgrnam_r, :getgrgid_r, :getlastlogx # struct passwd from /usr/include/pwd.h class PasswdStruct < FFI::Struct layout( :pw_name, :string, @@ -34,31 +33,35 @@ :pw_shell, :string, :pw_expire, :ulong ) end + private_constant :PasswdStruct + # struct group from /usr/include/grp.h class GroupStruct < FFI::Struct layout( :gr_name, :string, :gr_passwd, :string, :gr_gid, :uint, :gr_mem, :pointer ) end + private_constant :GroupStruct + # I'm blending the timeval struct in directly here class LastlogxStruct < FFI::Struct layout( :tv_sec, :long, :tv_usec, :long, :ll_line, [:char, 32], :ll_host, [:char, 256] ) end - public + private_constant :LastlogxStruct # Returns the login for the current process. # def self.get_login buf = FFI::MemoryPointer.new(:char, 256) @@ -183,22 +186,22 @@ end groups end - private - # Takes a GroupStruct and converts it to a Group object. def self.get_group_from_struct(grp) Group.new do |g| g.name = grp[:gr_name] g.passwd = grp[:gr_passwd] g.gid = grp[:gr_gid] g.members = grp[:gr_mem].read_array_of_string end end + private_class_method :get_group_from_struct + # Takes a UserStruct and converts it to a User object. def self.get_user_from_struct(pwd) user = User.new do |u| u.name = pwd[:pw_name] u.passwd = pwd[:pw_passwd] @@ -221,17 +224,21 @@ end user end + private_class_method :get_user_from_struct + # Gets lastlog information for the given user. def self.get_lastlog_info(uid) lastlog = LastlogxStruct.new # We don't check for failure here because most will fail due to # lack of permissions and/or simple lack of information. ptr = getlastlogx(uid, lastlog) ptr.null? ? nil : lastlog end + + private_class_method :get_lastlog_info end end