Hi,

I investigated the situation around the log message, which mentioned Lukas. I prepared this patch. The result is that the original message > [sssd[be[cygnus.dev]]] [be_get_account_info] (0x0200): Got request for [0x1001][1][name=celestian]
changed to
> [sssd[be[cygnus.dev]]] [be_get_account_info] (0x0200): Got request for [0x1001][FAST BE_REQ_USER][1][name=celestian]


A)
I would like to ask if mark 'FAST' is useful, or if I should remove it.


B)
While writing a patch Lukas noticed another similar logging messages
> [sssd[pam]] [sss_dp_get_account_msg] (0x0400): Creating request for [LDAP][3][1][name=mof_user6]

I investigated it. This is the same thing -- BE_REQ_*, but it is no longer in the provider, but in the responder. Can you please advise me where I could the function 'be_req2str' write?

The first message is coming from
> src/providers/data_provider_be.c --> be_get_account_info,
the second is from
> src/responder/common/responder_dp --> sss_dp_get_account_msg


Thanks.

Petr
>From 78ba1b38af081001eaefae180adc4a45e8c673d9 Mon Sep 17 00:00:00 2001
From: Petr Cech <pc...@redhat.com>
Date: Wed, 15 Jul 2015 02:26:29 -0400
Subject: [PATCH] DATA_PROVIDER: BE_REQ as string in log message

NOTICE: This is only draft, not real commit!
We could have
> Got request for [0x1001][FAST BE_REQ_USER][1][name=celestian]
instead of
> Got request for [0x1001][1][name=celestian]

Resolves:
https://fedorahosted.org/sssd/ticket/2708
---
 src/providers/data_provider_be.c | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/src/providers/data_provider_be.c b/src/providers/data_provider_be.c
index f5bdfb676011975defa4c5a734d420c8694f3bdd..1d59a0ab1b14f5db4319565edf646e01329f0168 100644
--- a/src/providers/data_provider_be.c
+++ b/src/providers/data_provider_be.c
@@ -80,6 +80,8 @@ static int be_autofs_handler(struct sbus_request *dbus_req, void *user_data);
 static int be_host_handler(struct sbus_request *dbus_req, void *user_data);
 static int be_get_subdomains(struct sbus_request *dbus_req, void *user_data);
 
+const char* be_req2str(dbus_uint32_t req_type);
+
 struct data_provider_iface be_methods = {
     { &data_provider_iface_meta, 0 },
     .RegisterService = client_registration,
@@ -1104,7 +1106,8 @@ static int be_get_account_info(struct sbus_request *dbus_req, void *user_data)
         return EOK; /* handled */
 
     DEBUG(SSSDBG_FUNC_DATA,
-          "Got request for [%#x][%d][%s]\n", type, attr_type, filter);
+          "Got request for [%#x][%s][%d][%s]\n", type, be_req2str(type),
+           attr_type, filter);
 
     /* If we are offline and fast reply was requested
      * return offline immediately
@@ -2955,3 +2958,36 @@ static int data_provider_logrotate(struct sbus_request *dbus_req, void *data)
 
     return sbus_request_return_and_finish(dbus_req, DBUS_TYPE_INVALID);
 }
+
+const char* be_req2str(dbus_uint32_t req_type)
+{
+    switch (req_type & BE_REQ_TYPE_MASK) {
+    case BE_REQ_USER:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_USER" : "BE_REQ_USER";
+    case BE_REQ_GROUP:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_GROUP" : "BE_REQ_GROUP";
+    case BE_REQ_INITGROUPS:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_INITGROUPS" : "BE_REQ_INITGROUPS";
+    case BE_REQ_NETGROUP:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_NETGROUP" : "BE_REQ_NETGROUP";
+    case BE_REQ_SERVICES:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_SERVICES" : "BE_REQ_SERVICES";
+    case BE_REQ_SUDO_FULL:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_SUDO_FULL" : "BE_REQ_SUDO_FULL";
+    case BE_REQ_SUDO_RULES:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_SUDO_RULES" : "BE_REQ_SUDO_RULES";
+    case BE_REQ_AUTOFS:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_AUTOFS" : "BE_REQ_AUTOFS";
+    case BE_REQ_HOST:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_HOST" : "BE_REQ_HOST";
+    case BE_REQ_BY_SECID:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_BY_SECID" : "BE_REQ_BY_SECID";
+    case BE_REQ_USER_AND_GROUP:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_USER_AND_GROUP" : "BE_REQ_USER_AND_GROUP";
+    case BE_REQ_BY_UUID:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_BY_UUID" : "BE_REQ_BY_UUID";
+    case BE_REQ_BY_CERT:
+        return req_type & BE_REQ_FAST ? "FAST BE_REQ_BY_CERT" : "BE_REQ_BY_CERT";
+    }
+    return "UNKNOWN_REQ";
+}
-- 
2.4.3

_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to