Skip to content

Commit 56700d5

Browse files
committed
Auto merge of #724 - JayH5:more-pgs, r=alexcrichton
pwd/grp: Add reentrant getgr functions and consolidate getpw functions Commit messages sum it up.
2 parents 6846305 + 48311b0 commit 56700d5

File tree

7 files changed

+30
-51
lines changed

7 files changed

+30
-51
lines changed

src/unix/bsd/mod.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -371,21 +371,10 @@ extern {
371371
pub fn kqueue() -> ::c_int;
372372
pub fn unmount(target: *const ::c_char, arg: ::c_int) -> ::c_int;
373373
pub fn syscall(num: ::c_int, ...) -> ::c_int;
374-
#[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")]
375-
pub fn getpwnam_r(name: *const ::c_char,
376-
pwd: *mut passwd,
377-
buf: *mut ::c_char,
378-
buflen: ::size_t,
379-
result: *mut *mut passwd) -> ::c_int;
380-
#[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")]
381-
pub fn getpwuid_r(uid: ::uid_t,
382-
pwd: *mut passwd,
383-
buf: *mut ::c_char,
384-
buflen: ::size_t,
385-
result: *mut *mut passwd) -> ::c_int;
386374
#[cfg_attr(target_os = "netbsd", link_name = "__getpwent50")]
387375
pub fn getpwent() -> *mut passwd;
388376
pub fn setpwent();
377+
pub fn endpwent();
389378
pub fn getprogname() -> *const ::c_char;
390379
pub fn setprogname(name: *const ::c_char);
391380
pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int;

src/unix/haiku/mod.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -791,11 +791,6 @@ extern {
791791
pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void;
792792
pub fn setgroups(ngroups: ::size_t,
793793
ptr: *const ::gid_t) -> ::c_int;
794-
pub fn getpwuid_r(uid: ::uid_t,
795-
pwd: *mut passwd,
796-
buffer: *mut ::c_char,
797-
bufferSize: ::size_t,
798-
result: *mut *mut passwd) -> ::c_int;
799794
pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int;
800795
pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int)
801796
-> ::c_int;

src/unix/mod.rs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,12 +280,37 @@ cfg_if! {
280280
extern {
281281
pub fn getgrnam(name: *const ::c_char) -> *mut group;
282282
pub fn getgrgid(gid: ::gid_t) -> *mut group;
283+
#[cfg_attr(target_os = "solaris", link_name = "__posix_getgrnam_r")]
284+
pub fn getgrnam_r(name: *const ::c_char,
285+
grp: *mut group,
286+
buf: *mut ::c_char,
287+
buflen: ::size_t,
288+
result: *mut *mut group) -> ::c_int;
289+
#[cfg_attr(target_os = "solaris", link_name = "__posix_getgrgid_r")]
290+
pub fn getgrgid_r(uid: ::uid_t,
291+
grp: *mut group,
292+
buf: *mut ::c_char,
293+
buflen: ::size_t,
294+
result: *mut *mut group) -> ::c_int;
283295

284-
pub fn endpwent();
285296
#[cfg_attr(target_os = "netbsd", link_name = "__getpwnam50")]
286297
pub fn getpwnam(name: *const ::c_char) -> *mut passwd;
287298
#[cfg_attr(target_os = "netbsd", link_name = "__getpwuid50")]
288299
pub fn getpwuid(uid: ::uid_t) -> *mut passwd;
300+
#[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")]
301+
#[cfg_attr(target_os = "solaris", link_name = "__posix_getpwnam_r")]
302+
pub fn getpwnam_r(name: *const ::c_char,
303+
pwd: *mut passwd,
304+
buf: *mut ::c_char,
305+
buflen: ::size_t,
306+
result: *mut *mut passwd) -> ::c_int;
307+
#[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")]
308+
#[cfg_attr(target_os = "solaris", link_name = "__posix_getpwuid_r")]
309+
pub fn getpwuid_r(uid: ::uid_t,
310+
pwd: *mut passwd,
311+
buf: *mut ::c_char,
312+
buflen: ::size_t,
313+
result: *mut *mut passwd) -> ::c_int;
289314

290315
pub fn fprintf(stream: *mut ::FILE,
291316
format: *const ::c_char, ...) -> ::c_int;

src/unix/notbsd/linux/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -987,6 +987,7 @@ extern {
987987
pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int;
988988

989989
pub fn setpwent();
990+
pub fn endpwent();
990991
pub fn getpwent() -> *mut passwd;
991992
pub fn setspent();
992993
pub fn endspent();

src/unix/notbsd/mod.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -856,16 +856,6 @@ f! {
856856
}
857857

858858
extern {
859-
pub fn getpwnam_r(name: *const ::c_char,
860-
pwd: *mut passwd,
861-
buf: *mut ::c_char,
862-
buflen: ::size_t,
863-
result: *mut *mut passwd) -> ::c_int;
864-
pub fn getpwuid_r(uid: ::uid_t,
865-
pwd: *mut passwd,
866-
buf: *mut ::c_char,
867-
buflen: ::size_t,
868-
result: *mut *mut passwd) -> ::c_int;
869859
pub fn fdatasync(fd: ::c_int) -> ::c_int;
870860
pub fn mincore(addr: *mut ::c_void, len: ::size_t,
871861
vec: *mut ::c_uchar) -> ::c_int;

src/unix/solaris/mod.rs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1187,20 +1187,8 @@ extern {
11871187
serv: *mut ::c_char,
11881188
sevlen: ::socklen_t,
11891189
flags: ::c_int) -> ::c_int;
1190-
#[link_name = "__posix_getpwnam_r"]
1191-
pub fn getpwnam_r(name: *const ::c_char,
1192-
pwd: *mut passwd,
1193-
buf: *mut ::c_char,
1194-
buflen: ::size_t,
1195-
result: *mut *mut passwd) -> ::c_int;
1196-
1197-
#[link_name = "__posix_getpwuid_r"]
1198-
pub fn getpwuid_r(uid: ::uid_t,
1199-
pwd: *mut passwd,
1200-
buf: *mut ::c_char,
1201-
buflen: ::size_t,
1202-
result: *mut *mut passwd) -> ::c_int;
12031190
pub fn setpwent();
1191+
pub fn endpwent();
12041192
pub fn getpwent() -> *mut passwd;
12051193
pub fn fdatasync(fd: ::c_int) -> ::c_int;
12061194
pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char;

src/unix/uclibc/mod.rs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1422,16 +1422,6 @@ f! {
14221422
}
14231423

14241424
extern {
1425-
pub fn getpwnam_r(name: *const ::c_char,
1426-
pwd: *mut passwd,
1427-
buf: *mut ::c_char,
1428-
buflen: ::size_t,
1429-
result: *mut *mut passwd) -> ::c_int;
1430-
pub fn getpwuid_r(uid: ::uid_t,
1431-
pwd: *mut passwd,
1432-
buf: *mut ::c_char,
1433-
buflen: ::size_t,
1434-
result: *mut *mut passwd) -> ::c_int;
14351425
pub fn fdatasync(fd: ::c_int) -> ::c_int;
14361426
pub fn mincore(addr: *mut ::c_void, len: ::size_t,
14371427
vec: *mut ::c_uchar) -> ::c_int;
@@ -1598,6 +1588,7 @@ extern {
15981588
pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int;
15991589

16001590
pub fn setpwent();
1591+
pub fn endpwent();
16011592
pub fn getpwent() -> *mut passwd;
16021593
pub fn setspent();
16031594
pub fn endspent();

0 commit comments

Comments
 (0)