From 232ec2e0d27cf2d28abffa7b4e71198a6b40f75e Mon Sep 17 00:00:00 2001 From: jow Date: Sat, 6 Nov 2010 16:19:04 +0000 Subject: [package] uhttpd: make it work without shadow password support git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23897 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/uhttpd/src/uhttpd-utils.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'package/uhttpd/src/uhttpd-utils.c') diff --git a/package/uhttpd/src/uhttpd-utils.c b/package/uhttpd/src/uhttpd-utils.c index 3821eb54cb..9f9a5dd6a7 100644 --- a/package/uhttpd/src/uhttpd-utils.c +++ b/package/uhttpd/src/uhttpd-utils.c @@ -610,7 +610,10 @@ struct auth_realm * uh_auth_add(char *path, char *user, char *pass) { struct auth_realm *new = NULL; struct passwd *pwd; + +#ifdef HAVE_SHADOW struct spwd *spwd; +#endif if((new = (struct auth_realm *)malloc(sizeof(struct auth_realm))) != NULL) { @@ -625,6 +628,7 @@ struct auth_realm * uh_auth_add(char *path, char *user, char *pass) /* given password refers to a passwd entry */ if( (strlen(pass) > 3) && !strncmp(pass, "$p$", 3) ) { +#ifdef HAVE_SHADOW /* try to resolve shadow entry */ if( ((spwd = getspnam(&pass[3])) != NULL) && spwd->sp_pwdp ) { @@ -632,8 +636,11 @@ struct auth_realm * uh_auth_add(char *path, char *user, char *pass) min(strlen(spwd->sp_pwdp), sizeof(new->pass) - 1)); } + else +#endif + /* try to resolve passwd entry */ - else if( ((pwd = getpwnam(&pass[3])) != NULL) && pwd->pw_passwd && + if( ((pwd = getpwnam(&pass[3])) != NULL) && pwd->pw_passwd && (pwd->pw_passwd[0] != '!') && (pwd->pw_passwd[0] != 0) ) { memcpy(new->pass, pwd->pw_passwd, -- cgit v1.2.3