Use sensible domain name (the DNS one) when guessing ident information

Currently, the code would use getdomainname() call, which however returns
something usually unset and not necessarily related at all to the DNS
domain name (it seems to be mostly some scary NIS/YP thing).

This patch changes the code to actually use the DNS domain name, which is
also what tends to be used in emails, and we aim at emails with our ident
code.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Petr Baudis 2005-10-21 03:57:39 +02:00 коммит произвёл Junio C Hamano
Родитель 4eba0f3763
Коммит adc3dbca1a
1 изменённых файлов: 9 добавлений и 1 удалений

10
ident.c
Просмотреть файл

@ -8,6 +8,7 @@
#include "cache.h"
#include <pwd.h>
#include <netdb.h>
static char git_default_date[50];
@ -64,9 +65,16 @@ int setup_ident(void)
git_default_email[len++] = '@';
gethostname(git_default_email + len, sizeof(git_default_email) - len);
if (!strchr(git_default_email+len, '.')) {
struct hostent *he = gethostbyname(git_default_email + len);
char *domainname;
len = strlen(git_default_email);
git_default_email[len++] = '.';
getdomainname(git_default_email+len, sizeof(git_default_email)-len);
if (he && (domainname = strchr(he->h_name, '.')))
strncpy(git_default_email + len, domainname + 1, sizeof(git_default_email) - len);
else
strncpy(git_default_email + len, "(none)", sizeof(git_default_email) - len);
git_default_email[sizeof(git_default_email) - 1] = 0;
}
/* And set the default date */
datestamp(git_default_date, sizeof(git_default_date));