threads / patch / 2173

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

Subject: [PATCH] Use sensible domain name (the DNS one) when guessing ident information

## tl;dr

One message between Oct 21, 2005 and Oct 21, 2005. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Petr Baudis· Oct 21, 2005, 01:57 UTC · lore

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>
---
 ident.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
Show changes to ident.c +9 −1
diff --git a/ident.c b/ident.c
index 06d0e6c..bc89e1d 100644
--- a/ident.c
+++ b/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));

← back to recent threads