Changeset 79133 in vbox
- Timestamp:
- Jun 13, 2019 3:27:38 PM (6 years ago)
- Location:
- trunk/src/VBox
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/idl/VirtualBox.xidl
r79065 r79133 12921 12921 may change in the future.</note> 12922 12922 12923 <note>One idiosyncrasy of the current implementation is that you will NOT 12924 get VBOX_E_OBJECT_NOT_FOUND returned here if the directory doesn't exist. 12925 Instead the read function will fail with VBOX_E_IPRT_ERROR. This will 12926 be fixed soon.</note> 12927 12923 12928 <result name="VBOX_E_OBJECT_NOT_FOUND"> 12924 12929 Directory to open was not found. -
trunk/src/VBox/Main/src-client/GuestDirectoryImpl.cpp
r77587 r79133 104 104 * Note: No guest rc available because operation is asynchronous. 105 105 */ 106 vrc = mData.mProcessTool.init(mSession, procInfo, 107 true /* Async */, NULL /* Guest rc */); 108 } 109 106 vrc = mData.mProcessTool.init(mSession, procInfo, true /* Async */, NULL /* Guest rc */); 107 108 /** @todo r=bird: IGuest::directoryOpen need to fail if the directory doesn't 109 * exist like it is documented to do. It seems this async approach or 110 * something is delaying such errors till GuestDirectory::read() is 111 * called, which is clearly messed up. 112 */ 113 } 114 115 /* Confirm a successful initialization when it's the case. */ 110 116 if (RT_SUCCESS(vrc)) 111 {112 /* Confirm a successful initialization when it's the case. */113 117 autoInitSpan.setSucceeded(); 114 return vrc;115 }116 118 else 117 119 autoInitSpan.setFailed(); 118 119 120 return vrc; 120 121 } -
trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp
r78758 r79133 1131 1131 HRESULT hr = pDirectory.createObject(); 1132 1132 if (FAILED(hr)) 1133 return VERR_COM_UNEXPECTED;1133 return Global::vboxStatusCodeFromCOM(hr); 1134 1134 1135 1135 /* Register a new object ID. */ 1136 1136 uint32_t idObject; 1137 int rc = i_objectRegister(pDirectory, SESSIONOBJECTTYPE_DIRECTORY, &idObject);1138 if (RT_FAILURE( rc))1137 int vrc = i_objectRegister(pDirectory, SESSIONOBJECTTYPE_DIRECTORY, &idObject); 1138 if (RT_FAILURE(vrc)) 1139 1139 { 1140 1140 pDirectory.setNull(); 1141 return rc;1141 return vrc; 1142 1142 } 1143 1143 … … 1145 1145 AssertPtr(pConsole); 1146 1146 1147 intvrc = pDirectory->init(pConsole, this /* Parent */, idObject, openInfo);1147 vrc = pDirectory->init(pConsole, this /* Parent */, idObject, openInfo); 1148 1148 if (RT_FAILURE(vrc)) 1149 1149 return vrc; … … 3426 3426 openInfo.mFlags = fFlags; 3427 3427 3428 ComObjPtr 3428 ComObjPtr<GuestDirectory> pDirectory; int rcGuest; 3429 3429 int vrc = i_directoryOpen(openInfo, pDirectory, &rcGuest); 3430 3430 if (RT_SUCCESS(vrc)) -
trunk/src/VBox/ValidationKit/tests/additions/tdAddGuestCtrl.py
r79132 r79133 1236 1236 cOthers = 0; # Other files. 1237 1237 1238 # 1238 ## 1239 ## @todo r=bird: Unlike fileOpen, directoryOpen will not fail if the directory does not exist. 1240 ## This is of course a bug in the implementation, as it is documented to return 1241 ## VBOX_E_OBJECT_NOT_FOUND or VBOX_E_IPRT_ERROR! 1242 ## 1243 1239 1244 # Open the directory: 1240 #1241 # Note! Unlike fileOpen, directoryOpen will not fail if the directory does not exist.1242 # Looks like it won't do nothing till you read from it.1243 #1244 1245 #reporter.log2('Directory="%s", filter="%s", fFlags="%s"' % (sCurDir, sFilter, fFlags)); 1245 1246 try: … … 1255 1256 except Exception as oXcpt: 1256 1257 if vbox.ComError.notEqual(oXcpt, vbox.ComError.VBOX_E_OBJECT_NOT_FOUND): 1258 ## 1259 ## @todo r=bird: Change this to reporter.errorXcpt() once directoryOpen() starts 1260 ## working the way it is documented. 1261 ## 1257 1262 reporter.maybeErrXcpt(fIsError, 'Error reading directory "%s":' % (sCurDir,)); # See above why 'maybe'. 1258 1263 fRc = False;
Note:
See TracChangeset
for help on using the changeset viewer.