On 07/15/2015 08:53 AM, Petr Cech wrote:
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.
I think it can't hurt and might be useful, so IMO leave 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?
I think you should move it to separate file, as you don't want to share more code then necessary.
There are 2 possibilities where to have this file
a) in src/providers  - responders already link with some modules from this folder, so I suppose it's viable

SSSD_RESPONDER_OBJ = \
    ...
    src/providers/data_provider_iface_generated.c \
    src/providers/data_provider_iface_generated.h

b) move it to src/util which is a natural place for shared code

In my opinion a) is better because code is closely coupled with back end and is not general enough to be part of utils.

Sorry for not giving definitive answers. :-)

+
+const char* be_req2str(dbus_uint32_t req_type)
+{
// I was thinking whether you should use some
static char output[??];

//and fill it with "FAST" in a single condition and thus simplifying subsequent case
if (req_type & BE_REQ_FAST0)
	sprintf(output, "FAST");

+    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";
+}



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


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