summaryrefslogtreecommitdiffstats
path: root/src/providers/data_provider_be.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/providers/data_provider_be.c')
-rw-r--r--src/providers/data_provider_be.c72
1 files changed, 22 insertions, 50 deletions
diff --git a/src/providers/data_provider_be.c b/src/providers/data_provider_be.c
index 3c2dda230..ac703b821 100644
--- a/src/providers/data_provider_be.c
+++ b/src/providers/data_provider_be.c
@@ -558,7 +558,6 @@ static int be_get_subdomains(struct sbus_request *dbus_req, void *user_data)
struct be_subdom_req *req;
struct be_req *be_req = NULL;
struct be_client *becli;
- DBusError dbus_error;
dbus_bool_t force;
char *domain_hint;
dbus_uint16_t err_maj;
@@ -569,17 +568,11 @@ static int be_get_subdomains(struct sbus_request *dbus_req, void *user_data)
becli = talloc_get_type(user_data, struct be_client);
if (!becli) return EINVAL;
- dbus_error_init(&dbus_error);
-
- ret = dbus_message_get_args(dbus_req->message, &dbus_error,
- DBUS_TYPE_BOOLEAN, &force,
- DBUS_TYPE_STRING, &domain_hint,
- DBUS_TYPE_INVALID);
- if (!ret) {
- DEBUG(SSSDBG_CRIT_FAILURE,"Failed, to parse message!\n");
- if (dbus_error_is_set(&dbus_error)) dbus_error_free(&dbus_error);
- return EIO;
- }
+ if (!sbus_request_parse_or_finish(dbus_req,
+ DBUS_TYPE_BOOLEAN, &force,
+ DBUS_TYPE_STRING, &domain_hint,
+ DBUS_TYPE_INVALID))
+ return EOK; /* handled */
/* return an error if corresponding backend target is not configured */
if (becli->bectx->bet_info[BET_SUBDOMAINS].bet_ops == NULL) {
@@ -1036,7 +1029,6 @@ static int be_get_account_info(struct sbus_request *dbus_req, void *user_data)
struct be_acct_req *req;
struct be_req *be_req;
struct be_client *becli;
- DBusError dbus_error;
uint32_t type;
char *filter;
char *domain;
@@ -1051,19 +1043,13 @@ static int be_get_account_info(struct sbus_request *dbus_req, void *user_data)
becli = talloc_get_type(user_data, struct be_client);
if (!becli) return EINVAL;
- dbus_error_init(&dbus_error);
-
- ret = dbus_message_get_args(dbus_req->message, &dbus_error,
- DBUS_TYPE_UINT32, &type,
- DBUS_TYPE_UINT32, &attr_type,
- DBUS_TYPE_STRING, &filter,
- DBUS_TYPE_STRING, &domain,
- DBUS_TYPE_INVALID);
- if (!ret) {
- DEBUG(SSSDBG_CRIT_FAILURE,"Failed, to parse message!\n");
- if (dbus_error_is_set(&dbus_error)) dbus_error_free(&dbus_error);
- return EIO;
- }
+ if (!sbus_request_parse_or_finish(dbus_req,
+ DBUS_TYPE_UINT32, &type,
+ DBUS_TYPE_UINT32, &attr_type,
+ DBUS_TYPE_STRING, &filter,
+ DBUS_TYPE_STRING, &domain,
+ DBUS_TYPE_INVALID))
+ return EOK; /* handled */
DEBUG(SSSDBG_CONF_SETTINGS,
"Got request for [%u][%d][%s]\n", type, attr_type, filter);
@@ -1607,7 +1593,6 @@ static void be_autofs_handler_callback(struct be_req *req,
static int be_autofs_handler(struct sbus_request *dbus_req, void *user_data)
{
- DBusError dbus_error;
struct be_client *be_cli = NULL;
struct be_req *be_req = NULL;
struct be_autofs_req *be_autofs_req = NULL;
@@ -1627,17 +1612,11 @@ static int be_autofs_handler(struct sbus_request *dbus_req, void *user_data)
return EINVAL;
}
- dbus_error_init(&dbus_error);
-
- ret = dbus_message_get_args(dbus_req->message, &dbus_error,
- DBUS_TYPE_UINT32, &type,
- DBUS_TYPE_STRING, &filter,
- DBUS_TYPE_INVALID);
- if (!ret) {
- DEBUG(SSSDBG_CRIT_FAILURE, "Failed, to parse message!\n");
- if (dbus_error_is_set(&dbus_error)) dbus_error_free(&dbus_error);
- return EIO;
- }
+ if (!sbus_request_parse_or_finish(dbus_req,
+ DBUS_TYPE_UINT32, &type,
+ DBUS_TYPE_STRING, &filter,
+ DBUS_TYPE_INVALID))
+ return EOK; /* handled */
/* If we are offline and fast reply was requested
* return offline immediately
@@ -1818,7 +1797,6 @@ static int be_host_handler(struct sbus_request *dbus_req, void *user_data)
struct be_host_req *req;
struct be_req *be_req;
struct be_client *becli;
- DBusError dbus_error;
uint32_t flags;
char *filter;
int ret;
@@ -1831,17 +1809,11 @@ static int be_host_handler(struct sbus_request *dbus_req, void *user_data)
becli = talloc_get_type(user_data, struct be_client);
if (!becli) return EINVAL;
- dbus_error_init(&dbus_error);
-
- ret = dbus_message_get_args(dbus_req->message, &dbus_error,
- DBUS_TYPE_UINT32, &flags,
- DBUS_TYPE_STRING, &filter,
- DBUS_TYPE_INVALID);
- if (!ret) {
- DEBUG(SSSDBG_CRIT_FAILURE, "Failed, to parse message!\n");
- if (dbus_error_is_set(&dbus_error)) dbus_error_free(&dbus_error);
- return EIO;
- }
+ if (!sbus_request_parse_or_finish(dbus_req,
+ DBUS_TYPE_UINT32, &flags,
+ DBUS_TYPE_STRING, &filter,
+ DBUS_TYPE_INVALID))
+ return EOK; /* request finished */
DEBUG(SSSDBG_TRACE_LIBS,
"Got request for [%u][%s]\n", flags, filter);