Annotation of /trunk/mkinitrd-magellan/busybox/coreutils/logname.c
Parent Directory | Revision Log
Revision 984 -
(hide annotations)
(download)
Sun May 30 11:32:42 2010 UTC (13 years, 11 months ago) by niro
File MIME type: text/plain
File size: 1224 byte(s)
Sun May 30 11:32:42 2010 UTC (13 years, 11 months ago) by niro
File MIME type: text/plain
File size: 1224 byte(s)
-updated to busybox-1.16.1 and enabled blkid/uuid support in default config
1 | niro | 532 | /* vi: set sw=4 ts=4: */ |
2 | /* | ||
3 | * Mini logname implementation for busybox | ||
4 | * | ||
5 | * Copyright (C) 2000 Edward Betts <edward@debian.org>. | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | /* BB_AUDIT SUSv3 compliant */ | ||
11 | /* http://www.opengroup.org/onlinepubs/007904975/utilities/logname.html */ | ||
12 | |||
13 | /* Mar 16, 2003 Manuel Novoa III (mjn3@codepoet.org) | ||
14 | * | ||
15 | * SUSv3 specifies the string used is that returned from getlogin(). | ||
16 | * The previous implementation used getpwuid() for geteuid(), which | ||
17 | * is _not_ the same. Erik apparently made this change almost 3 years | ||
18 | * ago to avoid failing when no utmp was available. However, the | ||
19 | * correct course of action wrt SUSv3 for a failing getlogin() is | ||
20 | * a diagnostic message and an error return. | ||
21 | */ | ||
22 | |||
23 | niro | 816 | #include "libbb.h" |
24 | niro | 532 | |
25 | niro | 816 | /* This is a NOFORK applet. Be very careful! */ |
26 | |||
27 | int logname_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | ||
28 | niro | 984 | int logname_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) |
29 | niro | 532 | { |
30 | niro | 984 | char buf[64]; |
31 | niro | 532 | |
32 | niro | 984 | if (argv[1]) { |
33 | niro | 532 | bb_show_usage(); |
34 | } | ||
35 | |||
36 | niro | 816 | /* Using _r function - avoid pulling in static buffer from libc */ |
37 | if (getlogin_r(buf, sizeof(buf)) == 0) { | ||
38 | puts(buf); | ||
39 | niro | 984 | return fflush_all(); |
40 | niro | 532 | } |
41 | |||
42 | bb_perror_msg_and_die("getlogin"); | ||
43 | } |