X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/blobdiff_plain/875ec2753a1297bbed3492345f6fd1069fd7f809..6381acf043b9e6d922282808744983ce9cacb75e:/sshconnect.h diff --git a/sshconnect.h b/sshconnect.h index 134b59af..0be30fe6 100644 --- a/sshconnect.h +++ b/sshconnect.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect.h,v 1.14 2002/05/23 19:24:30 markus Exp $ */ +/* $OpenBSD: sshconnect.h,v 1.17 2002/06/19 00:27:55 deraadt Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -28,14 +28,14 @@ typedef struct Sensitive Sensitive; struct Sensitive { - Key **keys; - int nkeys; - int external_keysign; + Key **keys; + int nkeys; + int external_keysign; }; int ssh_connect(const char *, struct sockaddr_storage *, u_short, int, int, - int, struct passwd *, const char *); + int, const char *); void ssh_login(Sensitive *, const char *, struct sockaddr *, struct passwd *); @@ -50,4 +50,20 @@ void ssh_userauth2(const char *, const char *, char *, Sensitive *); void ssh_put_password(char *); + +/* + * Macros to raise/lower permissions. + */ +#define PRIV_START do { \ + int save_errno = errno; \ + (void)seteuid(original_effective_uid); \ + errno = save_errno; \ +} while (0) + +#define PRIV_END do { \ + int save_errno = errno; \ + (void)seteuid(original_real_uid); \ + errno = save_errno; \ +} while (0) + #endif