VirtualBox

Changeset 54798 in vbox for trunk/src/VBox/Main/src-client


Ignore:
Timestamp:
Mar 16, 2015 9:09:11 PM (10 years ago)
Author:
vboxsync
Message:

Main/Console: Automatically resume the VM if all passwords were provided correctly

Location:
trunk/src/VBox/Main/src-client
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/ConsoleImpl.cpp

    r54796 r54798  
    33883388        m_mapSecretKeys.insert(std::make_pair(aId, pKey));
    33893389        hrc = i_configureEncryptionForDisk(aId);
    3390         if (FAILED(hrc))
     3390        if (SUCCEEDED(hrc))
     3391        {
     3392            if (   m_mapSecretKeys.size() == m_cDisksEncrypted
     3393                && mMachineState == MachineState_Paused)
     3394            {
     3395                /* get the VM handle. */
     3396                SafeVMPtr ptrVM(this);
     3397                if (!ptrVM.isOk())
     3398                    return ptrVM.rc();
     3399
     3400                alock.release();
     3401                int vrc = VMR3Resume(ptrVM.rawUVM(), VMRESUMEREASON_RECONFIG);
     3402
     3403                hrc = RT_SUCCESS(vrc) ? S_OK :
     3404                    setError(VBOX_E_VM_ERROR,
     3405                             tr("Could not resume the machine execution (%Rrc)"),
     3406                             vrc);
     3407            }
     3408        }
     3409        else
    33913410            m_mapSecretKeys.erase(aId);
    33923411    }
  • trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp

    r54744 r54798  
    42584258                /* Pass all custom parameters. */
    42594259                bool fHostIP = true;
    4260                 hrc = i_configMediumProperties(pCfg, pMedium, &fHostIP); H();
     4260                bool fEncrypted = false;
     4261                hrc = i_configMediumProperties(pCfg, pMedium, &fHostIP, &fEncrypted); H();
    42614262
    42624263                /* Create an inverted list of parents. */
     
    42864287
    42874288                    /* Configure medium properties. */
    4288                     hrc = i_configMediumProperties(pCur, pMedium, &fHostIP); H();
     4289                    hrc = i_configMediumProperties(pCur, pMedium, &fHostIP, &fEncrypted); H();
    42894290
    42904291                    /* next */
     
    42974298                if (!fHostIP)
    42984299                    InsertConfigInteger(pCfg, "HostIPStack", 0);
     4300
     4301                if (fEncrypted)
     4302                    m_cDisksEncrypted++;
    42994303            }
    43004304        }
     
    43144318 *
    43154319 * @returns VBox status code.
    4316  * @param   pCur       The current CFGM node.
    4317  * @param   pMedium    The medium object to configure.
    4318  * @param   pfHostIP   Where to return the value of the \"HostIPStack\" property if found.
     4320 * @param   pCur        The current CFGM node.
     4321 * @param   pMedium     The medium object to configure.
     4322 * @param   pfHostIP    Where to return the value of the \"HostIPStack\" property if found.
     4323 * @param   pfEncrypted Where to return whether the medium is encrypted.
    43194324 */
    4320 int Console::i_configMediumProperties(PCFGMNODE pCur, IMedium *pMedium, bool *pfHostIP)
     4325int Console::i_configMediumProperties(PCFGMNODE pCur, IMedium *pMedium, bool *pfHostIP, bool *pfEncrypted)
    43214326{
    43224327    /* Pass all custom parameters. */
     
    43654370                        *pfHostIP = false;
    43664371                }
     4372
     4373                if (   name.compare("CRYPT/KeyId") == 0
     4374                    && pfEncrypted)
     4375                    *pfEncrypted = true;
    43674376            }
    43684377        }
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