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