On (09/07/15 14:03), Petr Cech wrote:
Hi!
There is my repaired patch. All of yours comments were helpful.
I renamed the function to sss_cmd2str(), but maybe it could be
sss_cli_cmd2str(). I am not sure with it, but if it is better, I will rename
it again.
Petr
On 07/08/2015 03:26 PM, Sumit Bose wrote:
>On Wed, Jul 08, 2015 at 02:13:42PM +0200, Petr Cech wrote:
>>Hi!
>>
>>https://fedorahosted.org/sssd/ticket/2703
>>
>>It's my first patch to this ticket. It is simple transforming of number of
>>command to the string.
>Hi Petr,
>
>welcome and thank you for your first patch. Besides Pavel's suggestions
>I have some general comments as well.
>
>- There is pamcmd2str() which does a similar job for the backend code
> but I think it is becoming redundant with your patch. Can you remove
> this call and use your's where appropriate?
>
>- I haven't tested it, but I'm pretty sure that the PAM module pam_sss
> which is build from pam_sss.c and some other files is broken in debug
> mode with your patch because sss_log.c is not used when building it and
> hence sss_cli_command_2string() will be undefined. You do not see this
> during compilation or even during 'make check' because the 'D'
macro
> is only evaluate if PAM_DEBUG is defined during compilation. If you
> run something like 'make CFLAGS+="-DPAM_DEBUG" check' the dlopen
test
> should fail with your patch.
>
> Since the PAM module pam_sss.so might be loaded by any kind of
> processes at runtime we try to keep it as simple as possible and try
> to add as few dependencies as possible. If you search the Makefile.am
> for pam_sss_la_SOURCES you will see that besides source files from the
> sss_client directory we only add atomic_io.c and authtok-utils.c which
> both contain only a single function with no special dependencies.
>
> I would suggest that you put sss_cli_command_2string() in a file on
> its own similar like atomic_io.c or authtok-utils.c. And add this file
> to pam_sss_la_SOURCES and libsss_debug_la_SOURCES in Makefile.am. I
> leave it up to you to decide what would be a good place for this file.
> The sss_client directory because the enum sss_cli_command is defined
> here as well or the util directory because the main usage for it is in
> the SSSD code and not in the pam_sss module.
>
>bye,
>Sumit
>_______________________________________________
>sssd-devel mailing list
>sssd-devel(a)lists.fedorahosted.org
>https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
From 8b3ae05fc97f548256dc8b72863183b9dc9a539a Mon Sep 17 00:00:00
2001
From: Petr Cech <pcech(a)redhat.com>
Date: Wed, 8 Jul 2015 07:17:28 -0400
Subject: [PATCH] UTIL: Function 2string for enum sss_cli_command
Improvement of debug messages.
Instead of:"(0x0400): Running command [17]..."
We could see:"(0x0400): Running command [17][SSS_NSS_GETPWNAM]..."
Resolves:
https://fedorahosted.org/sssd/ticket/2703
---
Makefile.am | 4 +-
src/providers/dp_pam_data_util.c | 27 +----
src/responder/nss/nsssrv_cmd.c | 30 +++---
src/sss_client/pam_sss.c | 6 +-
src/tools/tools_mc_util.c | 4 +-
src/util/sss_cli_cmd.c | 219 +++++++++++++++++++++++++++++++++++++++
src/util/sss_cli_cmd.h | 9 ++
src/util/sss_log.c | 2 -
8 files changed, 256 insertions(+), 45 deletions(-)
create mode 100644 src/util/sss_cli_cmd.c
create mode 100644 src/util/sss_cli_cmd.h
diff --git a/Makefile.am b/Makefile.am
index b8cbc6df23ded1edb945a709b6dbe1c44eb54017..f16b8ebdb4dd66c2d193c19bd8355782f4de4c9a
100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -678,7 +678,8 @@ endif
pkglib_LTLIBRARIES += libsss_debug.la
libsss_debug_la_SOURCES = \
src/util/debug.c \
- src/util/sss_log.c
+ src/util/sss_log.c \
+ src/util/sss_cli_cmd.c
libsss_debug_la_LIBADD = \
$(SYSLOG_LIBS)
libsss_debug_la_LDFLAGS = \
@@ -2654,6 +2655,7 @@ pam_sss_la_SOURCES = \
src/sss_client/sss_cli.h \
src/util/atomic_io.c \
src/util/authtok-utils.c \
+ src/util/sss_cli_cmd.c \
src/sss_client/sss_pam_macros.h \
src/sss_client/sss_pam_compat.h
diff --git a/src/providers/dp_pam_data_util.c b/src/providers/dp_pam_data_util.c
index 8724bf936f3f46fb8393c8a3da57215a73b4191a..10e91f5f7286db5e76ad98b6c7519f2482d006db
100644
--- a/src/providers/dp_pam_data_util.c
+++ b/src/providers/dp_pam_data_util.c
@@ -23,33 +23,10 @@
*/
#include "providers/data_provider.h"
-
+#include "util/sss_cli_cmd.h"
#define PAM_SAFE_ITEM(item) item ? item : "not set"
-static const char *pamcmd2str(int cmd) {
- switch (cmd) {
- case SSS_PAM_AUTHENTICATE:
- return "PAM_AUTHENTICATE";
- case SSS_PAM_SETCRED:
- return "PAM_SETCRED";
- case SSS_PAM_ACCT_MGMT:
- return "PAM_ACCT_MGMT";
- case SSS_PAM_OPEN_SESSION:
- return "PAM_OPEN_SESSION";
- case SSS_PAM_CLOSE_SESSION:
- return "PAM_CLOSE_SESSION";
- case SSS_PAM_CHAUTHTOK:
- return "PAM_CHAUTHTOK";
- case SSS_PAM_CHAUTHTOK_PRELIM:
- return "PAM_CHAUTHTOK_PRELIM";
- case SSS_PAM_PREAUTH:
- return "SSS_PAM_PREAUTH";
- default:
- return "UNKNOWN";
- }
-}
-
int pam_data_destructor(void *ptr)
{
struct pam_data *pd = talloc_get_type(ptr, struct pam_data);
@@ -183,7 +160,7 @@ failed:
void pam_print_data(int l, struct pam_data *pd)
{
- DEBUG(l, "command: %s\n", pamcmd2str(pd->cmd));
+ DEBUG(l, "command: %s\n", sss_cmd2str(pd->cmd));
DEBUG(l, "domain: %s\n", PAM_SAFE_ITEM(pd->domain));
DEBUG(l, "user: %s\n", PAM_SAFE_ITEM(pd->user));
DEBUG(l, "service: %s\n", PAM_SAFE_ITEM(pd->service));
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index 0129467302f16af318bbbb0a5be47ff2e235da65..d37a13820ef857fcf43efba3fb07535c4b6eb509
100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -21,6 +21,7 @@
#include "util/util.h"
#include "util/sss_nss.h"
+#include "util/sss_cli_cmd.h"
#include "responder/nss/nsssrv.h"
#include "responder/nss/nsssrv_private.h"
#include "responder/nss/nsssrv_netgroup.h"
@@ -1312,7 +1313,8 @@ static int nss_cmd_getbynam(enum sss_cli_command cmd, struct cli_ctx
*cctx)
case SSS_NSS_GETORIGBYNAME:
break;
default:
- DEBUG(SSSDBG_CRIT_FAILURE, "Invalid command type [%d].\n", cmd);
+ DEBUG(SSSDBG_CRIT_FAILURE, "Invalid command type [%d][%s].\n",
+ cmd, sss_cmd2str(cmd));
return EINVAL;
}
@@ -1347,8 +1349,8 @@ static int nss_cmd_getbynam(enum sss_cli_command cmd, struct cli_ctx
*cctx)
rawname = (const char *)body;
- DEBUG(SSSDBG_TRACE_FUNC, "Running command [%d] with input [%s].\n",
- dctx->cmdctx->cmd, rawname);
+ DEBUG(SSSDBG_TRACE_FUNC, "Running command [%d][%s] with input [%s].\n",
+ cmd, sss_cmd2str(dctx->cmdctx->cmd), rawname);
if (dctx->cmdctx->cmd == SSS_NSS_GETSIDBYNAME) {
ret = nss_check_name_of_well_known_sid(cmdctx, rawname);
@@ -1737,7 +1739,8 @@ static int nss_cmd_getbyid(enum sss_cli_command cmd, struct cli_ctx
*cctx)
case SSS_NSS_GETSIDBYID:
break;
default:
- DEBUG(SSSDBG_CRIT_FAILURE, "Invalid command type [%d].\n", cmd);
+ DEBUG(SSSDBG_CRIT_FAILURE, "Invalid command type [%d][%s].\n",
+ cmd, sss_cmd2str(cmd));
return EINVAL;
}
@@ -1766,8 +1769,8 @@ static int nss_cmd_getbyid(enum sss_cli_command cmd, struct cli_ctx
*cctx)
}
SAFEALIGN_COPY_UINT32(&cmdctx->id, body, NULL);
- DEBUG(SSSDBG_TRACE_FUNC, "Running command [%d] with id
[%"PRIu32"].\n",
- dctx->cmdctx->cmd, cmdctx->id);
+ DEBUG(SSSDBG_TRACE_FUNC, "Running command [%d][%s] with id
[%"PRIu32"].\n",
+ cmd, sss_cmd2str(dctx->cmdctx->cmd), cmdctx->id);
switch(dctx->cmdctx->cmd) {
case SSS_NSS_GETPWUID:
@@ -1805,8 +1808,8 @@ static int nss_cmd_getbyid(enum sss_cli_command cmd, struct cli_ctx
*cctx)
}
break;
default:
- DEBUG(SSSDBG_CRIT_FAILURE, "Invalid command [%d].\n",
- dctx->cmdctx->cmd);
+ DEBUG(SSSDBG_CRIT_FAILURE, "Invalid command [%d][%s].\n",
+ cmd, sss_cmd2str(dctx->cmdctx->cmd));
ret = EINVAL;
goto done;
}
@@ -1851,8 +1854,8 @@ static int nss_cmd_getbyid(enum sss_cli_command cmd, struct cli_ctx
*cctx)
}
break;
default:
- DEBUG(SSSDBG_CRIT_FAILURE, "Invalid command [%d].\n",
- dctx->cmdctx->cmd);
+ DEBUG(SSSDBG_CRIT_FAILURE, "Invalid command [%d][%s].\n",
+ cmd, sss_cmd2str(dctx->cmdctx->cmd));
ret = EINVAL;
}
@@ -5172,7 +5175,8 @@ static int nss_cmd_getbysid(enum sss_cli_command cmd, struct cli_ctx
*cctx)
size_t bin_sid_length;
if (cmd != SSS_NSS_GETNAMEBYSID && cmd != SSS_NSS_GETIDBYSID) {
- DEBUG(SSSDBG_CRIT_FAILURE, "Invalid command type [%d].\n", cmd);
+ DEBUG(SSSDBG_CRIT_FAILURE, "Invalid command type [%d][%s].\n",
+ cmd, sss_cmd2str(cmd));
return EINVAL;
}
@@ -5214,8 +5218,8 @@ static int nss_cmd_getbysid(enum sss_cli_command cmd, struct cli_ctx
*cctx)
goto done;
}
- DEBUG(SSSDBG_TRACE_FUNC, "Running command [%d] with SID [%s].\n",
- dctx->cmdctx->cmd, sid_str);
+ DEBUG(SSSDBG_TRACE_FUNC, "Running command [%d][%s] with SID [%s].\n",
+ cmd, sss_cmd2str(dctx->cmdctx->cmd), sid_str);
cmdctx->secid = talloc_strdup(cmdctx, sid_str);
if (cmdctx->secid == NULL) {
diff --git a/src/sss_client/pam_sss.c b/src/sss_client/pam_sss.c
index e4fa83e12c71bb05dd329686cf2d2df6323ff3bd..541b9240edc7616cc28d291c6117227e5a1e9133
100644
--- a/src/sss_client/pam_sss.c
+++ b/src/sss_client/pam_sss.c
@@ -1173,7 +1173,7 @@ static int send_and_receive(pam_handle_t *pamh, struct pam_items
*pi,
case SSS_PAM_PREAUTH:
break;
default:
- D(("Illegal task [%d]", task));
+ D(("Illegal task [%d][%s]", task, sss_cmd2str(task)));
return PAM_SYSTEM_ERR;
}
@@ -1580,7 +1580,7 @@ static int pam_sss(enum sss_cli_command task, pam_handle_t *pamh,
bindtextdomain(PACKAGE, LOCALEDIR);
- D(("Hello pam_sssd: %d", task));
+ D(("Hello pam_sssd: %d %s", task, sss_cmd2str(task)));
eval_argv(pamh, argc, argv, &flags, &retries, &quiet_mode,
&domains);
@@ -1656,7 +1656,7 @@ static int pam_sss(enum sss_cli_command task, pam_handle_t *pamh,
case SSS_PAM_CLOSE_SESSION:
break;
default:
- D(("Illegal task [%d]", task));
+ D(("Illegal task [%d][%s]",task, sss_cmd2str(task)));
return PAM_SYSTEM_ERR;
}
I replied to the different mail in this thread that I think we needn't
use string representation in client code. Hexadecimal should be sufficient.
But let's wait for and agreement.
diff --git a/src/tools/tools_mc_util.c b/src/tools/tools_mc_util.c
index c1b5c616d0e6d50147ecd81308aaa1e69304af92..38f9d42ce6a0759efa7e10932d0b655d6d366461
100644
--- a/src/tools/tools_mc_util.c
+++ b/src/tools/tools_mc_util.c
@@ -26,6 +26,7 @@
#include "util/util.h"
#include "tools/tools_util.h"
#include "util/mmap_cache.h"
+#include "util/sss_cli_cmd.h"
#include "sss_client/sss_cli.h"
/* This is a copy of sss_mc_set_recycled present in
@@ -226,7 +227,8 @@ static errno_t sss_mc_refresh_ent(const char *name, enum sss_tools_ent
ent)
}
if (cmd == SSS_CLI_NULL) {
- DEBUG(SSSDBG_OP_FAILURE, "Unknown object %d to refresh\n", cmd);
+ DEBUG(SSSDBG_OP_FAILURE, "Unknown object [%d][%s] to refresh\n",
+ cmd, sss_cmd2str(cmd));
return EINVAL;
}
diff --git a/src/util/sss_cli_cmd.c b/src/util/sss_cli_cmd.c
new file mode 100644
index 0000000000000000000000000000000000000000..e160bb700744d7b56ee0a02c13cccffc3529f5dc
--- /dev/null
+++ b/src/util/sss_cli_cmd.c
@@ -0,0 +1,219 @@
+#include "sss_client/sss_cli.h"
+#include "util/sss_cli_cmd.h"
+#include "util/util.h"
+
+const char *sss_cmd2str(enum sss_cli_command cmd)
+{
+ switch (cmd) {
+ /* null */
+ case SSS_CLI_NULL:
+ return "SSS_CLI_NULL";
+
+ /* version */
+ case SSS_GET_VERSION:
+ return "SSS_GET_VERSION";
+
+ /* passwd */
+ case SSS_NSS_GETPWNAM:
+ return "SSS_NSS_GETPWNAM";
+ case SSS_NSS_GETPWUID:
+ return "SSS_NSS_GETPWUID";
+ case SSS_NSS_SETPWENT:
+ return "SSS_NSS_SETPWENT";
+ case SSS_NSS_GETPWENT:
+ return "SSS_NSS_GETPWENT";
+ case SSS_NSS_ENDPWENT:
+ return "SSS_NSS_ENDPWENT";
+
+ /* group */
+ case SSS_NSS_GETGRNAM:
+ return "SSS_NSS_GETGRNAM";
+ case SSS_NSS_GETGRGID:
+ return "SSS_NSS_GETGRGID";
+ case SSS_NSS_SETGRENT:
+ return "SSS_NSS_SETGRENT";
+ case SSS_NSS_GETGRENT:
+ return "SSS_NSS_GETGRENT";
+ case SSS_NSS_ENDGRENT:
+ return "SSS_NSS_ENDGRENT";
+ case SSS_NSS_INITGR:
+ return "SSS_NSS_INITGR";
+
+ #if 0
+ /* aliases */
+ case SSS_NSS_GETALIASBYNAME:
+ return "SSS_NSS_GETALIASBYNAME";
+ case SSS_NSS_GETALIASBYPORT:
+ return "SSS_NSS_GETALIASBYPORT";
+ case SSS_NSS_SETALIASENT:
+ return "SSS_NSS_SETALIASENT";
+ case SSS_NSS_GETALIASENT:
+ return "SSS_NSS_GETALIASENT";
+ case SSS_NSS_ENDALIASENT:
+ return "SSS_NSS_ENDALIASENT";
+
+ /* ethers */
+ case SSS_NSS_GETHOSTTON:
+ return "SSS_NSS_GETHOSTTON";
+ case SSS_NSS_GETNTOHOST:
+ return "SSS_NSS_GETNTOHOST";
+ case SSS_NSS_SETETHERENT:
+ return "SSS_NSS_SETETHERENT";
+ case SSS_NSS_GETETHERENT:
+ return "SSS_NSS_GETETHERENT";
+ case SSS_NSS_ENDETHERENT:
+ return "SSS_NSS_ENDETHERENT";
+
+ /* hosts */
+ case SSS_NSS_GETHOSTBYNAME:
+ return "SSS_NSS_GETHOSTBYNAME";
+ case SSS_NSS_GETHOSTBYNAME2:
+ return "SSS_NSS_GETHOSTBYNAME2";
+ case SSS_NSS_GETHOSTBYADDR:
+ return "SSS_NSS_GETHOSTBYADDR";
+ case SSS_NSS_SETHOSTENT:
+ return "SSS_NSS_SETHOSTENT";
+ case SSS_NSS_GETHOSTENT:
+ return "SSS_NSS_GETHOSTENT";
+ case SSS_NSS_ENDHOSTENT:
+ return "SSS_NSS_ENDHOSTENT";
+ #endif
+
+ /* netgroup */
+ case SSS_NSS_SETNETGRENT:
+ return "SSS_NSS_SETNETGRENT";
+ case SSS_NSS_GETNETGRENT:
+ return "SSS_NSS_GETNETGRENT";
+ case SSS_NSS_ENDNETGRENT:
+ return "SSS_NSS_ENDNETGRENT";
+ /* SSS_NSS_INNETGR:
+ return "SSS_NSS_INNETGR";
+ break; */
+
+ #if 0
+ /* networks */
+ case SSS_NSS_GETNETBYNAME:
+ return "SSS_NSS_GETNETBYNAME";
+ case SSS_NSS_GETNETBYADDR:
+ return "SSS_NSS_GETNETBYADDR";
+ case SSS_NSS_SETNETENT:
+ return "SSS_NSS_SETNETENT";
+ case SSS_NSS_GETNETENT:
+ return "SSS_NSS_GETNETENT";
+ case SSS_NSS_ENDNETENT:
+ return "SSS_NSS_ENDNETENT";
+
+ /* protocols */
+ case SSS_NSS_GETPROTOBYNAME:
+ return "SSS_NSS_GETPROTOBYNAME";
+ case SSS_NSS_GETPROTOBYNUM:
+ return "SSS_NSS_GETPROTOBYNUM";
+ case SSS_NSS_SETPROTOENT:
+ return "SSS_NSS_SETPROTOENT";
+ case SSS_NSS_GETPROTOENT:
+ return "SSS_NSS_GETPROTOENT";
+ case SSS_NSS_ENDPROTOENT:
+ return "SSS_NSS_ENDPROTOENT";
+
+ /* rpc */
+ case SSS_NSS_GETRPCBYNAME:
+ return "SSS_NSS_GETRPCBYNAME";
+ case SSS_NSS_GETRPCBYNUM:
+ return "SSS_NSS_GETRPCBYNUM";
+ case SSS_NSS_SETRPCENT:
+ return "SSS_NSS_SETRPCENT";
+ case SSS_NSS_GETRPCENT:
+ return "SSS_NSS_GETRPCENT";
+ case SSS_NSS_ENDRPCENT:
+ return "SSS_NSS_ENDRPCENT";
+ #endif
+
+ /* services */
+ case SSS_NSS_GETSERVBYNAME:
+ return "SSS_NSS_GETSERVBYNAME";
+ case SSS_NSS_GETSERVBYPORT:
+ return "SSS_NSS_GETSERVBYPORT";
+ case SSS_NSS_SETSERVENT:
+ return "SSS_NSS_SETSERVENT";
+ case SSS_NSS_GETSERVENT:
+ return "SSS_NSS_GETSERVENT";
+ case SSS_NSS_ENDSERVENT:
+ return "SSS_NSS_ENDSERVENT";
+
+ #if 0
+ /* shadow */
+ case SSS_NSS_GETSPNAM:
+ return "SSS_NSS_GETSPNAM";
+ case SSS_NSS_GETSPUID:
+ return "SSS_NSS_GETSPUID";
+ case SSS_NSS_SETSPENT:
+ return "SSS_NSS_SETSPENT";
+ case SSS_NSS_GETSPENT:
+ return "SSS_NSS_GETSPENT";
+ case SSS_NSS_ENDSPENT:
+ return "SSS_NSS_ENDSPENT";
+ #endif
+
+ /* SUDO */
+ case SSS_SUDO_GET_SUDORULES:
+ return "SSS_SUDO_GET_SUDORULES";
+ case SSS_SUDO_GET_DEFAULTS:
+ return "SSS_SUDO_GET_DEFAULTS";
+
+ /* autofs */
+ case SSS_AUTOFS_SETAUTOMNTENT:
+ return "SSS_AUTOFS_SETAUTOMNTENT";
+ case SSS_AUTOFS_GETAUTOMNTENT:
+ return "SSS_AUTOFS_GETAUTOMNTENT";
+ case SSS_AUTOFS_GETAUTOMNTBYNAME:
+ return "SSS_AUTOFS_GETAUTOMNTBYNAME";
+ case SSS_AUTOFS_ENDAUTOMNTENT:
+ return "SSS_AUTOFS_ENDAUTOMNTENT";
+
+ /* SSH */
+ case SSS_SSH_GET_USER_PUBKEYS:
+ return "SSS_SSH_GET_USER_PUBKEYS";
+ case SSS_SSH_GET_HOST_PUBKEYS:
+ return "SSS_SSH_GET_HOST_PUBKEYS";
+
+ /* PAM related calls */
+ case SSS_PAM_AUTHENTICATE:
+ return "SSS_PAM_AUTHENTICATE";
+ case SSS_PAM_SETCRED:
+ return "SSS_PAM_SETCRED";
+ case SSS_PAM_ACCT_MGMT:
+ return "SSS_PAM_ACCT_MGMT";
+ case SSS_PAM_OPEN_SESSION:
+ return "SSS_PAM_OPEN_SESSION";
+ case SSS_PAM_CLOSE_SESSION:
+ return "SSS_PAM_CLOSE_SESSION";
+ case SSS_PAM_CHAUTHTOK:
+ return "SSS_PAM_CHAUTHTOK";
+ case SSS_PAM_CHAUTHTOK_PRELIM:
+ return "SSS_PAM_CHAUTHTOK_PRELIM";
+ case SSS_CMD_RENEW:
+ return "SSS_CMD_RENEW";
+ case SSS_PAM_PREAUTH:
+ return "SSS_PAM_PREAUTH";
+
+ /* PAC responder calls */
+ case SSS_PAC_ADD_PAC_USER:
+ return "SSS_PAC_ADD_PAC_USER";
+
+ /* ID-SID mapping calls */
+ case SSS_NSS_GETSIDBYNAME:
+ return "SSS_NSS_GETSIDBYNAME";
+ case SSS_NSS_GETSIDBYID:
+ return "SSS_NSS_GETSIDBYID";
+ case SSS_NSS_GETNAMEBYSID:
+ return "SSS_NSS_GETNAMEBYSID";
+ case SSS_NSS_GETIDBYSID:
+ return "SSS_NSS_GETIDBYSID";
+ case SSS_NSS_GETORIGBYNAME:
+ return "SSS_NSS_GETORIGBYNAME";
+ default:
+ DEBUG(SSSDBG_MINOR_FAILURE,
+ "Translation's string is missing for command [%d].\n", cmd);
+ return "UNKNOWN COMMAND";
+ }
+}
diff --git a/src/util/sss_cli_cmd.h b/src/util/sss_cli_cmd.h
new file mode 100644
index 0000000000000000000000000000000000000000..4bd18af85fcca0bcfbcc28ddbcc99bfaaac2c7c4
--- /dev/null
+++ b/src/util/sss_cli_cmd.h
@@ -0,0 +1,9 @@
There is missing header with licence.
The same applies to the new implemetatation module.
+#ifndef __SSS_CLI_CMD_H__
+#define __SSS_CLI_CMD_H__
+
+#include "sss_client/sss_cli.h"
+
+/* Translate sss_cli_command to human readable form. */
+const char *sss_cmd2str(enum sss_cli_command cmd);
+
+#endif /* __SSS_CLI_CMD_H__ */
diff --git a/src/util/sss_log.c b/src/util/sss_log.c
index 48e73dbea99b86c80d9016a4c5d646fc655fcdfb..250c1d6dc93569250e552b9e4cd2f2e3ebcc0745
100644
--- a/src/util/sss_log.c
+++ b/src/util/sss_log.c
@@ -78,8 +78,6 @@ void sss_log_ext(int priority, int facility, const char *format, ...)
va_end(ap);
}
-
-
This change is unrelated to the ticket.
It's fine to change it if you touch code nearby.
#ifdef WITH_JOURNALD
static void sss_log_internal(int priority, int facility, const char *format,
BTW It would be good to use new function also in backend code.
src/providers/data_provider_be.c:1107: "Got request for
[%#x][%d][%s]\n", type, attr_type, filter);
I used to filter debug messages for be_get_account_info which print
type as hexadecimal number. Maybe there are also other places.
LS