Ejemplo n.º 1
0
/*
 *	NOTE:	This function has an important side effect.  If this machine
 *			is not the first in a new cell, then this function will get the
 *			cell name from the config info.  The cell name may be needed in 
 *			config calls that come later, and so this function must be called
 *			before they are.
 */
static int IsConfigInfoValid(BOOL& bValid, afs_status_t& nStatus)
{
    if (bCancel)
	return FALSE;
	
    afs_status_t configStatus;
    char *pszCellName = 0;

    NextStep(IDS_CHECK_CONFIG_INFO);

    bValid = FALSE;

    g_LogFile.Write("Is there valid configuration information on this machine: ");
    int nResult = cfg_HostQueryStatus(GetHostnameA(), &configStatus, &pszCellName, &nStatus);
    if (!nResult)
	return FALSE;

    g_LogFile.WriteBoolResult((configStatus == 0));

    if (configStatus == 0)
	lstrncpy(g_CfgData.szCellName, A2S(pszCellName), MAX_CELL_NAME_LEN);
    else
	g_LogFile.WriteError("The configuration information on this host is not valid", configStatus);

    bValid = (BOOL)(configStatus == 0);

    return TRUE;
}
Ejemplo n.º 2
0
static BOOL GetDriveInfo(TCHAR chDrive, DRIVE_INFO& di)
{
    DWORD dwDummy;
    TCHAR szFileSys[64];
    DWORD dwDriveFlags;

    _stprintf(di.szRootDir, TEXT("%c:\\"), chDrive);
	
    if (GetDriveType(di.szRootDir) != DRIVE_FIXED)
	return FALSE;

    if (!GetVolumeInformation(di.szRootDir, di.szVolName, sizeof(di.szVolName), 0, &dwDummy, &dwDriveFlags, szFileSys, sizeof(szFileSys)))
	return FALSE;

    TCHAR szError[256] = TEXT("");

    BOOL bInvalid = FALSE, bHasData = FALSE;
    BOOL bIsAfs = ValidateDrive(IsAnAfsPartition(di.szRootDir), IDS_ERROR_DRIVE_ALREADY_HAS_AFS, szError);
    if (!bIsAfs) {
	bInvalid |= ValidateDrive(dwDriveFlags & FS_VOL_IS_COMPRESSED, IDS_ERROR_DRIVE_COMPRESSED, szError);
	bInvalid |= ValidateDrive(lstrcmp(szFileSys, TEXT("NTFS")) != 0, IDS_ERROR_FS_IS_NOT_NTFS, szError);

	/* 
	 *  We are no longer going to require that afs drives be empty; we will give a warning instead.
	 *
	 *	bInvalid |= ValidateDrive(DoesDriveContainNT(di.szRootDir), IDS_ERROR_DRIVE_CONTAINS_NT, szError);
	 *	bRecycle = ValidateDrive(DriveHasRecycleBin(di.szRootDir), IDS_WARNING_DRIVE_HAS_RECYCLE_BIN, szError);
	 */
	if (!bInvalid)
	    bHasData = ValidateDrive(DoesDriveContainData(di.szRootDir), IDS_ERROR_DRIVE_HAS_DATA, szError);
    }	

    if (*szError) {
	lstrcpy(di.szVolName, szError);

	if (bIsAfs)
	    di.nImage = AFS_DISK_DRIVE_IMAGE;
	else if (bHasData)
	    di.nImage = DISK_DRIVE_WITH_WARNING_IMAGE;      // Treat this as a warning
	else
	    di.nImage = DISABLED_DISK_DRIVE_IMAGE;

	if (bIsAfs || bInvalid) {
	    di.bDisabled = TRUE;
	    di.dwFlags |= FLIF_DISALLOW_SELECT;
	}
    } else {
	di.nImage = DISK_DRIVE_IMAGE;

	if (lstrlen(di.szVolName) == 0)
	    GetString(di.szVolName, IDS_VOLUME_HAS_NO_NAME);
    }	

    lstrncpy(di.szSize, GetDriveSizeAsString(di.szRootDir), sizeof(di.szSize));

    return TRUE;
}
Ejemplo n.º 3
0
static BOOL SavePageInfo()
{
    TCHAR szText[cchRESOURCE];

    GetWndText(hDlg, IDC_CELL_NAME, szText);
    if (lstrlen(szText) > MAX_CELL_NAME_LEN) {
	MsgBox(hDlg, IDS_CELL_NAME_LEN_ERROR, GetAppTitleID(), MB_ICONSTOP | MB_OK);
	return FALSE;
    }

    lstrcpy(g_CfgData.szCellName, szText);
    lstrncpy(g_CfgData.szServerPW, GetWndText(hDlg, IDC_SERVER_PW, szText), MAX_SERVER_PW_LEN);
    g_CfgData.bFirstServer = IsButtonChecked(hDlg, IDC_FIRST_SERVER);

    return TRUE;
}
Ejemplo n.º 4
0
static BOOL IsClientConfigured(BOOL& bConfigured, afs_status_t& nStatus)
{
    if (bCancel)
	return FALSE;

    bConfigured = FALSE;

    NextStep(IDS_CHECK_AFS_CLIENT);

    short isInstalled;
    afs_status_t configStatus;
    char *pszCellName = 0;

    g_LogFile.Write("Is the AFS Client installed on this machine: ");
    if (!cfg_ClientQueryStatus(GetHostnameA(), &isInstalled, &g_CfgData.nClientVersion, &configStatus, &pszCellName, &nStatus)) {
	ImmediateErrorDialog(nStatus, IDS_ERROR_AFS_CLIENT_CHECK);
	return FALSE;
    }

    g_LogFile.WriteBoolResult((BOOL)isInstalled);

    bConfigured = (BOOL)(configStatus == 0);
    if (bConfigured)
	lstrncpy(g_CfgData.szClientCellName, A2S(pszCellName), MAX_CELL_NAME_LEN);
    else
	g_LogFile.WriteError("The client configuration information on this host is not valid", configStatus);

    if (!isInstalled) {
	g_LogFile.Write("ERROR:  AFS Client is not installed.  The AFS Server requires the AFS Client.\r\n");
	ImmediateErrorDialog(0, IDS_ERROR_AFS_CLIENT_NOT_INSTALLED);
	nStatus = -1;	// Just need something nonzero
	return FALSE;
    }

    return TRUE;
}	
Ejemplo n.º 5
0
LPTSTR Services_GetColumnText (LPIDENT lpi, SERVICECOLUMN svccol, BOOL fShowServerName)
{
    static TCHAR aszBuffer[ nSERVICECOLUMNS ][ cchRESOURCE ];
    static size_t iBufferNext = 0;
    LPTSTR pszBuffer = aszBuffer[ iBufferNext++ ];
    if (iBufferNext == nSERVICECOLUMNS)
        iBufferNext = 0;
    *pszBuffer = TEXT('\0');

    LPSERVICESTATUS lpss = NULL;
    LPSERVICE_PREF lpsp;
    if ((lpsp = (LPSERVICE_PREF)lpi->GetUserParam()) != NULL)
        lpss = &lpsp->ssLast;

    switch (svccol)
    {
    case svccolNAME:
        if (!fShowServerName)
            lpi->GetServiceName (pszBuffer);
        else
        {
            TCHAR szNameSvr[ cchNAME ];
            TCHAR szNameSvc[ cchNAME ];
            lpi->GetServerName (szNameSvr);
            lpi->GetServiceName (szNameSvc);
            LPTSTR pszName = FormatString (IDS_SERVER_SERVICE, TEXT("%s%s"), szNameSvr, szNameSvc);
            lstrcpy (pszBuffer, pszName);
            FreeString (pszName);
        }
        break;

    case svccolTYPE:
        if (lpss)
        {
            if (lpss->type == SERVICETYPE_SIMPLE)
                GetString (pszBuffer, IDS_SERVICETYPE_SIMPLE);
            else if (lpss->type == SERVICETYPE_FS)
                GetString (pszBuffer, IDS_SERVICETYPE_FS);
            else
                GetString (pszBuffer, IDS_SERVICETYPE_CRON);
        }
        break;

    case svccolPARAMS:
        if (lpss)
        {
            lstrncpy (pszBuffer, lpss->szParams, cchRESOURCE-1);
            pszBuffer[ cchRESOURCE-1 ] = TEXT('\0');

            for (LPTSTR pch = pszBuffer; *pch; ++pch)
            {
                if (*pch == TEXT('\r') || *pch == TEXT('\t') || *pch == TEXT('\n'))
                    *pch = TEXT(' ');
            }
        }
        break;

    case svccolNOTIFIER:
        if (lpss)
        {
            lstrncpy (pszBuffer, lpss->szNotifier, cchRESOURCE-1);
            pszBuffer[ cchRESOURCE-1 ] = TEXT('\0');

            for (LPTSTR pch = pszBuffer; *pch; ++pch)
            {
                if (*pch == TEXT('\r') || *pch == TEXT('\t') || *pch == TEXT('\n'))
                    *pch = TEXT(' ');
            }
        }
        break;

    case svccolSTATUS:
        if (lpss)
        {
            if (lpss->state == SERVICESTATE_RUNNING)
                GetString (pszBuffer, IDS_SERVICESTATE_RUNNING);
            else if (lpss->state == SERVICESTATE_STOPPING)
                GetString (pszBuffer, IDS_SERVICESTATE_STOPPING);
            else if (lpss->state == SERVICESTATE_STARTING)
                GetString (pszBuffer, IDS_SERVICESTATE_STARTING);
            else
                GetString (pszBuffer, IDS_SERVICESTATE_STOPPED);
        }
        break;

    case svccolDATE_START:
        if (lpss)
        {
            if (!FormatTime (pszBuffer, TEXT("%s"), &lpss->timeLastStart))
                pszBuffer[0] = TEXT('\0');
        }
        break;

    case svccolDATE_STOP:
        if (lpss)
        {
            if (!FormatTime (pszBuffer, TEXT("%s"), &lpss->timeLastStop))
                pszBuffer[0] = TEXT('\0');
        }
        break;

    case svccolDATE_STARTSTOP:
        if (lpss)
        {
            LPSYSTEMTIME pst;
            int ids;
            if ((lpss->state == SERVICESTATE_RUNNING) || (lpss->state == SERVICESTATE_STARTING))
            {
                ids = IDS_SERVICE_STARTDATE;
                pst = &lpss->timeLastStart;
            }
            else
            {
                ids = IDS_SERVICE_STOPDATE;
                pst = &lpss->timeLastStop;
            }

            TCHAR szDate[ cchRESOURCE ];
            if (FormatTime (szDate, TEXT("%s"), pst))
            {
                LPTSTR psz = FormatString (ids, TEXT("%s"), szDate);
                lstrcpy (pszBuffer, psz);
                FreeString (psz);
            }
        }
        break;

    case svccolDATE_FAILED:
        if (lpss)
        {
            if (!FormatTime (pszBuffer, TEXT("%s"), &lpss->timeLastFail))
                pszBuffer[0] = TEXT('\0');
        }
        break;

    case svccolLASTERROR:
        if (lpss)
        {
            LPTSTR psz = FormatString (IDS_SERVICE_LASTERROR, TEXT("%ld"), lpss->dwErrLast);
            lstrcpy (pszBuffer, psz);
            FreeString (psz);
        }
        break;
    }

    return pszBuffer;
}
Ejemplo n.º 6
0
 /******************************************************************************
     TerEnableTracking:
     Enable or disable tracking of text changes.  This function returns the
     previous status.
 ******************************************************************************/
 BOOL WINAPI _export TerEnableTracking(HWND hWnd, bool enable, LPBYTE UName, BOOL UseDefaultClrStyle,
     DWORD InsStyle, COLORREF InsColor, DWORD DelStyle, COLORREF DelColor)
 {
     BYTE name[UNLEN+1];
     LPBYTE pName=null;
     int  i,len;
     SYSTEMTIME SysTime;
     FILETIME  FileTime;
     WORD DosDate,DosTime;
     bool NewUser=false;

     PTERWND w;

     if (NULL==(w=GetWindowPointer(hWnd))) return false;  // get the pointer to window data

     if (!TerArg.WordWrap) return false;

     if (TrackChanges == enable) return true;   // no status change requested

     TrackChanges=enable;

     if (enable) {
        if (UName && lstrlen(UName)>0) pName=UName;
        else {  // get system user name
          len=UNLEN;
          name[0]=0;
          GetUserName(name,&len);
          if (len>49) len=49;   // StrReviewer limit
          name[len]=0;
          pName=name;
        }

        // check if this reviewer exists
        for (i=1;i<TotalReviewers;i++) if (lstrcmpi(reviewer[i].name,pName)==0) break;

        if (i==TotalReviewers) {
           i=GetReviewerSlot(w);
           lstrncpy(reviewer[i].name,pName,49);  // copy name
           reviewer[i].name[49]=0;
           NewUser=true;

        }
        
        if (!UseDefaultClrStyle) {
           reviewer[i].InsStyle=InsStyle;
           reviewer[i].DelStyle=DelStyle;

           reviewer[i].InsColor=InsColor;
           reviewer[i].DelColor=DelColor;
           reviewer[i].FmtColor=InsColor;
        } 
        
        TrackRev=i;   // current reviewer id

        // get the current date/time as DWORD
        GetLocalTime(&SysTime);
        SystemTimeToFileTime(&SysTime,&FileTime);
        FileTimeToDosDateTime(&FileTime,&DosDate,&DosTime);
        TrackTime=(((DWORD)DosDate)<<16)+DosTime;

        InsertMode=true;              // insert mode always true when tracking

        if (!NewUser) {               // font/style might have changed, so recreate the fonts
           RecreateFonts(w,hTerDC);
           RequestPagination(w,true);
           PaintTer(w);
        }     
     } 
     else {
        TrackRev=0;
        TrackTime=0;
     } 
     return true;
 }