diff options
author | Miles Bader <miles@gnu.org> | 1996-01-19 00:16:36 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 1996-01-19 00:16:36 +0000 |
commit | 26b28c26f67ba2c0283c6df18803910b59a39987 (patch) | |
tree | d7b3f4477b0d412846fd2828eb0ec6c40a356ba9 | |
parent | fe30a6c7b5a460512a3afeff2619ab34cab1ba4c (diff) |
(fshelp_exec_reauth): New declaration.
-rw-r--r-- | libfshelp/fshelp.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libfshelp/fshelp.h b/libfshelp/fshelp.h index ab12ffe9..8d11b723 100644 --- a/libfshelp/fshelp.h +++ b/libfshelp/fshelp.h @@ -186,5 +186,24 @@ void fshelp_lock_init (struct lock_box *box); concocted by appending ARGV[0] to _SERVERS. */ error_t fshelp_delegate_translation (char *server_name, mach_port_t requestor, char **argv); + +struct idvec; /* Include <idvec.h> to get the real thing. */ + +/* If SUID or SGID is true, adds UID and/or GID respectively to the + authentication in PORTS[INIT_PORT_AUTH], and replaces it with the result. + All the other ports in PORTS and FDS are then reauthenticated, using any + privileges available through AUTH. If GET_FILE_IDS is non-NULL, and the + auth port in PORTS[INIT_PORT_AUTH] is bogus, it is called to get a list of + uids and gids from the file to use as a replacement. If SECURE is + non-NULL, whether not the added ids are new is returned in it. If either + the uid or gid case fails, then the other may still be applied. */ +error_t +fshelp_exec_reauth (int suid, uid_t uid, int sgid, gid_t gid, + auth_t auth, + error_t + (*get_file_ids)(struct idvec *uids, struct idvec *gids), + mach_port_t *ports, mach_msg_type_number_t num_ports, + mach_port_t *fds, mach_msg_type_number_t num_fds, + int *secure); #endif |