--------------------- PatchSet 6618 Date: 2005/04/25 14:01:16 Author: serassio Branch: nt-2_5 Tag: (none) Log: Updated nt_auth basic helper Members: helpers/basic_auth/win32_locallogon/NT_auth.c:1.1.4.3->1.1.4.4 helpers/basic_auth/win32_locallogon/valid.c:1.1.4.3->1.1.4.4 helpers/basic_auth/win32_locallogon/valid.h:1.1.4.2->1.1.4.3 Index: squid/helpers/basic_auth/win32_locallogon/NT_auth.c =================================================================== RCS file: /cvsroot/squid-sf//squid/helpers/basic_auth/win32_locallogon/Attic/NT_auth.c,v retrieving revision 1.1.4.3 retrieving revision 1.1.4.4 diff -u -r1.1.4.3 -r1.1.4.4 --- squid/helpers/basic_auth/win32_locallogon/NT_auth.c 12 Aug 2002 19:36:37 -0000 1.1.4.3 +++ squid/helpers/basic_auth/win32_locallogon/NT_auth.c 25 Apr 2005 14:01:16 -0000 1.1.4.4 @@ -76,7 +76,7 @@ UseDisallowedGroup = 1; break; case 'D': - strcpy(Default_NTDomain, optarg); + strncpy(Default_NTDomain, optarg, DNLEN); break; case 'h': usage(argv[0]); @@ -133,6 +133,7 @@ } if (err) { fprintf(stderr, "Oversized message\n"); + puts("ERR"); goto error; } @@ -157,9 +158,10 @@ if (Valid_User(username, password, NTGroup) == NTV_NO_ERROR) puts("OK"); else + printf("ERR %s\n", errormsg); error: - puts("ERR"); err = 0; + fflush(stdout); } return 0; Index: squid/helpers/basic_auth/win32_locallogon/valid.c =================================================================== RCS file: /cvsroot/squid-sf//squid/helpers/basic_auth/win32_locallogon/Attic/valid.c,v retrieving revision 1.1.4.3 retrieving revision 1.1.4.4 diff -u -r1.1.4.3 -r1.1.4.4 --- squid/helpers/basic_auth/win32_locallogon/valid.c 7 Sep 2003 17:17:35 -0000 1.1.4.3 +++ squid/helpers/basic_auth/win32_locallogon/valid.c 25 Apr 2005 14:01:17 -0000 1.1.4.4 @@ -38,7 +38,12 @@ #include #include "valid.h" -char Default_NTDomain[256] = NTV_DEFAULT_DOMAIN; +char Default_NTDomain[DNLEN+1] = NTV_DEFAULT_DOMAIN; +const char * errormsg; + +const char NTV_SERVER_ERROR_MSG[] = "Internal server errror"; +const char NTV_GROUP_ERROR_MSG[] = "User not allowed to use this cache"; +const char NTV_LOGON_ERROR_MSG[] = "No such user or wrong password"; /* returns 1 on success, 0 on failure */ int @@ -118,12 +123,13 @@ int Valid_User(char *UserName, char *Password, char *Group) { - int result = NTV_LOGON_ERROR; + int result = NTV_SERVER_ERROR; char NTDomain[256]; char *domain_qualify; char DomainUser[256]; char User[256]; + errormsg = NTV_SERVER_ERROR_MSG; strcpy(NTDomain, UserName); if ((domain_qualify = strchr(NTDomain, '\\')) == NULL) { strcpy(User, NTDomain); @@ -135,6 +141,7 @@ /* Log the client on to the local computer. */ if (!SSP_LogonUser(User, Password, NTDomain)) { result = NTV_LOGON_ERROR; + errormsg = NTV_LOGON_ERROR_MSG; } else { result = NTV_NO_ERROR; if (strcmp(NTDomain, NTV_DEFAULT_DOMAIN) == 0) @@ -146,12 +153,14 @@ } if (UseAllowedGroup) { if (!Valid_Group(DomainUser, NTAllowedGroup)) { - result = NTV_LOGON_ERROR; + result = NTV_GROUP_ERROR; + errormsg = NTV_GROUP_ERROR_MSG; } } if (UseDisallowedGroup) { if (Valid_Group(DomainUser, NTDisAllowedGroup)) { - result = NTV_LOGON_ERROR; + result = NTV_GROUP_ERROR; + errormsg = NTV_GROUP_ERROR_MSG; } } } Index: squid/helpers/basic_auth/win32_locallogon/valid.h =================================================================== RCS file: /cvsroot/squid-sf//squid/helpers/basic_auth/win32_locallogon/Attic/valid.h,v retrieving revision 1.1.4.2 retrieving revision 1.1.4.3 diff -u -r1.1.4.2 -r1.1.4.3 --- squid/helpers/basic_auth/win32_locallogon/valid.h 16 Jul 2002 12:46:50 -0000 1.1.4.2 +++ squid/helpers/basic_auth/win32_locallogon/valid.h 25 Apr 2005 14:01:17 -0000 1.1.4.3 @@ -29,13 +29,14 @@ #ifndef _VALID_H_ #define _VALID_H_ +#include #include "sspwin32.h" /* SMB User verification function */ #define NTV_NO_ERROR 0 #define NTV_SERVER_ERROR 1 -#define NTV_PROTOCOL_ERROR 2 +#define NTV_GROUP_ERROR 2 #define NTV_LOGON_ERROR 3 #ifndef LOGON32_LOGON_NETWORK @@ -48,7 +49,8 @@ extern char * NTDisAllowedGroup; extern int UseDisallowedGroup; extern int UseAllowedGroup; -extern char Default_NTDomain[256]; +extern char Default_NTDomain[DNLEN+1]; +extern const char * errormsg; int Valid_User(char *,char *, char *);