~ssalley/ubuntu/maverick/likewise-open/likewise-open.fix627272

« back to all changes in this revision

Viewing changes to lsass/server/auth-providers/ad-provider/provider-main.c

  • Committer: Bazaar Package Importer
  • Author(s): Gerald Carter, Michael Casadevall, Gerald Carter
  • Date: 2010-03-13 07:42:44 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20100313074244-j1gy0zo19cc32xhl
Tags: 5.4.0.42111-1
[ Michael Casadevall ]
* LP: #517300
  - added debian/patches/disable_parallel_builds.diff to allow successful builds
    on non-x86 architectures caused by improperly parsing /proc/cpuinfo to
    determine the number of CPUs and set make -jX.
  - added debian/patches/correct_lwio_configure_detection.diff to correct configure
    tests for properly checking proc filesystems on non-x86 linux platforms
  - added ${misc:Depends} to Depends lines to satisfy lintian
  - Added debian/README.source to satisfy lintian 
  - Bumped standards version to 3.8.3

[ Gerald Carter ]
* New upstream release. (LP: #538616)
* likewise-open.install: Include uninstalled binaries and ncalrpc
    servers required for domainjoin-cli {join,leave}
* patches/version-in-share.diff:
  - Corrected location of VERSION file in lsassd

Show diffs side-by-side

added added

removed removed

Lines of Context:
1245
1245
    return dwError;
1246
1246
}
1247
1247
 
1248
 
 
1249
1248
static
1250
1249
DWORD
1251
1250
AD_JoinDomain(
1263
1262
    PLSA_AD_IPC_JOIN_DOMAIN_REQ pRequest = NULL;
1264
1263
    PSTR pszMessage = NULL;
1265
1264
    BOOLEAN bLocked = FALSE;
 
1265
    PSTR pszDC = NULL;
1266
1266
 
1267
1267
    if (peerUID != 0)
1268
1268
    {
1290
1290
 
1291
1291
    LSA_LOG_TRACE("Domain join request: %s", pszMessage);
1292
1292
 
 
1293
    dwError = LWNetGetDomainController(
 
1294
                    pRequest->pszDomain,
 
1295
                    &pszDC);
 
1296
    if (dwError)
 
1297
    {
 
1298
        LSA_LOG_VERBOSE("Failed to find DC for domain %s", LSA_SAFE_LOG_STRING(pRequest->pszDomain));
 
1299
        BAIL_ON_LSA_ERROR(dwError);
 
1300
    }
 
1301
    LSA_LOG_VERBOSE("Affinitized to DC '%s' for join request to domain '%s'",
 
1302
            LSA_SAFE_LOG_STRING(pszDC),
 
1303
            LSA_SAFE_LOG_STRING(pRequest->pszDomain));
 
1304
 
1293
1305
    LsaAdProviderStateAcquireWrite(gpLsaAdProviderState);
1294
1306
    bLocked = TRUE;
1295
1307
 
1312
1324
    dwError = AD_PostJoinDomain(hProvider, gpLsaAdProviderState);
1313
1325
    BAIL_ON_LSA_ERROR(dwError);
1314
1326
 
 
1327
    dwError = LsaEnableDomainGroupMembership(pRequest->pszHostDnsDomain);
 
1328
    BAIL_ON_LSA_ERROR(dwError);
 
1329
 
1315
1330
    LSA_LOG_INFO("Joined domain: %s", pRequest->pszDomain);
1316
1331
 
1317
1332
cleanup:
1335
1350
    {
1336
1351
        lwmsg_data_context_delete(pDataContext);
1337
1352
    }
 
1353
    LW_SAFE_FREE_STRING(pszDC);
1338
1354
 
1339
1355
    return dwError;
1340
1356
 
1428
1444
    LsaAdProviderStateAcquireWrite(gpLsaAdProviderState);
1429
1445
    bLocked = TRUE;
1430
1446
 
 
1447
    dwError = LsaDisableDomainGroupMembership();
 
1448
    BAIL_ON_LSA_ERROR(dwError);
 
1449
 
1431
1450
    dwError = AD_PreLeaveDomain(hProvider, gpLsaAdProviderState);
1432
1451
    BAIL_ON_LSA_ERROR(dwError);
1433
1452
 
3372
3391
    DWORD dwError = LW_ERROR_SUCCESS;
3373
3392
    struct timeval current_tv = {0};
3374
3393
    UINT64 u64current_NTtime = 0;
3375
 
    int64_t qwNanosecsToPasswordExpiry = 0;
3376
3394
 
3377
3395
    switch(pObject->type)
3378
3396
    {
3394
3412
                pObject->userInfo.bAccountExpired = TRUE;
3395
3413
            }
3396
3414
 
3397
 
            if (gpADProviderData->adMaxPwdAge != 0)
 
3415
            pObject->userInfo.qwMaxPwdAge = gpADProviderData->adMaxPwdAge;
 
3416
 
 
3417
            if ((!pObject->userInfo.bPasswordNeverExpires &&
 
3418
                  pObject->userInfo.qwPwdExpires != 0 &&
 
3419
                  u64current_NTtime >= pObject->userInfo.qwPwdExpires) ||
 
3420
                pObject->userInfo.qwPwdLastSet == 0)
3398
3421
            {
3399
 
                pObject->userInfo.qwMaxPwdAge = gpADProviderData->adMaxPwdAge;
3400
 
 
3401
 
                qwNanosecsToPasswordExpiry = gpADProviderData->adMaxPwdAge -
3402
 
                    (u64current_NTtime - pObject->userInfo.qwPwdLastSet);
3403
 
 
3404
 
                if ((!pObject->userInfo.bPasswordNeverExpires &&
3405
 
                     gpADProviderData->adMaxPwdAge != 0 &&
3406
 
                     qwNanosecsToPasswordExpiry < 0) ||
3407
 
                    pObject->userInfo.qwPwdLastSet == 0)
3408
 
                {
3409
 
                    //password is expired already
3410
 
                    pObject->userInfo.bPasswordExpired = TRUE;
3411
 
                }
 
3422
                //password is expired already
 
3423
                pObject->userInfo.bPasswordExpired = TRUE;
3412
3424
            }
3413
3425
        }
3414
3426
 
3796
3808
 
3797
3809
    LsaAdProviderStateAcquireRead(gpLsaAdProviderState);
3798
3810
 
3799
 
    if (gpLsaAdProviderState->joinState != LSA_AD_JOINED)
 
3811
    if (gpLsaAdProviderState->joinState != LSA_AD_JOINED ||
 
3812
        FindFlags & LSA_FIND_FLAGS_LOCAL)
3800
3813
    {
3801
3814
        dwError = LW_ERROR_NOT_HANDLED;
3802
3815
        BAIL_ON_LSA_ERROR(dwError);