# HG changeset patch # User John W. Eaton # Date 1463591475 14400 # Node ID 815b2f500fab83ac23beef323e663a270d5c3272 # Parent c218a5b31ad7ca94a96c99e753229c2b99105f51 use namespace for system password wrapper class * oct-passwd.h, oct-passwd.cc: Put password class in octave::sys namespace. Change all uses. (octave_passwd): Now a deprecated typedef for octave::sys::password. diff -r c218a5b31ad7 -r 815b2f500fab libinterp/corefcn/getpwent.cc --- a/libinterp/corefcn/getpwent.cc Wed May 18 12:35:37 2016 -0400 +++ b/libinterp/corefcn/getpwent.cc Wed May 18 13:11:15 2016 -0400 @@ -41,7 +41,7 @@ // Password file functions. (Why not?) static octave_value -mk_pw_map (const octave_passwd& pw) +mk_pw_map (const octave::sys::password& pw) { octave_value retval; @@ -80,8 +80,8 @@ std::string msg; - // octave_passwd::getpwent may set msg. - octave_value val = mk_pw_map (octave_passwd::getpwent (msg)); + // octave::sys::password::getpwent may set msg. + octave_value val = mk_pw_map (octave::sys::password::getpwent (msg)); return ovl (val, msg); } @@ -108,8 +108,8 @@ std::string msg; - // octave_passwd::getpwuid may set msg. - octave_value val = mk_pw_map (octave_passwd::getpwuid (uid, msg)); + // octave::sys::password::getpwuid may set msg. + octave_value val = mk_pw_map (octave::sys::password::getpwuid (uid, msg)); return ovl (val, msg); } @@ -131,8 +131,8 @@ std::string msg; - // octave_passwd::getpwnam may set msg. - octave_value val = mk_pw_map (octave_passwd::getpwnam (s, msg)); + // octave::sys::password::getpwnam may set msg. + octave_value val = mk_pw_map (octave::sys::password::getpwnam (s, msg)); return ovl (val, msg); } @@ -149,8 +149,8 @@ std::string msg; - // octave_passwd::setpwent may set msg. - int status = octave_passwd::setpwent (msg); + // octave::sys::password::setpwent may set msg. + int status = octave::sys::password::setpwent (msg); return ovl (static_cast (status), msg); } @@ -167,8 +167,8 @@ std::string msg; - // octave_passwd::endpwent may set msg. - int status = octave_passwd::endpwent (msg); + // octave::sys::password::endpwent may set msg. + int status = octave::sys::password::endpwent (msg); return ovl (static_cast (status), msg); } diff -r c218a5b31ad7 -r 815b2f500fab liboctave/system/file-ops.cc --- a/liboctave/system/file-ops.cc Wed May 18 12:35:37 2016 -0400 +++ b/liboctave/system/file-ops.cc Wed May 18 13:11:15 2016 -0400 @@ -251,7 +251,7 @@ // No preexpansion hook, or the preexpansion hook failed. Look in the // password database. - octave_passwd pw = octave_passwd::getpwnam (username); + octave::sys::password pw = octave::sys::password::getpwnam (username); if (! pw) { diff -r c218a5b31ad7 -r 815b2f500fab liboctave/system/oct-env.cc --- a/liboctave/system/oct-env.cc Wed May 18 12:35:37 2016 -0400 +++ b/liboctave/system/oct-env.cc Wed May 18 13:11:15 2016 -0400 @@ -479,7 +479,7 @@ if (hd.empty ()) { - octave_passwd pw = octave_passwd::getpwuid (octave::sys::getuid ()); + octave::sys::password pw = octave::sys::password::getpwuid (octave::sys::getuid ()); hd = pw ? pw.dir () : std::string (file_ops::dir_sep_str ()); } @@ -492,7 +492,7 @@ { if (user_name.empty ()) { - octave_passwd pw = octave_passwd::getpwuid (octave::sys::getuid ()); + octave::sys::password pw = octave::sys::password::getpwuid (octave::sys::getuid ()); user_name = pw ? pw.name () : std::string ("unknown"); } diff -r c218a5b31ad7 -r 815b2f500fab liboctave/system/oct-passwd.cc --- a/liboctave/system/oct-passwd.cc Wed May 18 12:35:37 2016 -0400 +++ b/liboctave/system/oct-passwd.cc Wed May 18 13:11:15 2016 -0400 @@ -43,189 +43,196 @@ (*current_liboctave_error_handler) ("invalid password object"); } -std::string -octave_passwd::name (void) const -{ - if (! ok ()) - err_invalid (); - - return pw_name; -} - -std::string -octave_passwd::passwd (void) const -{ - if (! ok ()) - err_invalid (); - - return pw_passwd; -} - -uid_t -octave_passwd::uid (void) const +namespace +octave { - if (! ok ()) - err_invalid (); - - return pw_uid; -} + namespace + sys + { + std::string + password::name (void) const + { + if (! ok ()) + err_invalid (); -gid_t -octave_passwd::gid (void) const -{ - if (! ok ()) - err_invalid (); + return m_name; + } + + std::string + password::passwd (void) const + { + if (! ok ()) + err_invalid (); + + return m_passwd; + } - return pw_gid; -} + uid_t + password::uid (void) const + { + if (! ok ()) + err_invalid (); + + return m_uid; + } -std::string -octave_passwd::gecos (void) const -{ - if (! ok ()) - err_invalid (); + gid_t + password::gid (void) const + { + if (! ok ()) + err_invalid (); - return pw_gecos; -} + return m_gid; + } + + std::string + password::gecos (void) const + { + if (! ok ()) + err_invalid (); -std::string -octave_passwd::dir (void) const -{ - if (! ok ()) - err_invalid (); + return m_gecos; + } - return pw_dir; -} + std::string + password::dir (void) const + { + if (! ok ()) + err_invalid (); -std::string -octave_passwd::shell (void) const -{ - if (! ok ()) - err_invalid (); + return m_dir; + } - return pw_shell; -} + std::string + password::shell (void) const + { + if (! ok ()) + err_invalid (); + + return m_shell; + } -octave_passwd -octave_passwd::getpwent (void) -{ - std::string msg; - return getpwent (msg); -} + password + password::getpwent (void) + { + std::string msg; + return getpwent (msg); + } -octave_passwd -octave_passwd::getpwent (std::string& msg) -{ + password + password::getpwent (std::string& msg) + { #if defined HAVE_GETPWENT - msg = ""; - return octave_passwd (::getpwent (), msg); + msg = ""; + return password (::getpwent (), msg); #else - msg = NOT_SUPPORTED ("getpwent"); - return octave_passwd (); + msg = NOT_SUPPORTED ("getpwent"); + return password (); #endif -} + } -octave_passwd -octave_passwd::getpwuid (uid_t uid) -{ - std::string msg; - return getpwuid (uid, msg); -} + password + password::getpwuid (uid_t uid) + { + std::string msg; + return getpwuid (uid, msg); + } -octave_passwd -octave_passwd::getpwuid (uid_t uid, std::string& msg) -{ + password + password::getpwuid (uid_t uid, std::string& msg) + { #if defined (HAVE_GETPWUID) - msg = ""; - return octave_passwd (::getpwuid (uid), msg); + msg = ""; + return password (::getpwuid (uid), msg); #else - msg = NOT_SUPPORTED ("getpwuid"); - return octave_passwd (); + msg = NOT_SUPPORTED ("getpwuid"); + return password (); #endif -} + } -octave_passwd -octave_passwd::getpwnam (const std::string& nm) -{ - std::string msg; - return getpwnam (nm, msg); -} + password + password::getpwnam (const std::string& nm) + { + std::string msg; + return getpwnam (nm, msg); + } -octave_passwd -octave_passwd::getpwnam (const std::string& nm, std::string& msg) -{ + password + password::getpwnam (const std::string& nm, std::string& msg) + { #if defined (HAVE_GETPWNAM) - msg = ""; - return octave_passwd (::getpwnam (nm.c_str ()), msg); + msg = ""; + return password (::getpwnam (nm.c_str ()), msg); #else - msg = NOT_SUPPORTED ("getpwnam"); - return octave_passwd (); + msg = NOT_SUPPORTED ("getpwnam"); + return password (); #endif -} + } -int -octave_passwd::setpwent (void) -{ - std::string msg; - return setpwent (msg); -} + int + password::setpwent (void) + { + std::string msg; + return setpwent (msg); + } -int -octave_passwd::setpwent (std::string& msg) -{ + int + password::setpwent (std::string& msg) + { #if defined (HAVE_SETPWENT) - msg = ""; - ::setpwent (); - return 0; + msg = ""; + ::setpwent (); + return 0; #else - msg = NOT_SUPPORTED ("setpwent"); - return -1; + msg = NOT_SUPPORTED ("setpwent"); + return -1; #endif -} + } -int -octave_passwd::endpwent (void) -{ - std::string msg; - return endpwent (msg); -} + int + password::endpwent (void) + { + std::string msg; + return endpwent (msg); + } -int -octave_passwd::endpwent (std::string& msg) -{ + int + password::endpwent (std::string& msg) + { #if defined (HAVE_ENDPWENT) - msg = ""; - ::endpwent (); - return 0; + msg = ""; + ::endpwent (); + return 0; #else - msg = NOT_SUPPORTED ("endpwent"); - return -1; + msg = NOT_SUPPORTED ("endpwent"); + return -1; #endif -} + } -octave_passwd::octave_passwd (void *p, std::string& msg) - : pw_name (), pw_passwd (), pw_uid (0), pw_gid (0), pw_gecos (), - pw_dir (), pw_shell (), valid (false) -{ + password::password (void *p, std::string& msg) + : m_name (), m_passwd (), m_uid (0), m_gid (0), m_gecos (), + m_dir (), m_shell (), valid (false) + { #if defined (HAVE_PWD_H) - msg = ""; + msg = ""; - if (p) - { - struct passwd *pw = static_cast (p); + if (p) + { + struct ::passwd *pw = static_cast (p); - pw_name = pw->pw_name; - pw_passwd = pw->pw_passwd; - pw_uid = pw->pw_uid; - pw_gid = pw->pw_gid; - pw_gecos = pw->pw_gecos; - pw_dir = pw->pw_dir; - pw_shell = pw->pw_shell; + m_name = pw->pw_name; + m_passwd = pw->pw_passwd; + m_uid = pw->pw_uid; + m_gid = pw->pw_gid; + m_gecos = pw->pw_gecos; + m_dir = pw->pw_dir; + m_shell = pw->pw_shell; - valid = true; - } + valid = true; + } #else - msg = NOT_SUPPORTED ("password functions"); + msg = NOT_SUPPORTED ("password functions"); #endif + } + } } - diff -r c218a5b31ad7 -r 815b2f500fab liboctave/system/oct-passwd.h --- a/liboctave/system/oct-passwd.h Wed May 18 12:35:37 2016 -0400 +++ b/liboctave/system/oct-passwd.h Wed May 18 13:11:15 2016 -0400 @@ -29,104 +29,119 @@ #include -class -OCTAVE_API -octave_passwd +namespace +octave { -public: - - octave_passwd (void) - : pw_name (), pw_passwd (), pw_uid (0), pw_gid (0), pw_gecos (), - pw_dir (), pw_shell (), valid (false) - { } - - octave_passwd (const octave_passwd& pw) - : pw_name (pw.pw_name), pw_passwd (pw.pw_passwd), - pw_uid (pw.pw_uid), pw_gid (pw.pw_gid), pw_gecos (pw.pw_gecos), - pw_dir (pw.pw_dir), pw_shell (pw.pw_shell), valid (pw.valid) - { } - - octave_passwd& operator = (const octave_passwd& pw) + namespace + sys { - if (this != &pw) - { - pw_name = pw.pw_name; - pw_passwd = pw.pw_passwd; - pw_uid = pw.pw_uid; - pw_gid = pw.pw_gid; - pw_gecos = pw.pw_gecos; - pw_dir = pw.pw_dir; - pw_shell = pw.pw_shell; - valid = pw.valid; - } + class + OCTAVE_API + password + { + public: - return *this; - } + password (void) + : m_name (), m_passwd (), m_uid (0), m_gid (0), m_gecos (), + m_dir (), m_shell (), valid (false) + { } + + password (const password& pw) + : m_name (pw.m_name), m_passwd (pw.m_passwd), + m_uid (pw.m_uid), m_gid (pw.m_gid), m_gecos (pw.m_gecos), + m_dir (pw.m_dir), m_shell (pw.m_shell), valid (pw.valid) + { } - ~octave_passwd (void) { } - - std::string name (void) const; - - std::string passwd (void) const; - - uid_t uid (void) const; + password& operator = (const password& pw) + { + if (this != &pw) + { + m_name = pw.m_name; + m_passwd = pw.m_passwd; + m_uid = pw.m_uid; + m_gid = pw.m_gid; + m_gecos = pw.m_gecos; + m_dir = pw.m_dir; + m_shell = pw.m_shell; + valid = pw.valid; + } - gid_t gid (void) const; + return *this; + } - std::string gecos (void) const; + ~password (void) { } + + std::string name (void) const; + + std::string passwd (void) const; - std::string dir (void) const; + uid_t uid (void) const; + + gid_t gid (void) const; - std::string shell (void) const; + std::string gecos (void) const; + + std::string dir (void) const; + + std::string shell (void) const; - bool ok (void) const { return valid; } + bool ok (void) const { return valid; } - operator bool () const { return ok (); } + operator bool () const { return ok (); } - static octave_passwd getpwent (void); - static octave_passwd getpwent (std::string& msg); + static password getpwent (void); + static password getpwent (std::string& msg); - static octave_passwd getpwuid (uid_t uid); - static octave_passwd getpwuid (uid_t uid, std::string& msg); + static password getpwuid (uid_t uid); + static password getpwuid (uid_t uid, std::string& msg); + + static password getpwnam (const std::string& nm); + static password getpwnam (const std::string& nm, std::string& msg); - static octave_passwd getpwnam (const std::string& nm); - static octave_passwd getpwnam (const std::string& nm, std::string& msg); + static int setpwent (void); + static int setpwent (std::string& msg); - static int setpwent (void); - static int setpwent (std::string& msg); + static int endpwent (void); + static int endpwent (std::string& msg); - static int endpwent (void); - static int endpwent (std::string& msg); + private: -private: + // User name. + std::string m_name; - // User name. - std::string pw_name; + // Encrypted password. + std::string m_passwd; - // Encrypted password. - std::string pw_passwd; + // Numeric user id. + uid_t m_uid; - // Numeric user id. - uid_t pw_uid; + // Numeric group id. + gid_t m_gid; - // Numeric group id. - gid_t pw_gid; + // Miscellaneous junk. + std::string m_gecos; - // Miscellaneous junk. - std::string pw_gecos; + // Home directory. + std::string m_dir; + + // Login shell. + std::string m_shell; - // Home directory. - std::string pw_dir; - - // Login shell. - std::string pw_shell; + // Flag that says whether we have been properly initialized. + bool valid; - // Flag that says whether we have been properly initialized. - bool valid; + // This is how we will create a password object from a pointer + // to a struct passwd. + password (void *p, std::string& msg); + }; + } +} - // This is how we will create an octave_passwd object from a pointer - // to a struct passwd. - octave_passwd (void *p, std::string& msg); -}; +#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS) + +OCTAVE_DEPRECATED ("use octave::sys::password instead") +typedef octave::sys::password octave_passwd; #endif + +#endif diff -r c218a5b31ad7 -r 815b2f500fab liboctave/util/kpse.cc --- a/liboctave/util/kpse.cc Wed May 18 12:35:37 2016 -0400 +++ b/liboctave/util/kpse.cc Wed May 18 13:11:15 2016 -0400 @@ -1244,7 +1244,7 @@ /* We only need the cast here for (deficient) systems which do not declare 'getpwnam' in . */ - octave_passwd p = octave_passwd::getpwnam (user); + octave::sys::password p = octave::sys::password::getpwnam (user); /* If no such user, just use '.'. */ std::string home = p ? p.dir () : std::string (".");