/*

uidswap.h

Author: Tatu Ylonen <ylo@cs.hut.fi>

Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
                   All rights reserved

Created: Sat Sep  9 01:43:15 1995 ylo
Last modified: Sat Sep  9 02:34:04 1995 ylo

*/

#ifndef UIDSWAP_H
#define UIDSWAP_H

/* Temporarily changes to the given uid.  If the effective user id is not
   root, this does nothing.  This call cannot be nested. */
void temporarily_use_uid(uid_t uid);

/* Restores the original effective user id after temporarily_use_uid().
   This should only be called while temporarily_use_uid is effective. */
void restore_uid();

/* Permanently sets all uids to the given uid.  This cannot be called while
   temporarily_use_uid is effective.  This must also clear any saved uids. */
void permanently_set_uid(uid_t uid);

#endif /* UIDSWAP_H */
