[haiku-commits] haiku: hrev50502 - in src: kits/package/manager servers/package

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 21 Aug 2016 10:39:32 +0200 (CEST)

hrev50502 adds 1 changeset to branch 'master'
old head: e0c25f9892404842a8457561bc9bc67a82e366b6
new head: a22f114f7dd063562162122a5b3e509ca4fb5c66
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=a22f114f7dd0+%5Ee0c25f989240

----------------------------------------------------------------------------

a22f114f7dd0: chroot support in package kit: style fixes
  
  - Catching an exception in the normal flow is not a good thing, instead,
    test before calling the function (I've been doing too much python
    lately)
  - Avoid using uninitialized nodeRef if there is no system root and also
    no specified root in the message.
  
  Thanks to Ingo or the code review.

                             [ Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev50502
Commit:      a22f114f7dd063562162122a5b3e509ca4fb5c66
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a22f114f7dd0
Author:      Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date:        Sun Aug 21 07:13:28 2016 UTC

----------------------------------------------------------------------------

2 files changed, 8 insertions(+), 5 deletions(-)
src/kits/package/manager/PackageManager.cpp | 10 ++++++----
src/servers/package/PackageDaemon.cpp       |  3 ++-

----------------------------------------------------------------------------

diff --git a/src/kits/package/manager/PackageManager.cpp 
b/src/kits/package/manager/PackageManager.cpp
index 6d9ccd8..ec174ba 100644
--- a/src/kits/package/manager/PackageManager.cpp
+++ b/src/kits/package/manager/PackageManager.cpp
@@ -110,11 +110,13 @@ BPackageManager::Init(uint32 flags)
                // well. But we can easily filter those out.
                _AddInstalledRepository(fSystemRepository);
 
-               try {
-                       if (!fSystemRepository->IsInstalled())
+               if (!fSystemRepository->IsInstalled())
+               {
+                       // Only add the home repository if the directory exists
+                       BPath path;
+                       status_t error = 
find_directory(B_USER_PACKAGES_DIRECTORY, &path);
+                       if (error == B_OK && BEntry(path.Path()).Exists())
                                _AddInstalledRepository(fHomeRepository);
-               } catch(BFatalErrorException& exception) {
-                       // No home repository found. This is ok for haikuporter 
chroots.
                }
        }
 
diff --git a/src/servers/package/PackageDaemon.cpp 
b/src/servers/package/PackageDaemon.cpp
index 4b35cb1..d0c9322 100644
--- a/src/servers/package/PackageDaemon.cpp
+++ b/src/servers/package/PackageDaemon.cpp
@@ -93,8 +93,9 @@ PackageDaemon::MessageReceived(BMessage* message)
 
                        if (fSystemRoot != NULL && (error != B_OK
                                        || fSystemRoot->NodeRef() == nodeRef))
+                       {
                                
fSystemRoot->HandleRequest(DetachCurrentMessage());
-                       else {
+                       } else if (error == B_OK) {
                                Root* root = _FindRoot(nodeRef);
                                if (root != NULL) {
                                        
root->HandleRequest(DetachCurrentMessage());


Other related posts: