Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBlake Setlow <csetlow@tower-research.com>2008-01-25 08:14:13 (GMT)
committer Michael Stone <michael@laptop.org>2008-01-25 08:14:13 (GMT)
commit9c373de91bc963e1ff675e12ef5201b31193407f (patch)
tree45fb8047b7f01dd036ad6fbd82d68cb364bec56b
parent6d62f4a9f9045b1072674e1fc1172ea5a58fad4f (diff)
Correct broken function names.
-rw-r--r--nss-rainbow.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/nss-rainbow.c b/nss-rainbow.c
index 04b6517..533ca88 100644
--- a/nss-rainbow.c
+++ b/nss-rainbow.c
@@ -18,7 +18,7 @@
#define STATIC_ASSERT(expr) extern char __static_assertion_failed [(expr) ? 1 : -1]
#define SAVE_ERR(EXPR) {int __errno_save = errno; EXPR; errno = __errno_save;}
#define __XSTRING(X) __STRING(X)
-#define PERROR(msg) {syslog(LOG_ERR, "%s|%d| %s: %s", __FILE__, __LINE__, __func__, msg);}
+#define PERROR(msg) {syslog(LOG_ERR, "%s|%d| %s: %s\nError %d: %s", __FILE__, __LINE__, __func__, msg, errno, strerror(errno));}
#define CHK(EXPR, MSG, ERR_LABEL) {if(EXPR) { PERROR(MSG); goto ERR_LABEL;}}
#define LET(LETEXPR, CONDEXPR, MSG, ERR_LABEL) LETEXPR; if (CONDEXPR) { PERROR(MSG); goto ERR_LABEL;}
@@ -156,14 +156,14 @@ out_error_again:
return NSS_STATUS_TRYAGAIN;
}
-enum nss_status _nss_rainbow_getpwbyuid_r(uid_t uid, struct passwd *result, char* buf, size_t buflen, int *errnop) {
+enum nss_status _nss_rainbow_getpwuid_r(uid_t uid, struct passwd *result, char* buf, size_t buflen, int *errnop) {
+ openlog("nss-rainbow", LOG_PID, LOG_LOCAL0);
+
if (uid < 10000)
return NSS_STATUS_NOTFOUND;
- openlog("nss-rainbow", LOG_PID, LOG_LOCAL0);
-
result->pw_dir = buf;
- CHK(format_buf(&buf, &buflen, "/home/olpc/isolation/1/%d", uid) == 0,
+ CHK(format_buf(&buf, &buflen, "/home/olpc/isolation/1/uid_to_home_dir/%d", uid) == 0,
"Unable to calculate home dir.", out_error_errno);
struct stat st;
@@ -180,7 +180,7 @@ enum nss_status _nss_rainbow_getpwbyuid_r(uid_t uid, struct passwd *result, char
CHK(write_buf(&buf, &buflen, SHELL) == 0,
"Shell string constant too long.", out_error_errno);
- syslog(LOG_ERR, "%s success: %s (%d, %d) %s %s %s", __func__, result->pw_name, result->pw_uid, result->pw_gid, result->pw_dir, result->pw_shell, result->pw_passwd);
+ syslog(LOG_ERR, "%s success in uid: %s (%d, %d) %s %s %s", __func__, result->pw_name, result->pw_uid, result->pw_gid, result->pw_dir, result->pw_shell, result->pw_passwd);
return NSS_STATUS_SUCCESS;
@@ -189,7 +189,8 @@ out_error_errno:
return NSS_STATUS_TRYAGAIN;
}
-enum nss_status _nss_rainbow_getpwbynam_r(const char * name, struct passwd *result, char* buf, size_t buflen, int *errnop) {
+
+enum nss_status _nss_rainbow_getpwnam_r(const char * name, struct passwd *result, char* buf, size_t buflen, int *errnop) {
openlog("nss-rainbow", LOG_PID, LOG_LOCAL0);
char * endptr = (char*) (uintptr_t) (name + strlen(name));
@@ -205,5 +206,5 @@ enum nss_status _nss_rainbow_getpwbynam_r(const char * name, struct passwd *resu
return NSS_STATUS_NOTFOUND;
}
- return _nss_rainbow_getpwbyuid_r((uid_t)val, result, buf, buflen, errnop);
+ return _nss_rainbow_getpwuid_r((uid_t)val, result, buf, buflen, errnop);
}