Module: ngircd.git Branch: master Commit: bf2eae3249cd7890c0189dfcf1a50b0e40e199b2 URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=bf2ea...
Author: Alexander Barton alex@barton.de Date: Wed Sep 3 16:03:28 2014 +0200
Allow longer usernames for authentication
---
src/ngircd/client.c | 10 +--------- src/ngircd/client.h | 5 +++-- src/ngircd/defines.h | 4 ++++ 3 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/src/ngircd/client.c b/src/ngircd/client.c index 9795662..07d448f 100644 --- a/src/ngircd/client.c +++ b/src/ngircd/client.c @@ -427,7 +427,7 @@ Client_SetOrigUser(CLIENT UNUSED *Client, const char UNUSED *User) assert(Client != NULL); assert(User != NULL);
-#if defined(PAM) && defined(IDENTAUTH) +#if defined(PAM) strlcpy(Client->orig_user, User, sizeof(Client->orig_user)); #endif } /* Client_SetOrigUser */ @@ -731,15 +731,7 @@ Client_User( CLIENT *Client ) */ GLOBAL char * Client_OrigUser(CLIENT *Client) { -#ifndef IDENTAUTH - char *user = Client->user; - - if (user[0] == '~') - user++; - return user; -#else return Client->orig_user; -#endif } /* Client_OrigUser */
#endif diff --git a/src/ngircd/client.h b/src/ngircd/client.h index c6fcec0..4185d21 100644 --- a/src/ngircd/client.h +++ b/src/ngircd/client.h @@ -52,8 +52,9 @@ typedef struct _CLIENT char *cloaked; /* cloaked hostname of the client */ char *ipa_text; /* textual representaton of IP address */ char user[CLIENT_USER_LEN]; /* user name ("login") */ -#if defined(PAM) && defined(IDENTAUTH) - char orig_user[CLIENT_USER_LEN];/* user name supplied by USER command */ +#if defined(PAM) + char orig_user[CLIENT_AUTHUSER_LEN]; + /* original user name supplied by USER command */ #endif char info[CLIENT_INFO_LEN]; /* long user name (user) / info text (server) */ char modes[CLIENT_MODE_LEN]; /* client modes */ diff --git a/src/ngircd/defines.h b/src/ngircd/defines.h index a140c9d..456c4c9 100644 --- a/src/ngircd/defines.h +++ b/src/ngircd/defines.h @@ -109,6 +109,10 @@ #else # define CLIENT_USER_LEN 10 #endif +/** Max. length of user names saved for authentication (used by PAM) */ +#ifdef PAM +# define CLIENT_AUTHUSER_LEN 64 +#endif
/** Max. length of "real names" (including NULL). */ #define CLIENT_NAME_LEN 32