[SSSD] [sssd][patch] SYSDB: sysdb_getnetgr returns ENOENT
Jakub Hrozek
jhrozek at redhat.com
Thu Aug 28 16:19:07 UTC 2014
On Thu, Aug 28, 2014 at 11:49:38AM +0200, Pavel Reichl wrote:
> >>Hello,
> >>
> >>sorry for late reply. I guess your approach will definitely save some
> >>lines of code and some CPU cycles.
> >>
> >>I just must get used to the idea that macros are not considered evil in
> >>out environment. :-)
> >>
> >>Please see attached patch.
> >>
> >>Regards,
> >>
> >>Pavel Reichl
> >>
I have one small comment, sorry for coming late into the thread...
> -errno_t sss_ldb_search(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
> - struct ldb_result **_result, struct ldb_dn *base,
> - enum ldb_scope scope, const char * const *attrs,
> - const char *exp_fmt, ...) SSS_ATTRIBUTE_PRINTF(7, 8);
> -
> /* functions that modify the databse
> * they have to be called within a transaction
> * See sysdb_transaction_send()/_recv() */
> @@ -901,4 +896,16 @@ errno_t sysdb_gpo_get_gpos(TALLOC_CTX *mem_ctx,
> struct sss_domain_info *domain,
> struct ldb_result **_result);
>
> +#define SSS_LDB_SEARCH(ret, ldb, mem_ctx, _result, base, scope, attrs, \
> + exp_fmt, ...) do { \
> + int lret; \
Can you rename the variable "lret" here? Calling it "lret" might clash with
some other variable from outer scope..
Maybe "_sls_lret" ? (_sss_ldb_search_lret)
> + \
> + lret = ldb_search(ldb, mem_ctx, _result, base, scope, attrs, exp_fmt, \
> + ##__VA_ARGS__); \
> + ret = sysdb_error_to_errno(lret); \
> + if (ret == EOK && (*_result)->count == 0) { \
> + ret = ENOENT; \
> + } \
> +} while(0)
> +
More information about the sssd-devel
mailing list