Example #1
0
VOID
VdcadminReplNow(
    VOID
    )
{

    DWORD       dwError = 0;
    char        pszServerName[SIZE_256];
    PSTR        pszLocalErrorMsg = NULL;

    VmDirReadString(
        " Enter hostname to start replication cycle: ",
        pszServerName,
        SIZE_256,
        FALSE);

    dwError = VmDirReplNow( pszServerName );
    BAIL_ON_VMDIR_ERROR_WITH_MSG( dwError, (pszLocalErrorMsg),
                "VdcadminReplNow: VmDirReplNow() call failed with error: %d", dwError  );

    printf( "VmDirReplNow passed\n");

cleanup:

    VMDIR_SAFE_FREE_MEMORY(pszLocalErrorMsg);
    return;

error:

    printf( "%s\n", pszLocalErrorMsg ? pszLocalErrorMsg : "Hmmm ... no local error message."  );
    goto cleanup;
}
Example #2
0
VOID
VdcadminForceResetPassword(
    VOID
    )
{
    char        pszUPN[SIZE_256] = {0};
    DWORD       dwError = 0;
    PBYTE       pLocalByte = NULL;
    DWORD       dwByteSize = 0;

    VmDirReadString(
        "  Please enter account UPN : ",
        pszUPN,
        SIZE_256,
        FALSE);

    dwError = VmDirForceResetPassword( pszUPN, &pLocalByte, &dwByteSize );
    if (dwError == 0)
    {
        DWORD dwCnt = 0;
        printf("New password is -\n");
        for (dwCnt=0; dwCnt<dwByteSize; dwCnt++)
        {
            printf("%c", pLocalByte[dwCnt]);
        }
        printf("\n");
    }
    else
    {
        printf("VmDirForceResetPassword failed (%u)\n", dwError);
    }

    VMDIR_SAFE_FREE_MEMORY( pLocalByte );
}
Example #3
0
DWORD
VdcGetUsersPassword(
    PCOMMAND_LINE_PARAMETER_STATE pParameters,
    PSTR pszPasswordBuf,
    DWORD dwBufferSize
    )
{
    DWORD dwError = 0;

    if (pParameters->pszPasswordFile != NULL)
    {
        dwError = VmDirReadStringFromFile(pParameters->pszPasswordFile, pszPasswordBuf, sizeof(pszPasswordBuf));
        BAIL_ON_VMDIR_ERROR(dwError);
    }
    else if (pParameters->pszPassword)
    {
        //
        // VmDirStringCpyA expects the buffer size to *not* include the terminating null.
        //
        dwError = VmDirStringCpyA(pszPasswordBuf, dwBufferSize - 1, pParameters->pszPassword);
        BAIL_ON_VMDIR_ERROR(dwError);
    } else
    {
        //
        // VmDirReadString expects the buffer size to include the terminating null.
        //
        VmDirReadString("password: ", pszPasswordBuf, dwBufferSize, FALSE);
    }

cleanup:
    return dwError;

error:
    goto cleanup;
}
Example #4
0
DWORD
_PromptForContinuation()
{
    CHAR    pszContinueStr[1 + 1] = {""}; // 1- for '0' or '1', 1- for '\0' character
    DWORD   dwContinueVal = 1;

    // read Integer to continue from stdin
    VmDirReadString(
        "Enter 1 to Continue, 0 to Abort: ",
        pszContinueStr,
        sizeof(pszContinueStr),
        FALSE);
    dwContinueVal = (DWORD)VmDirStringToIA(pszContinueStr);
    if (dwContinueVal == 0)
    {
        printf("\n\tUser Decided to Abort and Therefore Aborting Task\n\n");
    }
    else if (dwContinueVal != 1)
    {
        printf("\n\tUser provided unrecognized input and Therefore Continuing Task\n\n");
        dwContinueVal = 1;
    }

    return dwContinueVal;
}
Example #5
0
VOID
VdcadminSetLogParameters(
    VOID
    )
{
    DWORD       dwError = 0;
    char        pszLogLevel[SIZE_256] = {0};
    char        pszLogMask[SIZE_256] = {0};
    int         iMask = 0;
    PVMDIR_SERVER_CONTEXT hServer = NULL;

    hServer = g_hServer;
    VmDirReadString(
        "  Log level (ERROR|WARNING|INFO|VERBOSE|DEBUG): ",
        pszLogLevel,
        SIZE_256,
        FALSE);

    VmDirReadString(
        "  Log mask : ",
        pszLogMask,
        SIZE_256,
        FALSE);

    iMask = atoi(pszLogMask);

    dwError = VmDirSetLogLevelH(hServer, pszLogLevel);
    if (dwError)
    {
        printf( "VmDirSetLogLevel failed (%u)\n", dwError);
            goto error;
    }

    dwError = VmDirSetLogMaskH(hServer, iMask);
    if (dwError)
    {
        printf( "VmDirSetLogMask failed (%u)\n", dwError);
        goto error;
    }
error:
    return;
}
Example #6
0
VOID
VdcadminSetVmdirState(
    VOID
    )
{
    DWORD       dwError = 0;
    char        pszState[SIZE_256] = {0};
    PSTR        pszLocalErrorMsg = NULL;
    PVMDIR_SERVER_CONTEXT hServer = NULL;
    VDIR_SERVER_STATE vmdirState = VMDIRD_STATE_NORMAL;

    VmDirReadString(
        "Enter state (NORMAL|READ_ONLY): ",
        pszState,
        SIZE_256,
        FALSE);

    if ( VmDirStringCompareA( pszState, "NORMAL", FALSE) == 0 )
    {
        vmdirState = VMDIRD_STATE_NORMAL;
    }
    else if ( VmDirStringCompareA( pszState, "READ_ONLY", FALSE) == 0 )
    {
        vmdirState = VMDIRD_STATE_READ_ONLY;
    }
    else
    {
        dwError = VMDIR_ERROR_INVALID_PARAMETER;
        BAIL_ON_VMDIR_ERROR(dwError);
    }

    if (g_hServer)
    {
        hServer = g_hServer;
    }

    dwError = VmDirSetState(hServer, vmdirState );
    BAIL_ON_VMDIR_ERROR_WITH_MSG( dwError, (pszLocalErrorMsg),
                                  "VmDirSetState() failed. error(%u)", dwError );

    printf("\n\n State of Vmdir set to %s\n\n", pszState);

cleanup:

    VMDIR_SAFE_FREE_MEMORY(pszLocalErrorMsg);

    return;

error:

    printf("\n SetVmDirState failed: %s\n", VDIR_SAFE_STRING(pszLocalErrorMsg));

    goto cleanup;
}
Example #7
0
VOID
VdcadminTestSASLClient(
    VOID
    )
{
    DWORD   dwError = 0;
    char    pszServerHost[SIZE_256] = {0};
    char    pszServerPort[SIZE_256] = {0};
    char    pszServerSSLPort[SIZE_256] = {0};
    char    pszBindDN[SIZE_256] = {0};
    char    pszBindUPN[SIZE_256] = {0};
    char    pszPassword[SIZE_256] = {0};
    PSTR    pszLDAPURI = NULL;
    PSTR    pszLDAPSURI = NULL;

    VmDirReadString(
        "Please enter LDAP server host: ",
        pszServerHost,
        SIZE_256,
        FALSE);

    VmDirReadString(
        "Please enter LDAP server port: ",
        pszServerPort,
        SIZE_256,
        FALSE);

    VmDirReadString(
        "Please enter LDAP server SSL port: ",
        pszServerSSLPort,
        SIZE_256,
        FALSE);

    VmDirReadString(
        "Please enter LDAP Bind DN: ",
        pszBindDN,
        SIZE_256,
        FALSE);

    VmDirReadString(
        "Please enter LDAP Bind UPN: ",
        pszBindUPN,
        SIZE_256,
        FALSE);

    VmDirReadString(
        "Please enter LDAP Bind password: "******"\n");

    dwError = VmDirAllocateStringAVsnprintf( &pszLDAPURI,
                                             "ldap://%s:%s",
                                             pszServerHost[0] != '\0' ? pszServerHost : "localhost",
                                             pszServerPort);
    BAIL_ON_VMDIR_ERROR(dwError);

    dwError = VmDirAllocateStringAVsnprintf( &pszLDAPSURI,
                                             "ldaps://%s:%s",
                                             pszServerHost[0] != '\0' ? pszServerHost : "localhost",
                                             pszServerSSLPort);
    BAIL_ON_VMDIR_ERROR(dwError);

    _VdcadminClientTestSimpleBind( pszLDAPURI, pszBindDN, pszPassword );

    _VdcadminClientTestSimpleSSLBind( pszLDAPSURI, pszBindDN, pszPassword );

    _VdcadminClientTestSRPBind( pszLDAPURI, pszBindUPN, pszPassword );

    _VdcadminClientTestGSSAPIBind( pszLDAPURI );


cleanup:

    memset(pszPassword, 0, sizeof(pszPassword));

    VMDIR_SAFE_FREE_MEMORY(pszLDAPURI);
    VMDIR_SAFE_FREE_MEMORY(pszLDAPSURI);

    return;

error:

    printf("TestVdcadminSASLClient failed. (%d)\n", dwError);
    goto cleanup;
}
Example #8
0
VOID
VdcadminSetSRPAuthData(
    VOID
    )
{
    CHAR inBuf[512] = {0};
    DWORD dwError = 0;

    if (pszUserName)
    {
        free(pszUserName);
    }
    if (pszDomain)
    {
        free(pszDomain);
    }
    if (pszPassword)
    {
        free(pszPassword);
    }
    VmDirReadString(
        "VMDIR IP address: ",
        inBuf,
        sizeof(inBuf),
        FALSE);
    if (inBuf[0])
    {
        pszNetworkAddress = strdup(inBuf);
    }

    VmDirReadString(
        "SRP Username: "******"SRP Domain: ",
        inBuf,
        sizeof(inBuf),
        FALSE);
    if (inBuf[0])
    {
        pszDomain = strdup(inBuf);
    }

    VmDirReadString(
        "SRP Password: "******"VmDirCreateBindingHandleAuthA: failed %x\n", dwError);
    }

    dwError = VmDirOpenServerA(
                  pszNetworkAddress,
                  pszUserName,
                  pszDomain,
                  pszPassword,
                  0,
                  NULL,
                  &g_hServer);
    if (dwError)
    {
        printf("VmDirOpenServerA: failed %x\n", dwError);
    }
}
Example #9
0
static
int
VmDirMain(
    int argc,
    char* argv[]
    )
{
    DWORD   dwError = 0;
    CHAR    pszPath[MAX_PATH];
    PSTR   pszServerName = NULL;
    PSTR   pszUserName = NULL;
    PSTR   pszPassword = NULL;
    CHAR   pszPasswordBuf[VMDIR_MAX_PWD_LEN + 1] = {0};
    PSTR   pszErrorMessage = NULL;

#ifndef _WIN32
    setlocale(LC_ALL, "");
#endif

    dwError = VmDirGetVmDirLogPath(pszPath, "vdcleavefed.log");
    BAIL_ON_VMDIR_ERROR(dwError);

    dwError = VmDirLogInitialize( pszPath, FALSE, NULL, VMDIR_LOG_INFO, VMDIR_LOG_MASK_ALL );
    BAIL_ON_VMDIR_ERROR(dwError);

    VmDirLogSetLevel( VMDIR_LOG_VERBOSE );

    dwError = VmDirParseArgs( argc, argv, &pszServerName, &pszUserName, &pszPassword);
    if (dwError != 0)
    {
        ShowUsage();
        BAIL_ON_VMDIR_ERROR(dwError);
    }

    if (pszUserName == NULL)
    {
        //Must use administrator as userName
        ShowUsage();
        BAIL_ON_VMDIR_ERROR(dwError);
    }

    if (pszPassword == NULL)
    {
        // read password from stdin
        VmDirReadString(
            "password: "******"vdcleavefd for local server\n");
        dwError = _VdcSetReadOnlyState();
        BAIL_ON_VMDIR_ERROR(dwError);
    } else
    {
         printf("vdcleavefd offline for server %s\n", pszServerName);
    }

    dwError = VmDirLeaveFederation(pszServerName, pszUserName, pszPassword);
    BAIL_ON_VMDIR_ERROR(dwError);

    printf(" Leave federation cleanup done\n");

cleanup:

    memset(pszPasswordBuf, 0, sizeof(pszPasswordBuf));
    VMDIR_SAFE_FREE_MEMORY(pszErrorMessage);

    VmDirLogTerminate();
    return dwError;

error:
    VmDirGetErrorMessage(dwError, &pszErrorMessage);
    printf("Leave federation cleanup failed. Error[%d] - %s\n",
        dwError, ( pszErrorMessage ) ? pszErrorMessage : "");

    goto cleanup;
}
Example #10
0
static
int
VmDirMain(int argc, char* argv[])
{
    DWORD       dwError = 0;
    DWORD       i       = 0;
    PSTR        pszFeatureSet  = NULL;
    PSTR        pszSrcHostName = NULL;
    PSTR        pszSrcPort     = NULL;
    PSTR        pszSrcUserName = NULL;
    PSTR        pszSrcPassword = NULL;
    PSTR        pszTgtHostName = NULL;
    PSTR        pszTgtPort     = NULL;
    BOOLEAN     bVerbose       = FALSE;
    BOOLEAN     bTwoWayRepl    = FALSE;
    PSTR        pszErrMsg      = NULL;
    CHAR        pszPasswordBuf[VMDIR_MAX_PWD_LEN + 1] = {0};

    PVMDIR_REPL_PARTNER_INFO    pReplPartnerInfo       = NULL;
    PVMDIR_REPL_PARTNER_STATUS  pReplPartnerStatus     = NULL;
    PVMDIR_SERVER_INFO          pServerInfo            = NULL;
    DWORD                       dwReplPartnerInfoCount = 0;
    DWORD                       dwReplPartnerStatusCount = 0;
    DWORD                       dwServerInfoCount      = 0;

    CHAR        pszPath[MAX_PATH];

#ifndef _WIN32
    setlocale(LC_ALL,"");
#endif

    dwError = VmDirGetVmDirLogPath(pszPath, "vdcrepadmin.log");
    BAIL_ON_VMDIR_ERROR(dwError);
    dwError = VmDirLogInitialize(pszPath, FALSE, NULL, VMDIR_LOG_INFO, VMDIR_LOG_MASK_ALL );
    BAIL_ON_VMDIR_ERROR(dwError);

    //get commandline parameters
    dwError = VmDirParseArgs(
                    argc,
                    argv,
                    &pszFeatureSet,
                    &bTwoWayRepl,
                    &pszSrcHostName,
                    &pszSrcPort,
                    &pszSrcUserName,
                    &pszSrcPassword,
                    &pszTgtHostName,
                    &pszTgtPort,
                    &bVerbose
                    );

    if (bVerbose)
    {
        VmDirSetLogLevel( "VERBOSE" );
    }

    if (dwError)
    {
        ShowUsage();
        goto cleanup;
    }

    if (pszSrcPassword == NULL)
    {
        // read passowrd from stdin
        VmDirReadString("password: "******"Vdcrepadmin failed. Error [%s] [%d]\n", VDIR_SAFE_STRING(pszErrMsg),dwError);
    goto cleanup;
}
Example #11
0
int
VmDirMain(int argc, char* argv[])
    {
    DWORD   dwError              = 0;

    PSTR    pszUserName          = NULL;
    PSTR    pszPartnerHost       = NULL;
    PSTR    pszPassword          = NULL;
    PSTR    pszPasswordBuf       = NULL;

    CHAR    pszPath[MAX_PATH];
    CHAR    pszLocalHostName[VMDIR_MAX_HOSTNAME_LEN] = {0};
#ifndef _WIN32
    setlocale(LC_ALL,"");
#endif

    dwError = VmDirGetVmDirLogPath(pszPath, "vdcresetMachineActCred.log");
    BAIL_ON_VMDIR_ERROR(dwError);

    dwError = VmDirLogInitialize(pszPath, FALSE, NULL, VMDIR_LOG_INFO, VMDIR_LOG_MASK_ALL );
    BAIL_ON_VMDIR_ERROR(dwError);

    //get commandline parameters
    dwError = VmDirParseArgs(argc,
                             argv,
                             &pszUserName,
                             &pszPartnerHost,
                             &pszPassword);

    if ( dwError )
    {
        ShowUsage();
        goto cleanup;
    }

    dwError = VmDirAllocateMemory(VMDIR_MAX_PWD_LEN+1, (PVOID *)&pszPasswordBuf);
    BAIL_ON_VMDIR_ERROR(dwError);

    if ( pszPassword != NULL )
    {
        dwError = VmDirStringCpyA(pszPasswordBuf, VMDIR_MAX_PWD_LEN, pszPassword);
        BAIL_ON_VMDIR_ERROR(dwError);
    }
    else
    //no password, read password from stdin
    {
        VmDirReadString("password: "******"vdcresetMachineActCred completed.\n");

    VMDIR_LOG_INFO( VMDIR_LOG_MASK_ALL, "vdcresetMachineActCred completed.");

cleanup:
    VMDIR_SAFE_FREE_MEMORY(pszPasswordBuf);
    VmDirLogTerminate();

    return dwError;

error:
    printf("vdcresetMachineActCred failed. Error[%d]\n", dwError);
    goto cleanup;
    }