static char sccsid
[] = "@(#)environ.c 4.1 (Berkeley) %G%";
static char *env_sid
= "@(#)environ.c 1.2";
examine the environment variables and see if they
have network login name and password information
envloginpasswd(mch
,sn
,spasswd
)
register char *sn
, *spasswd
;{
char stemp
[30], fgetlogin
;
return; /* doesn't work on V6 */
if(!isalpha(senv
[0]))return; /* not login name, ignore */
fgetlogin
= (sn
[0] == 0);
while(*senv
&& *senv
!= ','){
if(fgetlogin
)*sn
++ = *senv
;
else if(*sn
++ != *senv
)return;
mkpwclear(stemp
,mch
,spasswd
);
register char *s
, *sv
, **env
;
if(s
[0] == 'M' && s
[1] == 'A' && s
[2] == 'C' && s
[3] == 'H'){
while(*sv
&& *sv
!= '=')sv
++;
reverse the sfrom string, copying into sto.
sfrom and sto may not be the same string
register char *sto
, *sfrom
;
make key to encrypt environment passwds.
static char *mkenvkey(mch
)
register struct utmp
*putmp
;
char stemp
[40], stemp1
[40], sttyname
[30];
if(isatty(2))strcpy(sttyname
,ttyname(2));
else if(isatty(0))strcpy(sttyname
,ttyname(0));
else if(isatty(1))strcpy(sttyname
,ttyname(1));
putmp
= getutmp(sttyname
);
if(putmp
== NULL
) return(NULL
);
sprintf(stemp
,"%ld",putmp
->ut_time
);
mkpwunclear(spasswd
,mch
,sencpasswd
)
char mch
,*spasswd
,*sencpasswd
;
fprintf(stderr
,"Can't make key\n");
nbsencrypt(spasswd
,skey
,sencpasswd
);
make an unecrypted passwd
mkpwclear(sencpasswd
,mch
,spasswd
)
char mch
,*spasswd
,*sencpasswd
;
fprintf(stderr
,"Can't make key\n");
nbsdecrypt(sencpasswd
,skey
,spasswd
);