Changeset 1083 in vbox
- Timestamp:
- Feb 28, 2007 8:32:30 AM (18 years ago)
- Location:
- trunk/src/VBox/Additions/common/VBoxGuestLib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxGuestLib/HGCMInternal.cpp
r769 r1083 47 47 #include <VBox/VBoxGuestLib.h> 48 48 #include "VBGLInternal.h" 49 #include <iprt/assert.h> 49 50 50 51 /* These functions can be only used by VBoxGuest. */ … … 174 175 /* Initialize request memory */ 175 176 pHGCMCall->header.fu32Flags = 0; 177 pHGCMCall->header.result = VINF_SUCCESS; 176 178 177 179 pHGCMCall->u32ClientID = pCallInfo->u32ClientID; … … 190 192 191 193 dprintf (("VbglGRPerform rc = %Vrc\n", rc)); 194 195 /** If the call failed, but as a result of the request itself, then pretend success 196 * Upper layers will interpret the result code in the packet. 197 */ 198 if (VBOX_FAILURE(rc) && rc == pHGCMCall->header.result) 199 { 200 Assert(pHGCMCall->header.fu32Flags & VBOX_HGCM_REQ_DONE); 201 rc = VINF_SUCCESS; 202 } 192 203 193 204 if (VBOX_SUCCESS(rc)) -
trunk/src/VBox/Additions/common/VBoxGuestLib/SysHlp.cpp
r719 r1083 20 20 * license agreement apply instead of the previous paragraph. 21 21 */ 22 #define LOG_GROUP LOG_GROUP_HGCM 23 #include <VBox/log.h> 22 24 23 25 #include <VBox/VBoxGuestLib.h> 24 26 #include "SysHlp.h" 25 27 26 #define LOG_GROUP LOG_GROUP_HGCM27 #include <VBox/log.h>28 28 #include <iprt/assert.h> 29 29 -
trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxCalls.c
r1 r1083 46 46 #endif 47 47 48 49 #define VBOXSF_RECONNECT_AFTER_RESTORE(pClient, data) \ 50 /* After a restore our client id is no longer valid; try to reconnect when that happens */ \ 51 /** @todo settings lost! */ \ 52 if (RT_UNLIKELY(rc == VERR_HGCM_INVALID_CLIENT_ID)) \ 53 { \ 54 Log(("VBOXSF: reconnect after restore\n")); \ 55 rc = vboxConnect(pClient); \ 56 if (VBOX_SUCCESS(rc)) \ 57 rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data)); \ 58 } 59 48 60 DECLVBGL(int) vboxInit (void) 49 61 { … … 134 146 */ 135 147 rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data)); 148 VBOXSF_RECONNECT_AFTER_RESTORE(pClient, data); 149 136 150 /* 137 151 Log(("VBOXSF: VBoxSF::vboxCallQueryMappings: " … … 171 185 172 186 rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data)); 187 VBOXSF_RECONNECT_AFTER_RESTORE(pClient, data); 173 188 174 189 /* Log(("VBOXSF: VBoxSF::vboxCallQueryMapName: " … … 203 218 204 219 rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data)); 220 VBOXSF_RECONNECT_AFTER_RESTORE(pClient, data); 205 221 206 222 /* Log(("VBOXSF: VBoxSF::vboxCallMapFolder: " … … 227 243 228 244 rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data)); 245 VBOXSF_RECONNECT_AFTER_RESTORE(pClient, data); 229 246 230 247 /* Log(("VBOXSF: VBoxSF::vboxCallUnmapFolder: " … … 260 277 261 278 rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data)); 279 VBOXSF_RECONNECT_AFTER_RESTORE(pClient, data); 262 280 263 281 /* Log(("VBOXSF: VBoxSF::vboxCallCreate: " … … 318 336 319 337 rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data)); 338 VBOXSF_RECONNECT_AFTER_RESTORE(pClient, data); 320 339 321 340 /* Log(("VBOXSF: VBoxSF::vboxCallRemove: " … … 354 373 355 374 rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data)); 375 VBOXSF_RECONNECT_AFTER_RESTORE(pClient, data); 356 376 357 377 /* Log(("VBOXSF: VBoxSF::vboxCallRename: " … … 502 522 503 523 rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data)); 524 VBOXSF_RECONNECT_AFTER_RESTORE(pClient, data); 504 525 505 526 /* Log(("VBOXSF: VBoxSF::vboxCallDirInfo: " … … 538 559 539 560 rc = VbglHGCMCall (pClient->handle, &data.callInfo, sizeof (data)); 561 VBOXSF_RECONNECT_AFTER_RESTORE(pClient, data); 540 562 541 563 /* Log(("VBOXSF: VBoxSF::vboxCallFileInfo: "
Note:
See TracChangeset
for help on using the changeset viewer.