/* * Copyright (C) 2013 Red Hat, Inc. * SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once #include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "common/cockpitauthorize.h" #include "common/cockpitmemory.h" #define DEBUG_SESSION 0 #if DEBUG_SESSION #define debug(fmt, ...) (fprintf (stderr, "%s: " fmt "\n", program_name, ##__VA_ARGS__)) #else #define debug(...) #endif #define EX 127 extern const char *program_name; extern struct passwd *pwd; extern int want_session; extern pid_t child; void build_string (char **buf, size_t *size, const char *str, size_t len); void authorize_logger (const char *data); void utmp_log (int login, const char *rhost, FILE *messages); void btmp_log (const char *username, const char *rhost); char* read_authorize_response (const char *what); char* get_authorize_key (const char *json, const char *key, bool required); void write_authorize_begin (void); void write_control_string (const char *field, const char *str); void write_control_bool (const char *field, bool val); void write_control_end (void); __attribute__((__noreturn__)) void exit_init_problem (const char *problem, const char *message); int spawn_and_wait (const char **argv, const char **envp, const int *remap_fds, int n_remap_fds, uid_t uid, gid_t gid);