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; }
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 ); }
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; }
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; }
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; }
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; }
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; }
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); } }
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; }
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; }
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; }