(guess_domain): new function
(ruserpass): use it git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5220 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -63,6 +63,46 @@ static struct toktab {
|
|||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Write a copy of the hostname into `hostname, sz' and return a guess
|
||||||
|
* as to the `domain' of that hostname.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static char *
|
||||||
|
guess_domain (char *hostname, size_t sz)
|
||||||
|
{
|
||||||
|
struct hostent *he;
|
||||||
|
char *dot;
|
||||||
|
char *a;
|
||||||
|
char **aliases;
|
||||||
|
|
||||||
|
if (gethostname (hostname, sz) < 0) {
|
||||||
|
strcpy_truncate (hostname, "", sz);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
dot = strchr (hostname, '.');
|
||||||
|
if (dot != NULL)
|
||||||
|
return dot + 1;
|
||||||
|
|
||||||
|
he = gethostbyname (hostname);
|
||||||
|
if (he == NULL)
|
||||||
|
return hostname;
|
||||||
|
|
||||||
|
dot = strchr (he->h_name, '.');
|
||||||
|
if (dot != NULL) {
|
||||||
|
strcpy_truncate (hostname, he->h_name, sz);
|
||||||
|
return dot + 1;
|
||||||
|
}
|
||||||
|
for (aliases = he->h_aliases; (a = *aliases) != NULL; ++aliases) {
|
||||||
|
dot = strchr (a, '.');
|
||||||
|
if (dot != NULL) {
|
||||||
|
strcpy_truncate (hostname, a, sz);
|
||||||
|
return dot + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return hostname;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ruserpass(char *host, char **aname, char **apass, char **aacct)
|
ruserpass(char *host, char **aname, char **apass, char **aacct)
|
||||||
{
|
{
|
||||||
@@ -70,12 +110,8 @@ ruserpass(char *host, char **aname, char **apass, char **aacct)
|
|||||||
int t, i, c, usedefault = 0;
|
int t, i, c, usedefault = 0;
|
||||||
struct stat stb;
|
struct stat stb;
|
||||||
|
|
||||||
if(gethostname(myhostname, MaxHostNameLen) < 0)
|
mydomain = guess_domain (myhostname, MaxHostNameLen);
|
||||||
strcpy_truncate(myhostname, "", MaxHostNameLen);
|
|
||||||
if((mydomain = strchr(myhostname, '.')) == NULL)
|
|
||||||
mydomain = myhostname;
|
|
||||||
else
|
|
||||||
mydomain++;
|
|
||||||
hdir = getenv("HOME");
|
hdir = getenv("HOME");
|
||||||
if (hdir == NULL)
|
if (hdir == NULL)
|
||||||
hdir = ".";
|
hdir = ".";
|
||||||
|
Reference in New Issue
Block a user