traceroute: fix help text to not show -6 when traceroute6 is off
[oweals/busybox.git] / libbb / bb_pwd.c
index 5e44edc9056a63a6570a13f5ea2e20010a57aab5..d728577714f0017cc20386b5601763f5f0219582 100644 (file)
  * pointers to static data (getpwuid)
  */
 
-/* TODO: add xgetpwnam, this construct is used a lot */
+struct passwd* FAST_FUNC xgetpwnam(const char *name)
+{
+       struct passwd *pw = getpwnam(name);
+       if (!pw)
+               bb_error_msg_and_die("unknown user %s", name);
+       return pw;
+}
+
+struct group* FAST_FUNC xgetgrnam(const char *name)
+{
+       struct group *gr = getgrnam(name);
+       if (!gr)
+               bb_error_msg_and_die("unknown group %s", name);
+       return gr;
+}
+
 
 struct passwd* FAST_FUNC xgetpwuid(uid_t uid)
 {
@@ -73,10 +88,7 @@ long FAST_FUNC xuname2uid(const char *name)
 {
        struct passwd *myuser;
 
-       myuser = getpwnam(name);
-       if (myuser == NULL)
-               bb_error_msg_and_die("unknown user %s", name);
-
+       myuser = xgetpwnam(name);
        return myuser->pw_uid;
 }
 
@@ -84,10 +96,7 @@ long FAST_FUNC xgroup2gid(const char *name)
 {
        struct group *mygroup;
 
-       mygroup = getgrnam(name);
-       if (mygroup == NULL)
-               bb_error_msg_and_die("unknown group %s", name);
-
+       mygroup = xgetgrnam(name);
        return mygroup->gr_gid;
 }