]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Ran indent
authorserassio <>
Wed, 5 Jul 2006 21:20:11 +0000 (21:20 +0000)
committerserassio <>
Wed, 5 Jul 2006 21:20:11 +0000 (21:20 +0000)
helpers/external_acl/mswin_lm_group/win32_check_group.c

index 56492244c166ed6a737c97a999a5ed4f33da4d04..99398b716c0297e7c62ccdab65f294538460990b 100755 (executable)
@@ -70,7 +70,7 @@
 #include "config.h"
 #ifdef _SQUID_CYGWIN_
 #include <wchar.h>
-int _wcsicmp(const wchar_t*, const wchar_t*);
+int _wcsicmp(const wchar_t *, const wchar_t *);
 #endif
 #if HAVE_STDIO_H
 #include <stdio.h>
@@ -98,38 +98,39 @@ int use_PDC_only = 0;
 char debug_enabled = 0;
 char *myname;
 pid_t mypid;
-char * machinedomain;
+char *machinedomain;
 int use_case_insensitive_compare = 0;
-char * DefaultDomain = NULL;
+char *DefaultDomain = NULL;
 const char NTV_VALID_DOMAIN_SEPARATOR[] = "\\/";
 
 #include "win32_check_group.h"
 
 
-char * AllocStrFromLSAStr(LSA_UNICODE_STRING LsaStr)
+char *
+AllocStrFromLSAStr(LSA_UNICODE_STRING LsaStr)
 {
     size_t len;
-    static char * target;
+    static char *target;
 
-    len = LsaStr.Length/sizeof(WCHAR) + 1;
+    len = LsaStr.Length / sizeof(WCHAR) + 1;
 
     /* allocate buffer for str + null termination */
     safe_free(target);
-    target = (char *)xmalloc(len);
+    target = (char *) xmalloc(len);
     if (target == NULL)
        return NULL;
 
     /* copy unicode buffer */
-    WideCharToMultiByte(CP_ACP, 0, LsaStr.Buffer, LsaStr.Length, target, len, NULL, NULL );
+    WideCharToMultiByte(CP_ACP, 0, LsaStr.Buffer, LsaStr.Length, target, len, NULL, NULL);
 
     /* add null termination */
-    target[len-1] = '\0';
+    target[len - 1] = '\0';
     return target;
 }
 
 
-char * GetDomainName(void)
-
+char *
+GetDomainName(void)
 {
     LSA_HANDLE PolicyHandle;
     LSA_OBJECT_ATTRIBUTES ObjectAttributes;
@@ -137,11 +138,11 @@ char * GetDomainName(void)
     PPOLICY_PRIMARY_DOMAIN_INFO ppdiDomainInfo;
     PWKSTA_INFO_100 pwkiWorkstationInfo;
     DWORD netret;
-    char * DomainName = NULL;
+    char *DomainName = NULL;
 
     /* 
      * Always initialize the object attributes to all zeroes.
-     */ 
+     */
     memset(&ObjectAttributes, '\0', sizeof(ObjectAttributes));
 
     /* 
@@ -150,8 +151,8 @@ char * GetDomainName(void)
      * 
      * The wki100_computername field contains a pointer to a UNICODE
      * string containing the local computer name.
-     */ 
-    netret = NetWkstaGetInfo(NULL, 100, (LPBYTE *)&pwkiWorkstationInfo);
+     */
+    netret = NetWkstaGetInfo(NULL, 100, (LPBYTE *) & pwkiWorkstationInfo);
     if (netret == NERR_Success) {
        /* 
         * We have the workstation name in:
@@ -159,17 +160,17 @@ char * GetDomainName(void)
         * 
         * Next, open the policy object for the local system using
         * the LsaOpenPolicy function.
-        */ 
+        */
        status = LsaOpenPolicy(
-                 NULL,
-                 &ObjectAttributes,
-                 GENERIC_READ | POLICY_VIEW_LOCAL_INFORMATION,
-                 &PolicyHandle
-                );
-       
+           NULL,
+           &ObjectAttributes,
+           GENERIC_READ | POLICY_VIEW_LOCAL_INFORMATION,
+           &PolicyHandle
+           );
+
        /* 
         * Error checking.
-        */ 
+        */
        if (status) {
            debug("OpenPolicy Error: %ld\n", status);
        } else {
@@ -177,13 +178,13 @@ char * GetDomainName(void)
            /* 
             * You have a handle to the policy object. Now, get the
             * domain information using LsaQueryInformationPolicy.
-            */ 
+            */
            status = LsaQueryInformationPolicy(PolicyHandle,
                PolicyPrimaryDomainInformation,
-               (PVOID *)&ppdiDomainInfo);
+               (PVOID *) & ppdiDomainInfo);
            if (status) {
                debug("LsaQueryInformationPolicy Error: %ld\n", status);
-           } else  {
+           } else {
 
                /* Get name in useable format */
                DomainName = AllocStrFromLSAStr(ppdiDomainInfo->Name);
@@ -192,39 +193,40 @@ char * GetDomainName(void)
                 * Check the Sid pointer, if it is null, the
                 * workstation is either a stand-alone computer
                 * or a member of a workgroup.
-                */ 
+                */
                if (ppdiDomainInfo->Sid) {
 
                    /* 
                     * Member of a domain. Display it in debug mode.
-                    */ 
-                   debug("Member of Domain %s\n",DomainName);
+                    */
+                   debug("Member of Domain %s\n", DomainName);
                } else {
                    DomainName = NULL;
-                }
+               }
            }
        }
 
        /* 
         * Clean up all the memory buffers created by the LSA and
         * Net* APIs.
-        */ 
+        */
        NetApiBufferFree(pwkiWorkstationInfo);
