libaacs | branch: master | npzacs <npz...@gmail.com> | Mon Oct  7 12:23:12 2013 
+0300| [393a51275360a2945d946bad88e10f8f5ee95c7e] | committer: npzacs

Restore aacs_open2() semantics.
aacs_open2() returns aacs handle even if disc can not be decrypted. This allows 
app to query disc id, mkb version etc.

> http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=393a51275360a2945d946bad88e10f8f5ee95c7e
---

 src/libaacs/aacs.c |   11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c
index ffa4fcb..e90b616 100644
--- a/src/libaacs/aacs.c
+++ b/src/libaacs/aacs.c
@@ -869,29 +869,22 @@ AACS *aacs_open2(const char *path, const char 
*configfile_path, int *error_code)
     cf = keydbcfg_config_load(configfile_path);
     if (!cf) {
         *error_code = AACS_ERROR_NO_CONFIG;
-        aacs_close(aacs);
-        return NULL;
+        return aacs;
     }
 
     DEBUG(DBG_AACS, "Starting AACS waterfall...\n");
     *error_code = _calc_uks(aacs, cf);
     if (*error_code != AACS_SUCCESS) {
         DEBUG(DBG_AACS, "Failed to initialize AACS!\n");
-        keydbcfg_config_file_close(cf);
-        aacs_close(aacs);
-        return NULL;
     }
 
     aacs->bee = _get_bus_encryption_enabled(path);
     aacs->bec = _get_bus_encryption_capable(path);
 
-    if (aacs->bee && aacs->bec) {
+    if (*error_code == AACS_SUCCESS && aacs->bee && aacs->bec) {
         *error_code = _read_read_data_key(aacs, cf->host_cert_list);
         if (*error_code != AACS_SUCCESS) {
             DEBUG(DBG_AACS | DBG_CRIT, "Unable to initialize bus encryption 
required by drive and disc\n");
-            keydbcfg_config_file_close(cf);
-            aacs_close(aacs);
-            return NULL;
         }
     }
 

_______________________________________________
libaacs-devel mailing list
libaacs-devel@videolan.org
https://mailman.videolan.org/listinfo/libaacs-devel

Reply via email to