/*
- * Copyright (c) 1993-1996, 1998-2005, 2007-2012
+ * Copyright (c) 1993-1996, 1998-2005, 2007-2013
* Todd C. Miller <Todd.Miller@courtesan.com>
*
* Permission to use, copy, modify, and distribute this software for any
* Sponsored in part by the Defense Advanced Research Projects
* Agency (DARPA) and Air Force Research Laboratory, Air Force
* Materiel Command, USAF, under agreement number F39502-99-1-0512.
- *
- * $Sudo: sudo.h,v 1.290 2009/12/12 16:12:26 millert Exp $
*/
#ifndef _SUDO_SUDO_H
#endif
#ifdef __TANDEM
-# define ROOT_UID 65535
+# define ROOT_UID 65535
#else
-# define ROOT_UID 0
+# define ROOT_UID 0
#endif
/*
#define CD_RBAC_ENABLED 0x0800
#define CD_USE_PTY 0x1000
#define CD_SET_UTMP 0x2000
+#define CD_EXEC_BG 0x4000
struct command_details {
uid_t uid;
struct timeval;
-/* For error() and errorx() (XXX - needed?) */
+/* For fatal() and fatalx() (XXX - needed?) */
void cleanup(int);
/* tgetpass.c */
void zero_bytes(volatile void *, size_t);
/* exec.c */
+int pipe_nonblock(int fds[2]);
int sudo_execute(struct command_details *details, struct command_status *cstat);
-void save_signals(void);
-void restore_signals(void);
/* term.c */
int term_cbreak(int);
bool exec_setup(struct command_details *details, const char *ptyname, int ptyfd);
int policy_init_session(struct command_details *details);
int run_command(struct command_details *details);
+int os_init_common(int argc, char *argv[], char *envp[]);
extern const char *list_user, *runas_user, *runas_group;
extern struct user_details user_details;
/* parse_args.c */
void usage(int);
+/* openbsd.c */
+int os_init_openbsd(int argc, char *argv[], char *envp[]);
+
/* selinux.c */
int selinux_restore_tty(void);
int selinux_setup(const char *role, const char *type, const char *ttyn,
void selinux_execve(const char *path, char *const argv[], char *const envp[],
int noexec);
+/* solaris.c */
+void set_project(struct passwd *);
+int os_init_solaris(int argc, char *argv[], char *envp[]);
+
/* aix.c */
void aix_prep_user(char *user, const char *tty);
void aix_restoreauthdb(void);
/* ttyname.c */
char *get_process_ttyname(void);
+/* signal.c */
+struct sigaction;
+extern int signal_pipe[2];
+int sudo_sigaction(int signo, struct sigaction *sa, struct sigaction *osa);
+void init_signals(void);
+void restore_signals(void);
+void save_signals(void);
+
#endif /* _SUDO_SUDO_H */