--- sendmail-8.8.8/src/usersmtp.c 1998/01/10 13:21:15 1.1 +++ sendmail-8.8.8/src/usersmtp.c 1998/01/11 04:32:49 1.2 @@ -91,6 +91,7 @@ register char *p; extern void esmtp_check(); extern void helo_options(); + char *me_hostname; if (tTd(18, 1)) { @@ -162,10 +163,25 @@ mci->mci_flags |= MCIF_ESMTP; tryhelo: + { + struct sockaddr_in sockaddr; + struct hostent *hostent; + + SOCKADDR_LEN_T socklen = sizeof sockaddr; + + (void) getsockname( fileno( mci->mci_out ), + (struct sockaddr *) &sockaddr, &socklen); + hostent = sm_gethostbyaddr( (char *) & sockaddr.sin_addr, + sizeof( sockaddr.sin_addr), + AF_INET ); + me_hostname = + (hostent == NULL) ? + ( (char *)inet_ntoa( sockaddr.sin_addr )): ( hostent -> h_name ); + } #if _FFR_LMTP if (bitnset(M_LMTP, m->m_flags)) { - smtpmessage("LHLO %s", m, mci, MyHostName); + smtpmessage("LHLO %s", m, mci, me_hostname); SmtpPhase = mci->mci_phase = "client LHLO"; } else if (bitset(MCIF_ESMTP, mci->mci_flags)) @@ -173,12 +189,12 @@ if (bitset(MCIF_ESMTP, mci->mci_flags)) #endif { - smtpmessage("EHLO %s", m, mci, MyHostName); + smtpmessage("EHLO %s", m, mci, me_hostname); SmtpPhase = mci->mci_phase = "client EHLO"; } else { - smtpmessage("HELO %s", m, mci, MyHostName); + smtpmessage("HELO %s", m, mci, me_hostname); SmtpPhase = mci->mci_phase = "client HELO"; } setproctitle("%s %s: %s", e->e_id, CurHostName, mci->mci_phase);