On Wed, Aug 17, 2016 at 01:13:16PM +0200, Fabiano Fidêncio wrote:
> This patchset resolves https://fedorahosted.org/sssd/ticket/3128
> 
> CI has passed: http://sssd-ci.duckdns.org/logs/job/51/84/summary.html
> 
> Best Regards,
> --
> Fabiano Fidêncio

> From fdef2d959af54e2208a3de86c1d3d7b03c58cce1 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fiden...@redhat.com>
> Date: Tue, 16 Aug 2016 11:20:49 +0200
> Subject: [PATCH 1/2] SYSDB: Rework sysdb_cache_connect()

ACK

> From e4e232ea548119c140529857dd43dbebf31c627e Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fiden...@redhat.com>
> Date: Tue, 16 Aug 2016 11:46:41 +0200
> Subject: [PATCH 2/2] SYSDB: Remove the timestamp cache for a newly created

The patch works fine, thank you. I just have one question related to
code-style, see inline.

>  static errno_t sysdb_cache_connect_helper(TALLOC_CTX *mem_ctx,
> +                                          struct sysdb_ctx *sysdb,
>                                            struct sss_domain_info *domain,
>                                            const char *ldb_file,
>                                            int flags,
>                                            const char *exp_version,
>                                            const char *base_ldif,
> +                                          bool 
> remove_ts_cache_when_newly_created,
>                                            struct ldb_context **_ldb,
>                                            const char **_version)
>  {
> @@ -527,6 +545,7 @@ static errno_t sysdb_cache_connect_helper(TALLOC_CTX 
> *mem_ctx,
>      const char *version = NULL;
>      int ret;
>      struct ldb_context *ldb;
> +    bool ldb_file_exists;
>  
>      tmp_ctx = talloc_new(NULL);
>      if (!tmp_ctx) {
> @@ -534,6 +553,8 @@ static errno_t sysdb_cache_connect_helper(TALLOC_CTX 
> *mem_ctx,
>          goto done;
>      }
>  
> +    ldb_file_exists = !(access(ldb_file, F_OK) == -1 && errno == ENOENT);
> +
>      ret = sysdb_ldb_connect(tmp_ctx, ldb_file, flags, &ldb);
>      if (ret != EOK) {
>          DEBUG(SSSDBG_CRIT_FAILURE, "sysdb_ldb_connect failed.\n");
> @@ -592,8 +613,18 @@ static errno_t sysdb_cache_connect_helper(TALLOC_CTX 
> *mem_ctx,
>          goto done;
>      }
>  
> -    /* The cache has been newly created.
> -     * We need to reopen the LDB to ensure that
> +    /* The cache has been newly created. */
> +    if (remove_ts_cache_when_newly_created && !ldb_file_exists) {
> +        ret = remove_ts_cache(sysdb);
> +        if (ret != EOK) {
> +            DEBUG(SSSDBG_MINOR_FAILURE,
> +                  "Could not delete the timestamp ldb file (%d) (%s)\n",
> +                  ret, sss_strerror(ret));
> +            goto done;
> +        }
> +    }
> +
Wouldn't it make more sense to move the logic outside to the caller
(sysdb_cache_connect) ? that way the helper could just really help
connect to database and the cache removal logic would be in the
ldb-cache specific sysdb_cache_connect() function.
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/sssd-devel@lists.fedorahosted.org

Reply via email to