[SSSD] [PATCH] util: don't include util.h in src/util/authtok.h

Lukas Slebodnik lslebodn at redhat.com
Tue May 19 12:15:58 UTC 2015


On (19/05/15 13:59), Pavel Reichl wrote:
>Hello,
>
>please see attached simple patch. I believe that nested header files are
>sometimes necessary evil, but they should be avoided when possible. It makes
>difficult figuring out on which header files source file actually depend on
>and can increase compilation time.
>
>Thanks.

>From d11f9e4538cbb6d247f43e427347d59e1ca6c98f Mon Sep 17 00:00:00 2001
>From: Pavel Reichl <preichl at redhat.com>
>Date: Tue, 19 May 2015 07:35:11 -0400
>Subject: [PATCH] util: don't include util.h in src/util/authtok.h
>
>---
> src/util/authtok.c | 1 +
> src/util/authtok.h | 1 -
> 2 files changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/src/util/authtok.c b/src/util/authtok.c
>index 45761df80175fded8a6c6e5dac8a90180b11d225..784512c0bd21128bd16d3663bf460a286e8b3eed 100644
>--- a/src/util/authtok.c
>+++ b/src/util/authtok.c
>@@ -17,6 +17,7 @@
>    along with this program.  If not, see <http://www.gnu.org/licenses/>.
> */
> 
>+#include "util/util.h"
> #include "authtok.h"
> 
> struct sss_auth_token {
>diff --git a/src/util/authtok.h b/src/util/authtok.h
>index cb366270832852281a222018f8e27feb1500ff01..d82168f5823e188e5c04fa418cb0ff52f6a52aac 100644
>--- a/src/util/authtok.h
>+++ b/src/util/authtok.h
>@@ -20,7 +20,6 @@
> #ifndef __AUTHTOK_H__
> #define __AUTHTOK_H__
> 
>-#include "util/util.h"
> #include "util/authtok-utils.h"
> #include "sss_client/sss_cli.h"

This is not right solution. Even thought everything compiles without any
problem.

"util/util.h" was included because errnot_t is used in prototypes of functions.

sh$ grep -n errno_t src/util/authtok.h
70:errno_t sss_authtok_get_password(struct sss_auth_token *tok,
85:errno_t sss_authtok_set_password(struct sss_auth_token *tok,
101:errno_t sss_authtok_get_ccfile(struct sss_auth_token *tok,
115:errno_t sss_authtok_set_ccfile(struct sss_auth_token *tok,
140:errno_t sss_authtok_set(struct sss_auth_token *tok,
154:errno_t sss_authtok_copy(struct sss_auth_token *src,
198:errno_t sss_authtok_set_2fa(struct sss_auth_token *tok,
222:errno_t sss_authtok_get_2fa(struct sss_auth_token *tok,


and with your patch "errno_t" has to be defined before including authtok.h
It's better to do not rely on the order of included header files.

LS



More information about the sssd-devel mailing list