ngircd

Free, portable and lightweight Internet Relay Chat server http://ngircd.barton.de/
Log | Files | Refs | README | LICENSE

commit bf2eae3249cd7890c0189dfcf1a50b0e40e199b2
parent ffad2da835e26a1a457d4f4a16acf6797d4cc71e
Author: Alexander Barton <alex@barton.de>
Date:   Wed,  3 Sep 2014 16:03:28 +0200

Allow longer usernames for authentication

Diffstat:
Msrc/ngircd/client.c | 10+---------
Msrc/ngircd/client.h | 5+++--
Msrc/ngircd/defines.h | 4++++
3 files changed, 8 insertions(+), 11 deletions(-)

diff --git 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 @@ -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 @@ -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