summaryrefslogtreecommitdiffstats
path: root/src/providers
diff options
context:
space:
mode:
Diffstat (limited to 'src/providers')
-rw-r--r--src/providers/data_provider_be.c72
-rw-r--r--src/providers/proxy/proxy_init.c19
2 files changed, 27 insertions, 64 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);
diff --git a/src/providers/proxy/proxy_init.c b/src/providers/proxy/proxy_init.c
index 0206ec15b..dd1b75826 100644
--- a/src/providers/proxy/proxy_init.c
+++ b/src/providers/proxy/proxy_init.c
@@ -397,10 +397,8 @@ static int client_registration(struct sbus_request *dbus_req, void *data)
dbus_uint16_t version = DATA_PROVIDER_VERSION;
struct sbus_connection *conn;
struct proxy_client *proxy_cli;
- DBusError dbus_error;
dbus_uint16_t cli_ver;
uint32_t cli_id;
- dbus_bool_t dbret;
int hret;
hash_key_t key;
hash_value_t value;
@@ -421,19 +419,12 @@ static int client_registration(struct sbus_request *dbus_req, void *data)
"Cancel proxy client ID timeout [%p]\n", proxy_cli->timeout);
talloc_zfree(proxy_cli->timeout);
- dbus_error_init(&dbus_error);
-
- dbret = dbus_message_get_args(dbus_req->message, &dbus_error,
- DBUS_TYPE_UINT16, &cli_ver,
- DBUS_TYPE_UINT32, &cli_id,
- DBUS_TYPE_INVALID);
- if (!dbret) {
- DEBUG(SSSDBG_CRIT_FAILURE,
- "Failed to parse message, killing connection\n");
- if (dbus_error_is_set(&dbus_error)) dbus_error_free(&dbus_error);
+ if (!sbus_request_parse_or_finish(dbus_req,
+ DBUS_TYPE_UINT16, &cli_ver,
+ DBUS_TYPE_UINT32, &cli_id,
+ DBUS_TYPE_INVALID)) {
sbus_disconnect(conn);
- /* FIXME: should we just talloc_zfree(conn) ? */
- return EIO;
+ return EOK; /* handled */
}
DEBUG(SSSDBG_FUNC_DATA, "Proxy client [%"PRIu32"] connected\n", cli_id);