f0b8f6dd844f8752946b865bdd44175863b15812Peter Major Common Responder methods
f0b8f6dd844f8752946b865bdd44175863b15812Peter Major Copyright (C) Simo Sorce <ssorce@redhat.com> 2008
f0b8f6dd844f8752946b865bdd44175863b15812Peter Major This program is free software; you can redistribute it and/or modify
f0b8f6dd844f8752946b865bdd44175863b15812Peter Major it under the terms of the GNU General Public License as published by
f0b8f6dd844f8752946b865bdd44175863b15812Peter Major the Free Software Foundation; either version 3 of the License, or
f0b8f6dd844f8752946b865bdd44175863b15812Peter Major (at your option) any later version.
f0b8f6dd844f8752946b865bdd44175863b15812Peter Major This program is distributed in the hope that it will be useful,
f0b8f6dd844f8752946b865bdd44175863b15812Peter Major but WITHOUT ANY WARRANTY; without even the implied warranty of
f0b8f6dd844f8752946b865bdd44175863b15812Peter Major MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Major GNU General Public License for more details.
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Major You should have received a copy of the GNU General Public License
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Major along with this program. If not, see <http://www.gnu.org/licenses/>.
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Major /* Get the current flags for this file descriptor */
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Major /* Set the close-on-exec flags on this fd */
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Major "Unable to set fd close-on-exec: [%d][%s]\n",
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Majorstatic void client_close_fn(struct tevent_context *ev,
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Major struct cli_ctx *ctx = talloc_get_type(ptr, struct cli_ctx);
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Major "Failed to close fd [%d]: [%s]\n",
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Major "Terminated client [%p][%d]\n",
bb3c4ce56e9a932b502869e499389b6c467e1f9ePeter Majorstatic errno_t get_client_cred(struct cli_ctx *cctx)
return ret;
return ENOMSG;
if (ret != 0) {
return ret;
size_t c;
return EINVAL;
for (c = 0; c < allowed_uids_count; c++) {
return EOK;
return EACCES;
bool allow_sss_loop,
size_t c;
goto done;
goto done;
if (allow_sss_loop) {
for (c = 0; c < list_size; c++) {
errno = 0;
goto done;
list[c]);
goto done;
goto done;
done:
return ret;
switch (ret) {
case EOK:
case EAGAIN:
case EINVAL:
case ENODATA:
if (!cctx) {
cctx);
return EOK;
void *data)
const char *cli_name,
return ret;
return ret;
return ret;
return ret;
return EOK;
return EIO;
goto done;
goto done;
goto done;
goto done;
done:
return ret;
char *default_pipe;
int ret;
if (!default_pipe) {
return ENOMEM;
return ret;
if (!default_pipe) {
return ENOMEM;
return ret;
return ret;
goto failed;
goto failed;
goto failed;
return EOK;
return EIO;
#ifdef HAVE_SYSTEMD
if (ret < 0) {
goto done;
if (ret < 0) {
goto done;
if (ret < 0) {
goto done;
goto done;
done:
return ret;
return ENOMEM;
return EOK;
goto done;
if (tmp_value < 0) {
goto done;
0, &tmp_value);
goto done;
if (tmp_value < 0) {
goto done;
goto done;
done:
return ret;
const char *sss_pipe_name,
int pipe_fd,
const char *sss_priv_pipe_name,
int priv_pipe_fd,
const char *confdb_service_path,
const char *svc_name,
const char *cli_name,
if (!rctx) {
return ENOMEM;
goto fail;
goto fail;
goto fail;
goto fail;
&tmp);
goto fail;
goto fail;
goto fail;
goto fail;
goto fail;
goto fail;
goto fail;
goto fail;
return EOK;
fail:
return ret;
return EOK;
struct sss_domain_info *
if (!ret_dom) {
return ret_dom;
return EINVAL;
goto done;
done:
return ret;
if (limret == 0) {
if (limret == 0) {
if (limret == 0) {