repo: ngircd
action: commit
revision: 
path_from: 
revision_from: bf2eae3249cd7890c0189dfcf1a50b0e40e199b2:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit bf2eae3249cd7890c0189dfcf1a50b0e40e199b2
Author: Alexander Barton 
Date:   Wed Sep 3 16:03:28 2014 +0200

    Allow longer usernames for authentication

diff --git a/src/ngircd/client.c b/src/ngircd/client.c
index 9795662ecc66899f642f66aa9632ac6a2c00b1e6..
index ..07d448fdbaf9a84873f32e22584636251e2d3fd5 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 c6fcec0717c880909872f5ee12854e951b12c30e..
index ..4185d2176ebd2e4ba7a65391f254c03cfe76a808 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 a140c9d16a54eee20a197893ba01a45d5be9141a..
index ..456c4c9351f78f44735c859cf08767df519b71b4 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

-----END OF PAGE-----