Changeset 71649 in vbox
- Timestamp:
- Apr 4, 2018 11:10:53 AM (6 years ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 2 edited
-
include/GuestSessionImplTasks.h (modified) (3 diffs)
-
src-client/GuestSessionImplTasks.cpp (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/GuestSessionImplTasks.h
r71648 r71649 261 261 * get off the .ISO, copied to the guest. 262 262 */ 263 struct I nstallerFile264 { 265 I nstallerFile(const Utf8Str &aSource,266 const Utf8Str &aDest,267 uint32_t aFlags = 0)263 struct ISOFile 264 { 265 ISOFile(const Utf8Str &aSource, 266 const Utf8Str &aDest, 267 uint32_t aFlags = 0) 268 268 : strSource(aSource), 269 269 strDest(aDest), 270 270 fFlags(aFlags) { } 271 271 272 I nstallerFile(const Utf8Str&aSource,273 const Utf8Str&aDest,274 uint32_taFlags,275 const GuestProcessStartupInfo &aStartupInfo)272 ISOFile(const Utf8Str &aSource, 273 const Utf8Str &aDest, 274 uint32_t aFlags, 275 const GuestProcessStartupInfo &aStartupInfo) 276 276 : strSource(aSource), 277 277 strDest(aDest), … … 288 288 /** Destination file on the guest. */ 289 289 Utf8Str strDest; 290 /** File flags. */290 /** ISO file flags (see ISOFILE_FLAG_ defines). */ 291 291 uint32_t fFlags; 292 292 /** Optional arguments if this file needs to be … … 300 300 301 301 /** Files to handle. */ 302 std::vector<I nstallerFile> mFiles;302 std::vector<ISOFile> mFiles; 303 303 /** The (optionally) specified Guest Additions .ISO on the host 304 304 * which will be used for the updating process. */ -
trunk/src/VBox/Main/src-client/GuestSessionImplTasks.cpp
r71648 r71649 49 49 50 50 /** 51 * Update file flags. 51 * (Guest Additions) ISO file flags. 52 * Needed for handling Guest Additions updates. 52 53 */ 53 #define UPDATEFILE_FLAG_NONE 054 #define ISOFILE_FLAG_NONE 0 54 55 /** Copy over the file from host to the 55 56 * guest. */ 56 #define UPDATEFILE_FLAG_COPY_FROM_ISO RT_BIT(0)57 #define ISOFILE_FLAG_COPY_FROM_ISO RT_BIT(0) 57 58 /** Execute file on the guest after it has 58 59 * been successfully transfered. */ 59 #define UPDATEFILE_FLAG_EXECUTE RT_BIT(7)60 #define ISOFILE_FLAG_EXECUTE RT_BIT(7) 60 61 /** File is optional, does not have to be 61 62 * existent on the .ISO. */ 62 #define UPDATEFILE_FLAG_OPTIONAL RT_BIT(8)63 #define ISOFILE_FLAG_OPTIONAL RT_BIT(8) 63 64 64 65 … … 2042 2043 { "oracle-vbox.cer", "CERT/ORACLE_VBOX.CER" }, 2043 2044 }; 2044 uint32_t fCopyCertUtil = UPDATEFILE_FLAG_COPY_FROM_ISO;2045 uint32_t fCopyCertUtil = ISOFILE_FLAG_COPY_FROM_ISO; 2045 2046 for (uint32_t i = 0; i < RT_ELEMENTS(s_aCertFiles); i++) 2046 2047 { … … 2054 2055 /* Copy the certificate certificate. */ 2055 2056 Utf8Str const strDstCert(strUpdateDir + s_aCertFiles[i].pszDst); 2056 mFiles.push_back(I nstallerFile(s_aCertFiles[i].pszIso,2057 strDstCert,2058 UPDATEFILE_FLAG_COPY_FROM_ISO | UPDATEFILE_FLAG_OPTIONAL));2057 mFiles.push_back(ISOFile(s_aCertFiles[i].pszIso, 2058 strDstCert, 2059 ISOFILE_FLAG_COPY_FROM_ISO | ISOFILE_FLAG_OPTIONAL)); 2059 2060 2060 2061 /* Out certificate installation utility. */ … … 2067 2068 siCertUtilRem.mArguments.push_back(strDstCert); 2068 2069 siCertUtilRem.mArguments.push_back(strDstCert); 2069 mFiles.push_back(I nstallerFile("CERT/VBOXCERTUTIL.EXE",2070 strUpdateDir + "VBoxCertUtil.exe",2071 fCopyCertUtil | UPDATEFILE_FLAG_EXECUTE | UPDATEFILE_FLAG_OPTIONAL,2072 siCertUtilRem));2070 mFiles.push_back(ISOFile("CERT/VBOXCERTUTIL.EXE", 2071 strUpdateDir + "VBoxCertUtil.exe", 2072 fCopyCertUtil | ISOFILE_FLAG_EXECUTE | ISOFILE_FLAG_OPTIONAL, 2073 siCertUtilRem)); 2073 2074 fCopyCertUtil = 0; 2074 2075 /* Second pass: Only execute (but don't copy) again, this time installng the … … 2080 2081 siCertUtilAdd.mArguments.push_back(strDstCert); 2081 2082 siCertUtilAdd.mArguments.push_back(strDstCert); 2082 mFiles.push_back(I nstallerFile("CERT/VBOXCERTUTIL.EXE",2083 strUpdateDir + "VBoxCertUtil.exe",2084 UPDATEFILE_FLAG_EXECUTE | UPDATEFILE_FLAG_OPTIONAL,2085 siCertUtilAdd));2083 mFiles.push_back(ISOFile("CERT/VBOXCERTUTIL.EXE", 2084 strUpdateDir + "VBoxCertUtil.exe", 2085 ISOFILE_FLAG_EXECUTE | ISOFILE_FLAG_OPTIONAL, 2086 siCertUtilAdd)); 2086 2087 } 2087 2088 } 2088 2089 /* The installers in different flavors, as we don't know (and can't assume) 2089 2090 * the guest's bitness. */ 2090 mFiles.push_back(I nstallerFile("VBOXWINDOWSADDITIONS_X86.EXE",2091 strUpdateDir + "VBoxWindowsAdditions-x86.exe",2092 UPDATEFILE_FLAG_COPY_FROM_ISO));2093 mFiles.push_back(I nstallerFile("VBOXWINDOWSADDITIONS_AMD64.EXE",2094 strUpdateDir + "VBoxWindowsAdditions-amd64.exe",2095 UPDATEFILE_FLAG_COPY_FROM_ISO));2091 mFiles.push_back(ISOFile("VBOXWINDOWSADDITIONS_X86.EXE", 2092 strUpdateDir + "VBoxWindowsAdditions-x86.exe", 2093 ISOFILE_FLAG_COPY_FROM_ISO)); 2094 mFiles.push_back(ISOFile("VBOXWINDOWSADDITIONS_AMD64.EXE", 2095 strUpdateDir + "VBoxWindowsAdditions-amd64.exe", 2096 ISOFILE_FLAG_COPY_FROM_ISO)); 2096 2097 /* The stub loader which decides which flavor to run. */ 2097 2098 GuestProcessStartupInfo siInstaller; … … 2117 2118 if (mFlags & AdditionsUpdateFlag_WaitForUpdateStartOnly) 2118 2119 siInstaller.mFlags |= ProcessCreateFlag_WaitForProcessStartOnly; 2119 mFiles.push_back(I nstallerFile("VBOXWINDOWSADDITIONS.EXE",2120 strUpdateDir + "VBoxWindowsAdditions.exe",2121 UPDATEFILE_FLAG_COPY_FROM_ISO | UPDATEFILE_FLAG_EXECUTE, siInstaller));2120 mFiles.push_back(ISOFile("VBOXWINDOWSADDITIONS.EXE", 2121 strUpdateDir + "VBoxWindowsAdditions.exe", 2122 ISOFILE_FLAG_COPY_FROM_ISO | ISOFILE_FLAG_EXECUTE, siInstaller)); 2122 2123 break; 2123 2124 } … … 2143 2144 LogRel(("Copying over Guest Additions update files to the guest ...\n")); 2144 2145 2145 std::vector<I nstallerFile>::const_iterator itFiles = mFiles.begin();2146 std::vector<ISOFile>::const_iterator itFiles = mFiles.begin(); 2146 2147 while (itFiles != mFiles.end()) 2147 2148 { 2148 if (itFiles->fFlags & UPDATEFILE_FLAG_COPY_FROM_ISO)2149 if (itFiles->fFlags & ISOFILE_FLAG_COPY_FROM_ISO) 2149 2150 { 2150 2151 bool fOptional = false; 2151 if (itFiles->fFlags & UPDATEFILE_FLAG_OPTIONAL)2152 if (itFiles->fFlags & ISOFILE_FLAG_OPTIONAL) 2152 2153 fOptional = true; 2153 2154 rc = copyFileToGuest(pSession, &iso, itFiles->strSource, itFiles->strDest, … … 2183 2184 LogRel(("Executing Guest Additions update files ...\n")); 2184 2185 2185 std::vector<I nstallerFile>::iterator itFiles = mFiles.begin();2186 std::vector<ISOFile>::iterator itFiles = mFiles.begin(); 2186 2187 while (itFiles != mFiles.end()) 2187 2188 { 2188 if (itFiles->fFlags & UPDATEFILE_FLAG_EXECUTE)2189 if (itFiles->fFlags & ISOFILE_FLAG_EXECUTE) 2189 2190 { 2190 2191 rc = runFileOnGuest(pSession, itFiles->mProcInfo);
Note:
See TracChangeset
for help on using the changeset viewer.

