VirtualBox

Changeset 40415 in vbox for trunk/src/VBox/Additions/common


Ignore:
Timestamp:
Mar 9, 2012 3:44:31 PM (13 years ago)
Author:
vboxsync
Message:

VbgR3AutoLogonReportStatus: Drop the unnecessary RTStrPrintf and RTPATH_MAX buffering, just use a pointer to a const string.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibAutoLogon.cpp

    r40414 r40415  
    1 /* $Id */
     1/* $Id$ */
    22/** @file
    33 * VBoxGuestR3LibAutoLogon - Ring-3 utility functions for auto-logon modules
    4  * (VBoxGINA / VBoxCredProv / pam_vbox).
     4 *                           (VBoxGINA / VBoxCredProv / pam_vbox).
    55 */
    66
     
    3030*   Header Files                                                               *
    3131*******************************************************************************/
    32 #include <iprt/asm.h>
    33 #include <iprt/mem.h>
    34 #include <iprt/rand.h>
    35 #include <iprt/string.h>
    36 #include <VBox/log.h>
     32#ifdef RT_OS_WINDOWS
     33# include <Windows.h>
     34#endif
    3735
    3836#include "VBGLR3Internal.h"
     
    6866            if (RT_SUCCESS(rc))
    6967            {
    70                 /** @todo Move VBoxGuestStatusCurrent -> const char* to an own function. */
    71                 char szStatus[RTPATH_MAX];
    72                 size_t cbRet = 0;
     68                const char *pszStatus;
    7369                switch (enmStatus)
    7470                {
    75                     case VBoxGuestFacilityStatus_Inactive:
    76                         cbRet = RTStrPrintf(szStatus, sizeof(szStatus), "Inactive");
    77                         break;
    78                     case VBoxGuestFacilityStatus_Paused:
    79                         cbRet = RTStrPrintf(szStatus, sizeof(szStatus), "Disabled");
    80                         break;
    81                     case VBoxGuestFacilityStatus_PreInit:
    82                         cbRet = RTStrPrintf(szStatus, sizeof(szStatus), "PreInit");
    83                         break;
    84                     case VBoxGuestFacilityStatus_Init:
    85                         cbRet = RTStrPrintf(szStatus, sizeof(szStatus), "Init");
    86                         break;
    87                     case VBoxGuestFacilityStatus_Active:
    88                         cbRet = RTStrPrintf(szStatus, sizeof(szStatus), "Active");
    89                         break;
    90                     case VBoxGuestFacilityStatus_Terminating:
    91                         cbRet = RTStrPrintf(szStatus, sizeof(szStatus), "Terminating");
    92                         break;
    93                     case VBoxGuestFacilityStatus_Terminated:
    94                         cbRet = RTStrPrintf(szStatus, sizeof(szStatus), "Terminated");
    95                         break;
    96                     case VBoxGuestFacilityStatus_Failed:
    97                         cbRet = RTStrPrintf(szStatus, sizeof(szStatus), "Failed");
    98                         break;
    99                     default:
    100                         /* cbRet will be 0. */
    101                         break;
     71                    case VBoxGuestFacilityStatus_Inactive:      pszStatus = "Inactive"; break;
     72                    case VBoxGuestFacilityStatus_Paused:        pszStatus = "Disabled"; break;
     73                    case VBoxGuestFacilityStatus_PreInit:       pszStatus = "PreInit"; break;
     74                    case VBoxGuestFacilityStatus_Init:          pszStatus = "Init"; break;
     75                    case VBoxGuestFacilityStatus_Active:        pszStatus = "Active"; break;
     76                    case VBoxGuestFacilityStatus_Terminating:   pszStatus = "Terminating"; break;
     77                    case VBoxGuestFacilityStatus_Terminated:    pszStatus = "Terminated"; break;
     78                    case VBoxGuestFacilityStatus_Failed:        pszStatus = "Failed"; break;
     79                    default:                                    pszStatus = NULL;
    10280                }
    103 
    104                 if (cbRet)
     81                if (pszStatus)
    10582                {
    106                     const char szPath[] = "/VirtualBox/GuestInfo/OS/AutoLogonStatus";
    107 
    10883                    /*
    109                      * Because a value can be temporary we have to make sure it also
    110                      * gets deleted when the property cache did not have the chance to
    111                      * gracefully clean it up (due to a hard VM reset etc), so set this
    112                      * guest property using the TRANSRESET flag..
     84                     * Use TRANSRESET when possible, fall back to TRANSIENT
     85                     * (generally sufficient unless the guest misbehaves).
    11386                     */
    114                     rc = VbglR3GuestPropWrite(u32ClientId, szPath, szStatus, "TRANSRESET");
     87                    static const char s_szPath[] = "/VirtualBox/GuestInfo/OS/AutoLogonStatus";
     88                    rc = VbglR3GuestPropWrite(u32ClientId, s_szPath, pszStatus, "TRANSRESET");
    11589                    if (rc == VERR_PARSE_ERROR)
    116                     {
    117                         /* Host does not support the "TRANSRESET" flag, so only
    118                          * use the "TRANSIENT" flag -- better than nothing :-). */
    119                         rc = VbglR3GuestPropWrite(u32ClientId, szPath, szStatus, "TRANSIENT");
    120                     }
     90                        rc = VbglR3GuestPropWrite(u32ClientId, s_szPath, pszStatus, "TRANSIENT");
    12191                }
    12292                else
     
    141111{
    142112#ifdef RT_OS_WINDOWS
    143     return (0 != GetSystemMetrics(SM_REMOTESESSION)) ? true : false;
     113    return GetSystemMetrics(SM_REMOTESESSION) != 0 ? true : false;
    144114#else
    145115    return false; /* Not implemented. */
     
    147117}
    148118
    149 
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette