Changeset 42787 in vbox for trunk/src/VBox
- Timestamp:
- Aug 13, 2012 9:49:28 AM (12 years ago)
- Location:
- trunk/src/VBox/Main/src-client
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp
r42721 r42787 657 657 { 658 658 fSignal = (uWaitFlags & ProcessWaitForFlag_Start); 659 waitRes = ProcessWaitResult_Sta tus;659 waitRes = ProcessWaitResult_Start; 660 660 661 661 mData.mStatus = ProcessStatus_Started; … … 714 714 { 715 715 fSignal = TRUE; /* Signal in any case. */ 716 /* Do we need to report termination? */ 716 717 waitRes = (mData.mProcess.mFlags & ProcessCreateFlag_IgnoreOrphanedProcesses) 717 ? ProcessWaitResult_ Terminate : ProcessWaitResult_Status;718 ? ProcessWaitResult_Status : ProcessWaitResult_Terminate; 718 719 719 720 mData.mStatus = ProcessStatus_Down; … … 886 887 887 888 if (mData.mStatus != ProcessStatus_Started) 889 { 890 if (pcbRead) 891 *pcbRead = 0; 888 892 return VINF_SUCCESS; /* Nothing to read anymore. */ 893 } 889 894 890 895 uint32_t uContextID = 0; … … 1244 1249 || (fWaitFlags & ProcessWaitForFlag_StdErr)) 1245 1250 { 1246 /* Filter out waits which are *not* supported using1247 * older guest control Guest Additions. */1248 AssertPtr(mData.mParent);1249 if (mData.mParent->getProtocolVersion() < 2)1250 {1251 /* We don't support waiting for stdin, out + err,1252 * just skip waiting then. */1253 if ( (fWaitFlags & ProcessWaitForFlag_StdIn)1254 || (fWaitFlags & ProcessWaitForFlag_StdOut)1255 || (fWaitFlags & ProcessWaitForFlag_StdErr))1256 {1257 /* Use _Any because we don't know what to tell the caller. */1258 waitRes.mResult = ProcessWaitResult_Any;1259 }1260 }1261 1262 1251 switch (mData.mStatus) 1263 1252 { … … 1281 1270 break; 1282 1271 1272 case ProcessStatus_Started: 1273 { 1274 /* Filter out waits which are *not* supported using 1275 * older guest control Guest Additions. */ 1276 AssertPtr(mData.mParent); 1277 if (mData.mParent->getProtocolVersion() < 2) 1278 { 1279 /* We don't support waiting for stdin, out + err, 1280 * just skip waiting then. */ 1281 if ( (fWaitFlags & ProcessWaitForFlag_StdIn) 1282 || (fWaitFlags & ProcessWaitForFlag_StdOut) 1283 || (fWaitFlags & ProcessWaitForFlag_StdErr)) 1284 { 1285 /* Use _Any because we don't know what to tell the caller. */ 1286 waitRes.mResult = ProcessWaitResult_Any; 1287 } 1288 } 1289 1290 break; 1291 } 1292 1283 1293 case ProcessStatus_Undefined: 1284 1294 case ProcessStatus_Starting: 1285 case ProcessStatus_Started:1286 1295 /* Do the waiting below. */ 1287 1296 break; … … 1518 1527 } 1519 1528 1529 LogFlowThisFunc(("readData returned %Rrc, cbRead=%RU64\n", vrc, cbRead)); 1530 1520 1531 /** @todo Do setError() here. */ 1521 1532 HRESULT hr = RT_SUCCESS(vrc) ? S_OK : VBOX_E_IPRT_ERROR; … … 1626 1637 com::SafeArray<BYTE> data(ComSafeArrayInArg(aData)); 1627 1638 int vrc = writeData(aHandle, aFlags, data.raw(), data.size(), aTimeoutMS, (uint32_t*)aWritten); 1639 1640 LogFlowThisFunc(("writeData returned %Rrc, aWritten=%RU32\n", vrc, aWritten)); 1641 1628 1642 /** @todo Do setError() here. */ 1629 1643 HRESULT hr = RT_SUCCESS(vrc) ? S_OK : VBOX_E_IPRT_ERROR; -
trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp
r42783 r42787 257 257 30 * 1000 /* Timeout */, waitRes); 258 258 if ( RT_FAILURE(rc) 259 || waitRes.mResult != ProcessWaitForFlag_StdIn) 259 || ( waitRes.mResult != ProcessWaitResult_StdIn 260 && waitRes.mResult != ProcessWaitResult_Any)) 260 261 { 261 262 break;
Note:
See TracChangeset
for help on using the changeset viewer.