diff options
author | Pavel Březina <pbrezina@redhat.com> | 2012-04-13 09:50:55 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2012-06-29 11:37:16 -0400 |
commit | 710472d946f6c337a095699dfd79134fa8b9eab9 (patch) | |
tree | ee1425acc6d2a5d13a4ed8838ac13d17d792c936 /src/responder/sudo/sudosrv_get_sudorules.c | |
parent | 60a729bfa2aee7529a0c9a276057a47a80381994 (diff) | |
download | sssd-710472d946f6c337a095699dfd79134fa8b9eab9.tar.gz sssd-710472d946f6c337a095699dfd79134fa8b9eab9.tar.xz sssd-710472d946f6c337a095699dfd79134fa8b9eab9.zip |
sudo responder: remove code duplication in commands
Diffstat (limited to 'src/responder/sudo/sudosrv_get_sudorules.c')
-rw-r--r-- | src/responder/sudo/sudosrv_get_sudorules.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/src/responder/sudo/sudosrv_get_sudorules.c b/src/responder/sudo/sudosrv_get_sudorules.c index abdf3e76f..e92e807f8 100644 --- a/src/responder/sudo/sudosrv_get_sudorules.c +++ b/src/responder/sudo/sudosrv_get_sudorules.c @@ -602,81 +602,3 @@ sort_sudo_rules(struct sysdb_attrs **rules, size_t count) sudo_order_cmp_fn); return EOK; } - -char * sudosrv_get_sudorules_parse_query(TALLOC_CTX *mem_ctx, - const char *query_body, - int query_len) -{ - /* empty string or not NULL terminated */ - if (query_len < 2 || strnlen(query_body, query_len) == query_len) { - DEBUG(SSSDBG_CRIT_FAILURE, ("Invalid query.\n")); - return NULL; - } - - return talloc_strdup(mem_ctx, query_body); -} - -/* - * Response format: - * <error_code(uint32_t)><num_entries(uint32_t)><rule1><rule2>... - * <ruleN> = <num_attrs(uint32_t)><attr1><attr2>... - * <attrN> = <name(char*)>\0<num_values(uint32_t)><value1(char*)>\0<value2(char*)>\0... - * - * if <error_code> is not SSS_SUDO_ERROR_OK, the rest of the data is skipped. - */ -int sudosrv_get_sudorules_build_response(TALLOC_CTX *mem_ctx, - uint32_t error, - int rules_num, - struct sysdb_attrs **rules, - uint8_t **_response_body, - size_t *_response_len) -{ - uint8_t *response_body = NULL; - size_t response_len = 0; - TALLOC_CTX *tmp_ctx = NULL; - int i = 0; - int ret = EOK; - - tmp_ctx = talloc_new(NULL); - if (tmp_ctx == NULL) { - DEBUG(SSSDBG_CRIT_FAILURE, ("talloc_new() failed\n")); - return ENOMEM; - } - - /* error code */ - ret = sudosrv_response_append_uint32(tmp_ctx, error, - &response_body, &response_len); - if (ret != EOK) { - goto fail; - } - - if (error != SSS_SUDO_ERROR_OK) { - goto done; - } - - /* rules count */ - ret = sudosrv_response_append_uint32(tmp_ctx, (uint32_t)rules_num, - &response_body, &response_len); - if (ret != EOK) { - goto fail; - } - - /* rules */ - for (i = 0; i < rules_num; i++) { - ret = sudosrv_response_append_rule(tmp_ctx, rules[i]->num, rules[i]->a, - &response_body, &response_len); - if (ret != EOK) { - goto fail; - } - } - -done: - *_response_body = talloc_steal(mem_ctx, response_body); - *_response_len = response_len; - - ret = EOK; - -fail: - talloc_free(tmp_ctx); - return ret; -} |