New function `k_afsklog_uid'.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@934 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -254,7 +254,7 @@ aix_setup(void)
|
|||||||
*/
|
*/
|
||||||
static
|
static
|
||||||
int
|
int
|
||||||
k_afslog_file(char *file, char *krealm)
|
k_afslog_file(char *file, char *krealm, uid_t uid)
|
||||||
{
|
{
|
||||||
FILE *f;
|
FILE *f;
|
||||||
char cell[64];
|
char cell[64];
|
||||||
@@ -266,7 +266,7 @@ k_afslog_file(char *file, char *krealm)
|
|||||||
char *nl = strchr(cell, '\n');
|
char *nl = strchr(cell, '\n');
|
||||||
if (nl)
|
if (nl)
|
||||||
*nl = 0;
|
*nl = 0;
|
||||||
err = k_afsklog(cell, krealm);
|
err = k_afsklog_uid(cell, krealm, uid);
|
||||||
}
|
}
|
||||||
fclose(f);
|
fclose(f);
|
||||||
return err;
|
return err;
|
||||||
@@ -274,24 +274,24 @@ k_afslog_file(char *file, char *krealm)
|
|||||||
|
|
||||||
static
|
static
|
||||||
int
|
int
|
||||||
k_afsklog_all_local_cells(char *krealm)
|
k_afsklog_all_local_cells(char *krealm, uid_t uid)
|
||||||
{
|
{
|
||||||
int err = KFAILURE;
|
int err = KFAILURE;
|
||||||
char *p, home[MaxPathLen];
|
char *p, home[MaxPathLen];
|
||||||
|
|
||||||
if ((p = getenv("HOME"))) {
|
if ((p = getenv("HOME"))) {
|
||||||
sprintf(home, "%s/.TheseCells", p);
|
sprintf(home, "%s/.TheseCells", p);
|
||||||
err = k_afslog_file(home, krealm);
|
err = k_afslog_file(home, krealm, uid);
|
||||||
}
|
}
|
||||||
if(k_afslog_file(_PATH_THESECELLS, krealm) == 0)
|
if(k_afslog_file(_PATH_THESECELLS, krealm, uid) == 0)
|
||||||
err = 0;
|
err = 0;
|
||||||
if(k_afslog_file(_PATH_THISCELL, krealm) == 0)
|
if(k_afslog_file(_PATH_THISCELL, krealm, uid) == 0)
|
||||||
err = 0;
|
err = 0;
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
k_afsklog(char *cell, char *krealm)
|
k_afsklog_uid(char *cell, char *krealm, uid_t uid)
|
||||||
{
|
{
|
||||||
int k_errno;
|
int k_errno;
|
||||||
CREDENTIALS c;
|
CREDENTIALS c;
|
||||||
@@ -302,7 +302,7 @@ k_afsklog(char *cell, char *krealm)
|
|||||||
char CELL[64];
|
char CELL[64];
|
||||||
|
|
||||||
if (cell == 0 || cell[0] == 0)
|
if (cell == 0 || cell[0] == 0)
|
||||||
return k_afsklog_all_local_cells (krealm);
|
return k_afsklog_all_local_cells (krealm, uid);
|
||||||
foldup(CELL, cell);
|
foldup(CELL, cell);
|
||||||
|
|
||||||
vl_realm = realm_of_cell(cell);
|
vl_realm = realm_of_cell(cell);
|
||||||
@@ -378,7 +378,7 @@ k_afsklog(char *cell, char *krealm)
|
|||||||
*/
|
*/
|
||||||
ct.AuthHandle = c.kvno;
|
ct.AuthHandle = c.kvno;
|
||||||
memcpy (ct.HandShakeKey, c.session, sizeof(c.session));
|
memcpy (ct.HandShakeKey, c.session, sizeof(c.session));
|
||||||
ct.ViceId = getuid(); /* is this always valid? */
|
ct.ViceId = uid; /* is this always valid? */
|
||||||
ct.BeginTimestamp = 1 + c.issue_date;
|
ct.BeginTimestamp = 1 + c.issue_date;
|
||||||
ct.EndTimestamp = krb_life_to_time(c.issue_date, c.lifetime);
|
ct.EndTimestamp = krb_life_to_time(c.issue_date, c.lifetime);
|
||||||
|
|
||||||
@@ -425,6 +425,13 @@ k_afsklog(char *cell, char *krealm)
|
|||||||
return k_errno;
|
return k_errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
k_afsklog(char *cell, char *krealm)
|
||||||
|
{
|
||||||
|
return k_afsklog_uid (cell, krealm, getuid());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#define NO_ENTRY_POINT 0
|
#define NO_ENTRY_POINT 0
|
||||||
#define SINGLE_ENTRY_POINT 1
|
#define SINGLE_ENTRY_POINT 1
|
||||||
#define MULTIPLE_ENTRY_POINT 2
|
#define MULTIPLE_ENTRY_POINT 2
|
||||||
|
Reference in New Issue
Block a user