62 lines
2.2 KiB
Diff
62 lines
2.2 KiB
Diff
diff --git a/extconf.rb b/extconf.rb
|
|
index d17f926..04f8f97 100644
|
|
--- a/extconf.rb
|
|
+++ b/extconf.rb
|
|
@@ -10,7 +10,7 @@ require 'rbconfig'
|
|
$CFLAGS = case RUBY_VERSION
|
|
when /^1\.9/; '-DRUBY19'
|
|
when /^2\./; '-DRUBY19'
|
|
- when /^3\./; '-DRUBY19'
|
|
+ when /^3\./; '-DRUBY19 -DRUBY30'
|
|
else; ''
|
|
end
|
|
|
|
diff --git a/pwd/shadow.c b/pwd/shadow.c
|
|
index eeb96d4..e73e0db 100644
|
|
--- a/pwd/shadow.c
|
|
+++ b/pwd/shadow.c
|
|
@@ -56,8 +56,13 @@ static VALUE convert_pw_struct( struct passwd *entry )
|
|
{
|
|
/* Hmm. Why custom pw_change instead of sp_lstchg? */
|
|
return rb_struct_new(rb_sPasswdEntry,
|
|
+#if defined(RUBY30)
|
|
+ rb_str_new2(entry->pw_name), /* sp_namp */
|
|
+ rb_str_new2(entry->pw_passwd), /* sp_pwdp, encryped password */
|
|
+#else
|
|
rb_tainted_str_new2(entry->pw_name), /* sp_namp */
|
|
rb_tainted_str_new2(entry->pw_passwd), /* sp_pwdp, encryped password */
|
|
+#endif
|
|
Qnil, /* sp_lstchg, date when the password was last changed (in days since Jan 1, 1970) */
|
|
Qnil, /* sp_min, days that password must stay same */
|
|
Qnil, /* sp_max, days until password changes. */
|
|
@@ -66,7 +71,11 @@ static VALUE convert_pw_struct( struct passwd *entry )
|
|
INT2FIX(difftime(entry->pw_change, 0) / (24*60*60)), /* pw_change */
|
|
INT2FIX(difftime(entry->pw_expire, 0) / (24*60*60)), /* sp_expire */
|
|
Qnil, /* sp_flag */
|
|
+#if defined(RUBY30)
|
|
+ rb_str_new2(entry->pw_class), /* sp_loginclass, user access class */
|
|
+#else
|
|
rb_tainted_str_new2(entry->pw_class), /* sp_loginclass, user access class */
|
|
+#endif
|
|
NULL);
|
|
}
|
|
|
|
diff --git a/shadow/shadow.c b/shadow/shadow.c
|
|
index 35a77a1..5202ce5 100644
|
|
--- a/shadow/shadow.c
|
|
+++ b/shadow/shadow.c
|
|
@@ -34,8 +34,13 @@ static VALUE rb_eFileLock;
|
|
static VALUE convert_pw_struct( struct spwd *entry )
|
|
{
|
|
return rb_struct_new(rb_sPasswdEntry,
|
|
+#if defined(RUBY30)
|
|
+ rb_str_new2(entry->sp_namp),
|
|
+ rb_str_new2(entry->sp_pwdp),
|
|
+#else
|
|
rb_tainted_str_new2(entry->sp_namp),
|
|
rb_tainted_str_new2(entry->sp_pwdp),
|
|
+#endif
|
|
INT2FIX(entry->sp_lstchg),
|
|
INT2FIX(entry->sp_min),
|
|
INT2FIX(entry->sp_max),
|