ruby-shadow 2.3.2 → 2.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README +1 -0
- data/pwd/shadow.c +10 -9
- data/ruby-shadow.gemspec +1 -1
- data/shadow/shadow.c +21 -52
- metadata +12 -15
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 00dc5e2fb7b9124c5e9489f228d5d35ed06487d3
|
4
|
+
data.tar.gz: 18183d816f024a50f1bde785048d9476e4c893e7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b3ad44e8ce154effe359199c0db55a90d88f9e8d57d6b5de84b96eca95eb20489604359288716f7062d2d53790e8994f57821401114b48f5bef3b3123ed41776
|
7
|
+
data.tar.gz: d60ce3599b533e8a54664184a3918a64b8cd9785a0f45d7f80fd4cb65e0a930a549cf458e661be115bf77333aac4e55308637828126583d0cdc91c36f8c0b1cb
|
data/README
CHANGED
data/pwd/shadow.c
CHANGED
@@ -54,16 +54,17 @@ rb_shadow_endspent(VALUE self)
|
|
54
54
|
|
55
55
|
static VALUE convert_pw_struct( struct passwd *entry )
|
56
56
|
{
|
57
|
+
/* Hmm. Why custom pw_change instead of sp_lstchg? */
|
57
58
|
return rb_struct_new(rb_sPasswdEntry,
|
58
|
-
rb_tainted_str_new2(entry->pw_name),
|
59
|
-
rb_tainted_str_new2(entry->pw_passwd),
|
60
|
-
Qnil, /* date when the password was last changed (in days since Jan 1, 1970) */
|
61
|
-
Qnil, /* days that password must stay same */
|
62
|
-
Qnil, /* days until password changes. */
|
63
|
-
Qnil, /* days before expiration where user is warned */
|
64
|
-
Qnil, /* days after password expiration that account becomes inactive */
|
65
|
-
|
66
|
-
|
59
|
+
rb_tainted_str_new2(entry->pw_name), /* sp_namp */
|
60
|
+
rb_tainted_str_new2(entry->pw_passwd), /* sp_pwdp, encryped password */
|
61
|
+
Qnil, /* sp_lstchg, date when the password was last changed (in days since Jan 1, 1970) */
|
62
|
+
Qnil, /* sp_min, days that password must stay same */
|
63
|
+
Qnil, /* sp_max, days until password changes. */
|
64
|
+
Qnil, /* sp_warn, days before expiration where user is warned */
|
65
|
+
Qnil, /* sp_inact, days after password expiration that account becomes inactive */
|
66
|
+
INT2FIX(difftime(entry->pw_change, 0) / (24*60*60)), /* pw_change */
|
67
|
+
INT2FIX(difftime(entry->pw_expire, 0) / (24*60*60)), /* sp_expire */
|
67
68
|
Qnil, /* sp_flag */
|
68
69
|
NULL);
|
69
70
|
}
|
data/ruby-shadow.gemspec
CHANGED
data/shadow/shadow.c
CHANGED
@@ -31,6 +31,21 @@ static VALUE rb_sGroupEntry;
|
|
31
31
|
static VALUE rb_eFileLock;
|
32
32
|
|
33
33
|
|
34
|
+
static VALUE convert_pw_struct( struct spwd *entry )
|
35
|
+
{
|
36
|
+
return rb_struct_new(rb_sPasswdEntry,
|
37
|
+
rb_tainted_str_new2(entry->sp_namp),
|
38
|
+
rb_tainted_str_new2(entry->sp_pwdp),
|
39
|
+
INT2FIX(entry->sp_lstchg),
|
40
|
+
INT2FIX(entry->sp_min),
|
41
|
+
INT2FIX(entry->sp_max),
|
42
|
+
INT2FIX(entry->sp_warn),
|
43
|
+
INT2FIX(entry->sp_inact),
|
44
|
+
Qnil, /* used by BSD, pw_change, date when the password expires, in days since Jan 1, 1970 */
|
45
|
+
INT2FIX(entry->sp_expire),
|
46
|
+
INT2FIX(entry->sp_flag),
|
47
|
+
NULL);
|
48
|
+
};
|
34
49
|
static VALUE
|
35
50
|
rb_shadow_setspent(VALUE self)
|
36
51
|
{
|
@@ -62,18 +77,7 @@ rb_shadow_sgetspent(VALUE self, VALUE str)
|
|
62
77
|
if( entry == NULL )
|
63
78
|
return Qnil;
|
64
79
|
|
65
|
-
result =
|
66
|
-
rb_tainted_str_new2(entry->sp_namp),
|
67
|
-
rb_tainted_str_new2(entry->sp_pwdp),
|
68
|
-
INT2FIX(entry->sp_lstchg),
|
69
|
-
INT2FIX(entry->sp_min),
|
70
|
-
INT2FIX(entry->sp_max),
|
71
|
-
INT2FIX(entry->sp_warn),
|
72
|
-
INT2FIX(entry->sp_inact),
|
73
|
-
Qnil, /* used by BSD, pw_change, date when the password expires, in days since Jan 1, 1970 */
|
74
|
-
INT2FIX(entry->sp_expire),
|
75
|
-
INT2FIX(entry->sp_flag),
|
76
|
-
NULL);
|
80
|
+
result = convert_pw_struct( entry );
|
77
81
|
free(entry);
|
78
82
|
return result;
|
79
83
|
};
|
@@ -92,18 +96,7 @@ rb_shadow_fgetspent(VALUE self, VALUE file)
|
|
92
96
|
if( entry == NULL )
|
93
97
|
return Qnil;
|
94
98
|
|
95
|
-
result =
|
96
|
-
rb_tainted_str_new2(entry->sp_namp),
|
97
|
-
rb_tainted_str_new2(entry->sp_pwdp),
|
98
|
-
INT2FIX(entry->sp_lstchg),
|
99
|
-
INT2FIX(entry->sp_min),
|
100
|
-
INT2FIX(entry->sp_max),
|
101
|
-
INT2FIX(entry->sp_warn),
|
102
|
-
INT2FIX(entry->sp_inact),
|
103
|
-
Qnil, /* used by BSD, pw_change, date when the password expires, in days since Jan 1, 1970 */
|
104
|
-
INT2FIX(entry->sp_expire),
|
105
|
-
INT2FIX(entry->sp_flag),
|
106
|
-
NULL);
|
99
|
+
result = convert_pw_struct( entry );
|
107
100
|
return result;
|
108
101
|
};
|
109
102
|
|
@@ -118,19 +111,7 @@ rb_shadow_getspent(VALUE self)
|
|
118
111
|
if( entry == NULL )
|
119
112
|
return Qnil;
|
120
113
|
|
121
|
-
|
122
|
-
rb_tainted_str_new2(entry->sp_namp),
|
123
|
-
rb_tainted_str_new2(entry->sp_pwdp),
|
124
|
-
INT2FIX(entry->sp_lstchg),
|
125
|
-
INT2FIX(entry->sp_min),
|
126
|
-
INT2FIX(entry->sp_max),
|
127
|
-
INT2FIX(entry->sp_warn),
|
128
|
-
INT2FIX(entry->sp_inact),
|
129
|
-
Qnil, /* used by BSD, pw_change, date when the password expires, in days since Jan 1, 1970 */
|
130
|
-
INT2FIX(entry->sp_expire),
|
131
|
-
INT2FIX(entry->sp_flag),
|
132
|
-
NULL);
|
133
|
-
return result;
|
114
|
+
return convert_pw_struct( entry );
|
134
115
|
};
|
135
116
|
|
136
117
|
static VALUE
|
@@ -146,23 +127,11 @@ rb_shadow_getspnam(VALUE self, VALUE name)
|
|
146
127
|
|
147
128
|
if( entry == NULL )
|
148
129
|
return Qnil;
|
149
|
-
|
150
|
-
result = rb_struct_new(rb_sPasswdEntry,
|
151
|
-
rb_tainted_str_new2(entry->sp_namp),
|
152
|
-
rb_tainted_str_new2(entry->sp_pwdp),
|
153
|
-
INT2FIX(entry->sp_lstchg),
|
154
|
-
INT2FIX(entry->sp_min),
|
155
|
-
INT2FIX(entry->sp_max),
|
156
|
-
INT2FIX(entry->sp_warn),
|
157
|
-
INT2FIX(entry->sp_inact),
|
158
|
-
Qnil, /* used by BSD, pw_change, date when the password expires, in days since Jan 1, 1970 */
|
159
|
-
INT2FIX(entry->sp_expire),
|
160
|
-
INT2FIX(entry->sp_flag),
|
161
|
-
NULL);
|
162
|
-
return result;
|
130
|
+
return convert_pw_struct( entry );
|
163
131
|
};
|
164
132
|
|
165
133
|
|
134
|
+
|
166
135
|
static VALUE
|
167
136
|
rb_shadow_putspent(VALUE self, VALUE entry, VALUE file)
|
168
137
|
{
|
@@ -274,7 +243,7 @@ Init_shadow()
|
|
274
243
|
rb_sPasswdEntry = rb_struct_define("PasswdEntry",
|
275
244
|
"sp_namp","sp_pwdp","sp_lstchg",
|
276
245
|
"sp_min","sp_max","sp_warn",
|
277
|
-
"sp_inact","sp_expire","sp_flag", NULL);
|
246
|
+
"sp_inact", "pw_change", "sp_expire","sp_flag", NULL);
|
278
247
|
rb_sGroupEntry = rb_struct_define("GroupEntry",
|
279
248
|
"sg_name","sg_passwd",
|
280
249
|
"sg_adm","sg_mem",NULL);
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-shadow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
5
|
-
prerelease:
|
4
|
+
version: 2.3.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Adam Palmblad
|
@@ -14,7 +13,7 @@ authors:
|
|
14
13
|
autorequire:
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
|
-
date:
|
16
|
+
date: 2014-02-25 00:00:00.000000000 Z
|
18
17
|
dependencies: []
|
19
18
|
description: This module provides access to shadow passwords on Linux, OSX, FreeBSD,
|
20
19
|
OpenBSD, and Solaris
|
@@ -25,41 +24,39 @@ extensions:
|
|
25
24
|
- extconf.rb
|
26
25
|
extra_rdoc_files: []
|
27
26
|
files:
|
28
|
-
- extconf.rb
|
29
27
|
- HISTORY
|
30
28
|
- LICENSE
|
31
29
|
- MANIFEST
|
32
30
|
- README
|
33
31
|
- README.euc
|
34
|
-
-
|
35
|
-
- pwd/shadow.c
|
32
|
+
- extconf.rb
|
36
33
|
- pwd/depend
|
37
|
-
-
|
34
|
+
- pwd/shadow.c
|
35
|
+
- ruby-shadow.gemspec
|
38
36
|
- shadow/depend
|
37
|
+
- shadow/shadow.c
|
39
38
|
homepage: https://github.com/apalmblad/ruby-shadow
|
40
39
|
licenses:
|
41
40
|
- Public Domain License
|
41
|
+
metadata: {}
|
42
42
|
post_install_message:
|
43
43
|
rdoc_options: []
|
44
44
|
require_paths:
|
45
45
|
- lib
|
46
46
|
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
-
none: false
|
48
47
|
requirements:
|
49
|
-
- -
|
48
|
+
- - ">="
|
50
49
|
- !ruby/object:Gem::Version
|
51
50
|
version: '1.8'
|
52
51
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
|
-
none: false
|
54
52
|
requirements:
|
55
|
-
- -
|
53
|
+
- - ">="
|
56
54
|
- !ruby/object:Gem::Version
|
57
55
|
version: '0'
|
58
56
|
requirements: []
|
59
57
|
rubyforge_project:
|
60
|
-
rubygems_version:
|
58
|
+
rubygems_version: 2.2.1
|
61
59
|
signing_key:
|
62
|
-
specification_version:
|
63
|
-
summary:
|
60
|
+
specification_version: 4
|
61
|
+
summary: "*nix Shadow Password Module"
|
64
62
|
test_files: []
|
65
|
-
has_rdoc:
|