summaryrefslogtreecommitdiff
path: root/src/VBox/Main/src-client/GuestCtrlImplDir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Main/src-client/GuestCtrlImplDir.cpp')
-rw-r--r--src/VBox/Main/src-client/GuestCtrlImplDir.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/VBox/Main/src-client/GuestCtrlImplDir.cpp b/src/VBox/Main/src-client/GuestCtrlImplDir.cpp
index ff7814f07..af1113198 100644
--- a/src/VBox/Main/src-client/GuestCtrlImplDir.cpp
+++ b/src/VBox/Main/src-client/GuestCtrlImplDir.cpp
@@ -133,6 +133,25 @@ HRESULT Guest::directoryCreateInternal(IN_BSTR aDirectory,
if (SUCCEEDED(hr))
{
hr = setErrorFromProgress(pProgress);
+ if (SUCCEEDED(hr))
+ {
+ VBOXGUESTCTRL_PROCESS proc;
+ int rc = processGetStatus(uPID, &proc,
+ true /* Remove when terminated */);
+ if (RT_SUCCESS(rc))
+ {
+ if ( proc.mStatus != ExecuteProcessStatus_TerminatedNormally
+ || proc.mExitCode != 0)
+ {
+ hr = setErrorNoLog(VBOX_E_IPRT_ERROR,
+ tr("Could not create directory \"%s\""), Utf8Str(aDirectory).c_str());
+ }
+ }
+ else
+ hr = setErrorNoLog(VBOX_E_IPRT_ERROR,
+ tr("Unable to retrieve status for creating directory \"%s\""),
+ Utf8Str(aDirectory).c_str());
+ }
pProgress.setNull();
}
}