VirtualBox

Changeset 99214 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Mar 29, 2023 8:28:22 PM (22 months ago)
Author:
vboxsync
Message:

VBoxHeadless: Simplified code around SetVRDEProperty.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp

    r98103 r99214  
    960960    const char *vrdeEnabled = NULL;
    961961    unsigned cVRDEProperties = 0;
    962     const char *aVRDEProperties[16];
     962    const char *apszVRDEProperties[16];
    963963    unsigned fPaused = 0;
    964964#ifdef VBOX_WITH_RECORDING
     
    10551055                break;
    10561056            case 'e':
    1057                 if (cVRDEProperties < RT_ELEMENTS(aVRDEProperties))
    1058                     aVRDEProperties[cVRDEProperties++] = ValueUnion.psz;
     1057                if (cVRDEProperties < RT_ELEMENTS(apszVRDEProperties))
     1058                    apszVRDEProperties[cVRDEProperties++] = ValueUnion.psz;
    10591059                else
    10601060                     RTPrintf("Warning: too many VRDE properties. Ignored: '%s'\n", ValueUnion.psz);
     
    13971397                for (unsigned i = 0; i < cVRDEProperties; i++)
    13981398                {
    1399                     /* Parse 'name=value' */
    1400                     char *pszProperty = RTStrDup(aVRDEProperties[i]);
    1401                     if (pszProperty)
     1399                    /* Split 'name=value' and feed the parts to SetVRDEProperty. */
     1400                    const char *pszDelimiter = strchr(apszVRDEProperties[i], '=');
     1401                    if (pszDelimiter)
    14021402                    {
    1403                         char *pDelimiter = strchr(pszProperty, '=');
    1404                         if (pDelimiter)
    1405                         {
    1406                             *pDelimiter = '\0';
    1407 
    1408                             Bstr bstrName = pszProperty;
    1409                             Bstr bstrValue = &pDelimiter[1];
    1410                             CHECK_ERROR_BREAK(vrdeServer, SetVRDEProperty(bstrName.raw(), bstrValue.raw()));
    1411                         }
    1412                         else
    1413                         {
    1414                             RTPrintf("Error: Invalid VRDE property '%s'\n", aVRDEProperties[i]);
    1415                             RTStrFree(pszProperty);
    1416                             hrc = E_INVALIDARG;
    1417                             break;
    1418                         }
    1419                         RTStrFree(pszProperty);
     1403                        Bstr bstrName(apszVRDEProperties[i], pszDelimiter - apszVRDEProperties[i]);
     1404                        Bstr bstrValue(pszDelimiter + 1);
     1405                        CHECK_ERROR_BREAK(vrdeServer, SetVRDEProperty(bstrName.raw(), bstrValue.raw()));
    14201406                    }
    14211407                    else
    14221408                    {
    1423                         RTPrintf("Error: Failed to allocate memory for VRDE property '%s'\n", aVRDEProperties[i]);
    1424                         hrc = E_OUTOFMEMORY;
     1409                        RTPrintf("Error: Invalid VRDE property '%s'\n", apszVRDEProperties[i]);
     1410                        hrc = E_INVALIDARG;
    14251411                        break;
    14261412                    }
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