-       LsaFreeMemory((LPVOID)ppdiDomainInfo);
-    } else 
+       LsaFreeMemory((LPVOID) ppdiDomainInfo);
+    } else
        debug("NetWkstaGetInfo Error: %ld\n", netret);
     return DomainName;
 }
 
 /* returns 0 on match, -1 if no match */
-static int wcstrcmparray(const wchar_t *str, const char **array)
+static int 
+wcstrcmparray(const wchar_t * str, const char **array)
 {
-    WCHAR wszGroup[GNLEN+1];   // Unicode Group
+    WCHAR wszGroup[GNLEN + 1]; // Unicode Group
 
     while (*array) {
        MultiByteToWideChar(CP_ACP, 0, *array,
            strlen(*array) + 1, wszGroup, sizeof(wszGroup) / sizeof(wszGroup[0]));
-       debug("Windows group: %S, Squid group: %S\n", str, wszGroup);
+       debug("Windows group: %S, Squid group: %S\n", str, wszGroup);
        if ((use_case_insensitive_compare ? _wcsicmp(str, wszGroup) : wcscmp(str, wszGroup)) == 0)
            return 0;
        array++;
@@ -237,8 +239,8 @@ int
 Valid_Local_Groups(char *UserName, const char **Groups)
 {
     int result = 0;
-    char * Domain_Separator;
-    WCHAR wszUserName[UNLEN+1];        // Unicode user name
+    char *Domain_Separator;
+    WCHAR wszUserName[UNLEN + 1];      // Unicode user name
 
     LPLOCALGROUP_USERS_INFO_0 pBuf = NULL;
     LPLOCALGROUP_USERS_INFO_0 pTmpBuf;
@@ -252,10 +254,10 @@ Valid_Local_Groups(char *UserName, const char **Groups)
     DWORD dwTotalCount = 0;
 
     if ((Domain_Separator = strchr(UserName, '/')) != NULL)
-        *Domain_Separator = '\\';
-    
+       *Domain_Separator = '\\';
+
     debug("Valid_Local_Groups: checking group membership of '%s'.\n", UserName);
-    
+
 /* Convert ANSI User Name and Group to Unicode */
 
     MultiByteToWideChar(CP_ACP, 0, UserName,
@@ -263,24 +265,24 @@ Valid_Local_Groups(char *UserName, const char **Groups)
 
     /*
      * Call the NetUserGetLocalGroups function 
-        * specifying information level 0.
-        
-        * The LG_INCLUDE_INDIRECT flag specifies that the 
-        * function should also return the names of the local 
-        * groups in which the user is indirectly a member.
-        */
+     * specifying information level 0.
+     * 
+     * The LG_INCLUDE_INDIRECT flag specifies that the 
+     * function should also return the names of the local 
+     * groups in which the user is indirectly a member.
+     */
     nStatus = NetUserGetLocalGroups(
        NULL,
-        wszUserName,
-        dwLevel,
-        dwFlags,
-        (LPBYTE *) &pBuf,
+       wszUserName,
+       dwLevel,
+       dwFlags,
+       (LPBYTE *) & pBuf,
        dwPrefMaxLen,
        &dwEntriesRead,
        &dwTotalEntries);
-       /*
-        * If the call succeeds,
-        */
+    /*
+     * If the call succeeds,
+     */
     if (nStatus == NERR_Success) {
        if ((pTmpBuf = pBuf) != NULL) {
            for (i = 0; i < dwEntriesRead; i++) {
@@ -298,7 +300,7 @@ Valid_Local_Groups(char *UserName, const char **Groups)
            }
        }
     } else
-        result = 0;
+       result = 0;
 /*
  * Free the allocated memory.
  */
@@ -313,13 +315,15 @@ int
 Valid_Global_Groups(char *UserName, const char **Groups)
 {
     int result = 0;
-    WCHAR wszUserName[UNLEN+1];     // Unicode user name
-    WCHAR wszLocalDomain[DNLEN+1];  // Unicode Local Domain
-    WCHAR wszUserDomain[DNLEN+1];   // Unicode User Domain
+    WCHAR wszUserName[UNLEN + 1];      // Unicode user name
 
-    char NTDomain[DNLEN+UNLEN+2];
+    WCHAR wszLocalDomain[DNLEN + 1];   // Unicode Local Domain
+
+    WCHAR wszUserDomain[DNLEN + 1];    // Unicode User Domain
+
+    char NTDomain[DNLEN + UNLEN + 2];
     char *domain_qualify;
-    char User[UNLEN+1];
+    char User[UNLEN + 1];
     size_t j;
 
     LPWSTR LclDCptr = NULL;
@@ -337,9 +341,9 @@ Valid_Global_Groups(char *UserName, const char **Groups)
 
     strncpy(NTDomain, UserName, sizeof(NTDomain));
 
-    for (j=0; j < strlen(NTV_VALID_DOMAIN_SEPARATOR); j++) {
-        if ((domain_qualify = strchr(NTDomain, NTV_VALID_DOMAIN_SEPARATOR[j])) != NULL)
-            break;
+    for (j = 0; j < strlen(NTV_VALID_DOMAIN_SEPARATOR); j++) {
+       if ((domain_qualify = strchr(NTDomain, NTV_VALID_DOMAIN_SEPARATOR[j])) != NULL)
+           break;
     }
     if (domain_qualify == NULL) {
        strcpy(User, NTDomain);
@@ -363,62 +367,59 @@ Valid_Global_Groups(char *UserName, const char **Groups)
 
 /* Call the NetServerGetInfo function for local computer, specifying level 101. */
     dwLevel = 101;
-    nStatus = NetServerGetInfo(NULL, dwLevel, (LPBYTE *)&pSrvBuf);
-    
-    if (nStatus == NERR_Success)
-    {
-        /* Check if we are running on a Domain Controller */
-        if ((pSrvBuf->sv101_type & SV_TYPE_DOMAIN_CTRL) ||
-            (pSrvBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL))
-        {
-            LclDCptr = NULL;
-            debug("Running on a DC.\n");
-        }
-        else
-            nStatus = (use_PDC_only ? NetGetDCName(NULL, wszLocalDomain, (LPBYTE *) & LclDCptr) : NetGetAnyDCName(NULL, wszLocalDomain, (LPBYTE *) & LclDCptr));
+    nStatus = NetServerGetInfo(NULL, dwLevel, (LPBYTE *) & pSrvBuf);
+
+    if (nStatus == NERR_Success) {
+       /* Check if we are running on a Domain Controller */
+       if ((pSrvBuf->sv101_type & SV_TYPE_DOMAIN_CTRL) ||
+           (pSrvBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL)) {
+           LclDCptr = NULL;
+           debug("Running on a DC.\n");
+       } else
+           nStatus = (use_PDC_only ? NetGetDCName(NULL, wszLocalDomain, (LPBYTE *) & LclDCptr) : NetGetAnyDCName(NULL, wszLocalDomain, (LPBYTE *) & LclDCptr));
     } else {
        fprintf(stderr, "%s NetServerGetInfo() failed.'\n", myname);
-        if (pSrvBuf != NULL)
-            NetApiBufferFree(pSrvBuf);
-        return result;
+       if (pSrvBuf != NULL)
+           NetApiBufferFree(pSrvBuf);
+       return result;
     }
 
     if (nStatus == NERR_Success) {
-        debug("Using '%S' as DC for '%S' local domain.\n", LclDCptr, wszLocalDomain);
-       
-        if (strcmp(NTDomain, machinedomain) != 0) {
+       debug("Using '%S' as DC for '%S' local domain.\n", LclDCptr, wszLocalDomain);
+
+       if (strcmp(NTDomain, machinedomain) != 0) {
            MultiByteToWideChar(CP_ACP, 0, NTDomain,
                strlen(NTDomain) + 1, wszUserDomain, sizeof(wszUserDomain) / sizeof(wszUserDomain[0]));
-            nStatus = (use_PDC_only ? NetGetDCName(LclDCptr, wszUserDomain, (LPBYTE *) & UsrDCptr) : NetGetAnyDCName(LclDCptr, wszUserDomain, (LPBYTE *) & UsrDCptr));
-               if (nStatus != NERR_Success) {
-                   fprintf(stderr, "%s Can't find DC for user's domain '%s'\n", myname, NTDomain);
-                    if (pSrvBuf != NULL)
-                        NetApiBufferFree(pSrvBuf);
-                   if (LclDCptr != NULL)
-                       NetApiBufferFree((LPVOID) LclDCptr);
-                   if (UsrDCptr != NULL)
-                       NetApiBufferFree((LPVOID) UsrDCptr);
-                   return result;
-               }
+           nStatus = (use_PDC_only ? NetGetDCName(LclDCptr, wszUserDomain, (LPBYTE *) & UsrDCptr) : NetGetAnyDCName(LclDCptr, wszUserDomain, (LPBYTE *) & UsrDCptr));
+           if (nStatus != NERR_Success) {
+               fprintf(stderr, "%s Can't find DC for user's domain '%s'\n", myname, NTDomain);
+               if (pSrvBuf != NULL)
+                   NetApiBufferFree(pSrvBuf);
+               if (LclDCptr != NULL)
+                   NetApiBufferFree((LPVOID) LclDCptr);
+               if (UsrDCptr != NULL)
+                   NetApiBufferFree((LPVOID) UsrDCptr);
+               return result;
+           }
        } else
            UsrDCptr = LclDCptr;
 
-        debug("Using '%S' as DC for '%s' user's domain.\n", UsrDCptr, NTDomain);
+       debug("Using '%S' as DC for '%s' user's domain.\n", UsrDCptr, NTDomain);
        /*
         * Call the NetUserGetGroups function 
-            * specifying information level 0.
-            */
-            dwLevel = 0;
-           nStatus = NetUserGetGroups(UsrDCptr,
-               wszUserName,
-               dwLevel,
-               (LPBYTE *) & pUsrBuf,
-               dwPrefMaxLen,
-               &dwEntriesRead,
-               &dwTotalEntries);
-           /*
-            * If the call succeeds,
-            */
+        * specifying information level 0.
+        */
+       dwLevel = 0;
+       nStatus = NetUserGetGroups(UsrDCptr,
+           wszUserName,
+           dwLevel,
+           (LPBYTE *) & pUsrBuf,
+           dwPrefMaxLen,
+           &dwEntriesRead,
+           &dwTotalEntries);
+       /*
+        * If the call succeeds,
+        */
        if (nStatus == NERR_Success) {
            if ((pTmpBuf = pUsrBuf) != NULL) {
                for (i = 0; i < dwEntriesRead; i++) {
@@ -435,10 +436,10 @@ Valid_Global_Groups(char *UserName, const char **Groups)
                    dwTotalCount++;
                }
            }
-        } else {
+       } else {
            result = 0;
-            fprintf(stderr, "%s NetUserGetGroups() failed.'\n", myname);
-        }
+           fprintf(stderr, "%s NetUserGetGroups() failed.'\n", myname);
+       }
     } else {
        fprintf(stderr, "%s Can't find DC for local domain '%s'\n", myname, machinedomain);
     }
@@ -446,27 +447,27 @@ Valid_Global_Groups(char *UserName, const char **Groups)
      * Free the allocated memory.
      */
     if (pSrvBuf != NULL)
-        NetApiBufferFree(pSrvBuf);
+       NetApiBufferFree(pSrvBuf);
     if (pUsrBuf != NULL)
-        NetApiBufferFree(pUsrBuf);
+       NetApiBufferFree(pUsrBuf);
     if ((UsrDCptr != NULL) && (UsrDCptr != LclDCptr))
-        NetApiBufferFree((LPVOID) UsrDCptr);
+       NetApiBufferFree((LPVOID) UsrDCptr);
     if (LclDCptr != NULL)
-        NetApiBufferFree((LPVOID) LclDCptr);
+       NetApiBufferFree((LPVOID) LclDCptr);
     return result;
 }
 
 static void
 usage(char *program)
 {
-    fprintf(stderr,"Usage: %s [-D domain][-G][-P][-c][-d][-h]\n"
-               " -D    default user Domain\n"
-               " -G    enable Domain Global group mode\n"
-               " -P    use ONLY PDCs for group validation\n"
-               " -c    use case insensitive compare\n"
-               " -d    enable debugging\n"
-               " -h    this message\n",
-               program);
+    fprintf(stderr, "Usage: %s [-D domain][-G][-P][-c][-d][-h]\n"
+       " -D    default user Domain\n"
+       " -G    enable Domain Global group mode\n"
+       " -P    use ONLY PDCs for group validation\n"
+       " -c    use case insensitive compare\n"
+       " -d    enable debugging\n"
+       " -h    this message\n",
+       program);
 }
 
 void
@@ -479,7 +480,7 @@ process_options(int argc, char *argv[])
        switch (opt) {
        case 'D':
            DefaultDomain = xstrndup(optarg, DNLEN + 1);
-            strlwr(DefaultDomain);
+           strlwr(DefaultDomain);
            break;
        case 'G':
            use_global = 1;
@@ -511,7 +512,7 @@ process_options(int argc, char *argv[])
 
 
 int
-main (int argc, char *argv[])
+main(int argc, char *argv[])
 {
     char *p;
     char buf[BUFSIZE];
@@ -521,14 +522,14 @@ main (int argc, char *argv[])
     const char *groups[512];
     int n;
 
-    if (argc > 0) {    /* should always be true */
-       myname=strrchr(argv[0],'/');
-       if (myname==NULL)
-           myname=argv[0];
+    if (argc > 0) {            /* should always be true */
+       myname = strrchr(argv[0], '/');
+       if (myname == NULL)
+           myname = argv[0];
     } else {
-        myname="(unknown)";
+       myname = "(unknown)";
     }
-    mypid=getpid();
+    mypid = getpid();
 
     setbuf(stdout, NULL);
     setbuf(stderr, NULL);
@@ -537,27 +538,25 @@ main (int argc, char *argv[])
     process_options(argc, argv);
 
     if (use_global) {
-        if ((machinedomain = GetDomainName()) == NULL) {
+       if ((machinedomain = GetDomainName()) == NULL) {
            fprintf(stderr, "%s Can't read machine domain\n", myname);
            exit(1);
        }
        strlwr(machinedomain);
-        if (!DefaultDomain)
-            DefaultDomain = xstrdup(machinedomain);
+       if (!DefaultDomain)
+           DefaultDomain = xstrdup(machinedomain);
     }
-
     debug("External ACL win32 group helper build " __DATE__ ", " __TIME__
-    " starting up...\n");
+       " starting up...\n");
     if (use_global)
-        debug("Domain Global group mode enabled using '%s' as default domain.\n", DefaultDomain);
+       debug("Domain Global group mode enabled using '%s' as default domain.\n", DefaultDomain);
     if (use_case_insensitive_compare)
-        debug("Warning: running in case insensitive mode !!!\n");
+       debug("Warning: running in case insensitive mode !!!\n");
     if (use_PDC_only)
-        debug("Warning: using only PDCs for group validation !!!\n");
+       debug("Warning: using only PDCs for group validation !!!\n");
 
     /* Main Loop */
-    while (fgets (buf, sizeof(buf), stdin))
-    {
+    while (fgets(buf, sizeof(buf), stdin)) {
        if (NULL == strchr(buf, '\n')) {
            /* too large message received.. skip and deny */
            fprintf(stderr, "%s: ERROR: Too large: %s\n", argv[0], buf);
@@ -568,19 +567,17 @@ main (int argc, char *argv[])
            }
            goto error;
        }
-       
        if ((p = strchr(buf, '\n')) != NULL)
            *p = '\0';          /* strip \n */
        if ((p = strchr(buf, '\r')) != NULL)
            *p = '\0';          /* strip \r */
 
-       debug("Got '%s' from Squid (length: %d).\n",buf,strlen(buf));
+       debug("Got '%s' from Squid (length: %d).\n", buf, strlen(buf));
 
        if (buf[0] == '\0') {
            fprintf(stderr, "Invalid Request\n");
            goto error;
        }
-
        username = strtok(buf, " ");
        for (n = 0; (group = strtok(NULL, " ")) != NULL; n++) {
            rfc1738_unescape(group);
@@ -588,17 +585,17 @@ main (int argc, char *argv[])
        }
        groups[n] = NULL;
 
-        if (NULL == username) {
-            fprintf(stderr, "Invalid Request\n");
-            goto error;
-        }
+       if (NULL == username) {
+           fprintf(stderr, "Invalid Request\n");
+           goto error;
+       }
        rfc1738_unescape(username);
 
        if ((use_global ? Valid_Global_Groups(username, groups) : Valid_Local_Groups(username, groups))) {
-           printf ("OK\n");
+           printf("OK\n");
        } else {
-error:
-           printf ("ERR\n");
+         error:
+           printf("ERR\n");
        }
        err = 0;
     }