diff options
author | Theodore Tso <tytso@mit.edu> | 1994-08-09 03:06:32 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1994-08-09 03:06:32 +0000 |
commit | d9a83689551e6250f0644572bb5e969cfb40c9e3 (patch) | |
tree | 73be97db2ef5dd66c8d0072a65978e9c8c1b1c92 /src/appl/movemail/movemail.c | |
parent | 994cdf285e997a92b87d019d6364a534c5f6bedf (diff) | |
download | krb5-d9a83689551e6250f0644572bb5e969cfb40c9e3.tar.gz krb5-d9a83689551e6250f0644572bb5e969cfb40c9e3.tar.xz krb5-d9a83689551e6250f0644572bb5e969cfb40c9e3.zip |
Add code to strdup the hostname from gethostbyname
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@4079 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl/movemail/movemail.c')
-rw-r--r-- | src/appl/movemail/movemail.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/appl/movemail/movemail.c b/src/appl/movemail/movemail.c index 8947731122..9435d0a174 100644 --- a/src/appl/movemail/movemail.c +++ b/src/appl/movemail/movemail.c @@ -535,6 +535,7 @@ char *host; krb5_principal client, server; krb5_error *err_ret = NULL; register char *cp; + char *hostname; #endif /* KRB5 */ #endif /* KERBEROS */ hp = gethostbyname(host); @@ -544,6 +545,12 @@ char *host; } #ifdef KERBEROS + hostname = malloc(strlen(hp->h_name)+1); + if (!hostname) { + sprintf(ErrMsg, "Couldn't allocate space for hostname"); + return(NOTOK); + } + strcpy(hostname, hp->h_name); sp = getservbyname(KPOP_SERVICE, "tcp"); #else sp = getservbyname("pop", "tcp"); @@ -580,8 +587,8 @@ char *host; #ifdef KERBEROS #ifdef KRB4 ticket = (KTEXT) malloc(sizeof(KTEXT_ST)); - rem = krb_sendauth(0L, s, ticket, POP_SNAME, hp->h_name, - (char *) krb_realmofhost(hp->h_name), + rem = krb_sendauth(0L, s, ticket, POP_SNAME, hostname, + (char *) krb_realmofhost(hostname), (unsigned long)0, &msg_data, &cred, schedule, (struct sockaddr_in *)0, (struct sockaddr_in *)0, @@ -605,14 +612,7 @@ char *host; goto krb5error; } -#if 0 - /* lower-case to get name for "instance" part of service name */ - for (cp = hp->h_name; *cp; cp++) - if (isupper(*cp)) - *cp = tolower(*cp); -#endif - - if (retval = krb5_sname_to_principal(hp->h_name, POP_SNAME, + if (retval = krb5_sname_to_principal(hostname, POP_SNAME, KRB5_NT_SRV_HST, &server)) { goto krb5error; } @@ -640,6 +640,7 @@ char *host; return(NOTOK); } #endif /* KRB5 */ + free(hostname); #endif /* KERBEROS */ sfi = fdopen(s, "r"); |