Changeset 71364 in vbox for trunk/src/VBox/Additions/common
- Timestamp:
- Mar 16, 2018 9:58:05 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 121315
- Location:
- trunk/src/VBox/Additions/common
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp
r70389 r71364 365 365 Msg.flags.GetUInt32(pfFlags); 366 366 } 367 return rc; 368 } 369 370 371 VBGLR3DECL(int) VbglR3GuestCtrlPathGetUserDocuments(PVBGLR3GUESTCTRLCMDCTX pCtx) 372 { 373 AssertPtrReturn(pCtx, VERR_INVALID_POINTER); 374 AssertReturn(pCtx->uNumParms == 1, VERR_INVALID_PARAMETER); 375 376 HGCMMsgPathUserDocuments Msg; 377 VBGL_HGCM_HDR_INIT(&Msg.hdr, pCtx->uClientID, GUEST_MSG_WAIT, pCtx->uNumParms); 378 VbglHGCMParmUInt32Set(&Msg.context, 0); 379 380 int rc = VbglR3HGCMCall(&Msg.hdr, sizeof(Msg)); 381 if (RT_SUCCESS(rc)) 382 Msg.context.GetUInt32(&pCtx->uContextID); 383 384 return rc; 385 } 386 387 388 VBGLR3DECL(int) VbglR3GuestCtrlPathGetUserHome(PVBGLR3GUESTCTRLCMDCTX pCtx) 389 { 390 AssertPtrReturn(pCtx, VERR_INVALID_POINTER); 391 AssertReturn(pCtx->uNumParms == 1, VERR_INVALID_PARAMETER); 392 393 HGCMMsgPathUserHome Msg; 394 VBGL_HGCM_HDR_INIT(&Msg.hdr, pCtx->uClientID, GUEST_MSG_WAIT, pCtx->uNumParms); 395 VbglHGCMParmUInt32Set(&Msg.context, 0); 396 397 int rc = VbglR3HGCMCall(&Msg.hdr, sizeof(Msg)); 398 if (RT_SUCCESS(rc)) 399 Msg.context.GetUInt32(&pCtx->uContextID); 400 367 401 return rc; 368 402 } -
trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlSession.cpp
r71320 r71364 630 630 631 631 632 /** 633 * Handles getting the user's documents directory. 634 * 635 * @returns VBox status code. 636 * @param pSession Guest session. 637 * @param pHostCtx Host context. 638 */ 632 639 static int vgsvcGstCtrlSessionHandlePathUserDocuments(PVBOXSERVICECTRLSESSION pSession, PVBGLR3GUESTCTRLCMDCTX pHostCtx) 633 640 { … … 635 642 AssertPtrReturn(pHostCtx, VERR_INVALID_POINTER); 636 643 637 char szPath[RTPATH_MAX]; 638 int rc = RTPathUserDocuments(szPath, sizeof(szPath)); 639 640 /* Report back in any case. */ 641 int rc2 = VbglR3GuestCtrlMsgReplyEx(pHostCtx, rc, 0 /* Type */, 642 szPath, (uint32_t)strlen(szPath) + 1 /* Include terminating zero */); 643 if (RT_FAILURE(rc2)) 644 VGSvcError("Failed to report user documents, rc=%Rrc\n", rc2); 645 if (RT_SUCCESS(rc)) 646 rc = rc2; 647 648 #ifdef DEBUG 649 VGSvcVerbose(4, "User documents is '%s', rc=%Rrc\n", szPath, rc); 650 #endif 651 return rc; 652 } 653 654 644 int rc = VbglR3GuestCtrlPathGetUserDocuments(pHostCtx); 645 if (RT_SUCCESS(rc)) 646 { 647 char szPath[RTPATH_MAX]; 648 rc = RTPathUserDocuments(szPath, sizeof(szPath)); 649 650 #ifdef DEBUG 651 VGSvcVerbose(2, "User documents is '%s', rc=%Rrc\n", szPath, rc); 652 #endif 653 /* Report back in any case. */ 654 int rc2 = VbglR3GuestCtrlMsgReplyEx(pHostCtx, rc, 0 /* Type */, 655 szPath, (uint32_t)strlen(szPath) + 1 /* Include terminating zero */); 656 if (RT_FAILURE(rc2)) 657 VGSvcError("Failed to report user documents, rc=%Rrc\n", rc2); 658 if (RT_SUCCESS(rc)) 659 rc = rc2; 660 } 661 662 return rc; 663 } 664 665 666 /** 667 * Handles getting the user's home directory. 668 * 669 * @returns VBox status code. 670 * @param pSession Guest session. 671 * @param pHostCtx Host context. 672 */ 655 673 static int vgsvcGstCtrlSessionHandlePathUserHome(PVBOXSERVICECTRLSESSION pSession, PVBGLR3GUESTCTRLCMDCTX pHostCtx) 656 674 { … … 658 676 AssertPtrReturn(pHostCtx, VERR_INVALID_POINTER); 659 677 660 char szPath[RTPATH_MAX]; 661 int rc = RTPathUserHome(szPath, sizeof(szPath)); 662 663 /* Report back in any case. */ 664 int rc2 = VbglR3GuestCtrlMsgReplyEx(pHostCtx, rc, 0 /* Type */, 665 szPath, (uint32_t)strlen(szPath) + 1 /* Include terminating zero */); 666 if (RT_FAILURE(rc2)) 667 VGSvcError("Failed to report user home, rc=%Rrc\n", rc2); 668 if (RT_SUCCESS(rc)) 669 rc = rc2; 670 671 #ifdef DEBUG 672 VGSvcVerbose(4, "User home is '%s', rc=%Rrc\n", szPath, rc); 673 #endif 678 int rc = VbglR3GuestCtrlPathGetUserHome(pHostCtx); 679 if (RT_SUCCESS(rc)) 680 { 681 char szPath[RTPATH_MAX]; 682 rc = RTPathUserHome(szPath, sizeof(szPath)); 683 684 #ifdef DEBUG 685 VGSvcVerbose(2, "User home is '%s', rc=%Rrc\n", szPath, rc); 686 #endif 687 /* Report back in any case. */ 688 int rc2 = VbglR3GuestCtrlMsgReplyEx(pHostCtx, rc, 0 /* Type */, 689 szPath, (uint32_t)strlen(szPath) + 1 /* Include terminating zero */); 690 if (RT_FAILURE(rc2)) 691 VGSvcError("Failed to report user home, rc=%Rrc\n", rc2); 692 if (RT_SUCCESS(rc)) 693 rc = rc2; 694 } 695 674 696 return rc; 675 697 }
Note:
See TracChangeset
for help on using the changeset viewer.