pacsrv_cmd.c revision 95f5e7963a36b7b68859ce91ae4b232088bbaa09
/*
SSSD
PAC Responder
Copyright (C) Sumit Bose <sbose@redhat.com> 2012
Jan Zeleny <jzeleny@redhat.com> 2012
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
{
int ret;
/* async processing, just return here */
return EOK;
}
return ret;
}
return EOK;
}
struct pac_req_ctx {
const char *domain_name;
const char *user_name;
struct sss_domain_info *dom;
struct PAC_LOGON_INFO *logon_info;
struct dom_sid2 *domain_sid;
};
struct sysdb_ctx *group_sysdb,
int gid_iter);
{
int ret;
struct pac_req_ctx *pr_ctx;
struct tevent_req *req;
return ENOMEM;
}
return EINVAL;
}
&pr_ctx->logon_info);
goto done;
}
goto done;
}
goto done;
}
} else {
}
goto done;
}
done:
}
}
{
struct pac_req_ctx);
int ret;
goto done;
}
goto done;
}
done:
}
}
{
int ret;
struct tevent_req *req;
struct dom_sid *my_dom_sid;
struct local_mapping_ranges *my_range_map;
goto done;
}
&my_dom_sid, &my_range_map);
goto done;
}
goto done;
}
goto done;
}
done:
return ret;
}
{
int ret;
struct ldb_message *msg;
goto done;
}
goto done;
}
&msg);
/* TODO: check id uid and gid are equal. */
goto done;
}
goto done;
}
} else {
goto done;
}
done:
return ret;
}
struct pac_save_memberships_state {
int gid_iter;
struct pac_req_ctx *pr_ctx;
struct sss_domain_info *group_dom;
};
{
struct pac_save_memberships_state *state;
struct tevent_req *req;
return NULL;
}
goto done;
}
/* Remote users are members of local groups */
} else {
}
}
done:
}
return req;
}
{
struct tevent_req *subreq;
struct pac_save_memberships_state *state;
struct pac_req_ctx *pr_ctx;
continue;
goto done;
}
return EAGAIN;
} else {
goto done;
}
}
done:
return ret;
}
{
struct tevent_req *req;
struct pac_save_memberships_state *state;
char *err_msg;
&err_msg);
goto error;
}
goto error;
}
goto error;
}
return;
}
static errno_t
struct sysdb_ctx *group_sysdb,
int gid_iter)
{
const char *group_name;
struct sysdb_attrs *group_attrs;
struct ldb_message *group;
return ENOMEM;
}
goto done;
}
if (group_name == NULL) {
goto done;
}
if (group_attrs == NULL) {
goto done;
}
if (group_attrs->a == NULL) {
if (group_attrs->a == NULL) {
goto done;
}
goto done;
}
}
goto done;
}
goto done;
}
done:
return ret;
}
{
return EOK;
}
{
}
struct cli_protocol_version *register_cli_protocol_version(void)
{
static struct cli_protocol_version pac_cli_protocol_version[] = {
{1, "2011-04-12", "initial version"},
};
return pac_cli_protocol_version;
}
static struct sss_cmd_table pac_cmds[] = {
{SSS_CLI_NULL, NULL}
};
struct sss_cmd_table *get_pac_cmds(void) {
return pac_cmds;
}
{
enum sss_cli_command cmd;
int i;
}
}
return EINVAL;
}