Ignore:
Timestamp:
Dec 10, 2007, 9:00:50 PM (18 years ago)
Author:
Paul Smedley
Message:

Add configurable kerberos support for Netdrive plugin

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.0/source/ndpsmb/ndpsmb.c

    r70 r107  
    156156        { ND_PROP_ULONG, 0, "LOGLEVEL", "0"},
    157157        { ND_PROP_ULONG, 0, "EASUPPORT", "1"},
     158        { ND_PROP_ULONG, 0, "KRB5SUPPORT", "1"},
    158159        {ND_PROP_STRING, 0, NULL, NULL}
    159160};
     
    208209        char loglevel;
    209210        int easupport;
     211        int krb5support;
    210212} Resource;
    211213
     
    244246                sd.FgBg = SSF_FGBG_BACK;
    245247                sd.PgmName = EXECNAME;
     248                if (pRes->krb5support)
     249                {
     250                        StrNCat(params, " -k ", sizeof(params) - 1);
     251                }
    246252                if (pRes->loglevel)
    247253                {
     
    257263                        StrNCat(params, pRes->logfile, sizeof(params) - 1);
    258264                }
     265
    259266                log("params <%s>\n", params);
    260267                sd.PgmInputs = *params ? params : NULL;
     
    267274                        char failed[CCHMAXPATH + 1] = {0};
    268275                        RESULTCODES res = {0};
    269                         char * p = params;
    270                         StrCpy(p, EXECNAME);
    271                         p += StrLen(p) + 1;
    272                         if (*pRes->logfile)
    273                         {
    274                                 StrCpy(p, "-l ");
    275                                 StrNCat(p, pRes->logfile, sizeof(params) - (p - (char *)params));
    276                                 p += StrLen(p) + 1;
    277                                 if (pRes->loglevel)
    278                                 {
    279                                         char level[2];
    280                                         level[0] = pRes->loglevel + '0';
    281                                         level[1] = 0;
    282                                         StrCpy(p, "-d ");
    283                                         StrNCat(p, level, sizeof(params) - (p - (char *)params));
    284                                         p += StrLen(p) + 1;
    285                                 }
    286                         }
    287                         else
    288                         {
    289                                 StrCpy(p, "-q");
    290                                 p += StrLen(p) + 1;
    291                         }
    292                         *p = 0;         
    293                         rc = DosExecPgm(failed, sizeof(failed), EXEC_BACKGROUND, params, NULL, &res, EXECNAME);
     276                        UCHAR pszArgString[CCHMAXPATH+41] ; /* Argument string */
     277                        sprintf(pszArgString, "smbcd %s\0", params);
     278                        if (params!=NULL)
     279                                pszArgString[5] = '\0' ;
     280                        rc = DosExecPgm(failed, sizeof(failed), EXEC_BACKGROUND, pszArgString, NULL, &res, EXECNAME);
    294281                        log("smbcd DosExecPgm codeTerminate %d codeResult %d rc %d\n", res.codeTerminate, res.codeResult, rc);
    295282                }
    296                 if (!rc)
     283                if (!rc) 
    297284                {
    298285                        DosSleep(500);
     
    392379        pRes->loglevel = 0;
    393380        pRes->easupport = 1;
     381        pRes->krb5support = 0;
    394382
    395383        t = 0, q = NULL;
     
    496484                {
    497485                        pRes->memlen = t * 65536;
     486                }
     487        }
     488
     489        t = 0;
     490        rc = ph->fsphQueryUlongProperty (pRes->properties, "KRB5SUPPORT", &t);
     491        if (!rc)
     492        {
     493                if (t > 1)
     494                {
     495                        rc = ERROR_INVALID_PARAMETER;
     496                }
     497                else
     498                {
     499                        pRes->krb5support = t;
    498500                }
    499501        }
Note: See TracChangeset for help on using the changeset viewer.