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>maint
							parent
							
								
									4eba0f3763
								
							
						
					
					
						commit
						adc3dbca1a
					
				
							
								
								
									
										10
									
								
								ident.c
								
								
								
								
							
							
						
						
									
										10
									
								
								ident.c
								
								
								
								
							|  | @ -8,6 +8,7 @@ | ||||||
| #include "cache.h" | #include "cache.h" | ||||||
|  |  | ||||||
| #include <pwd.h> | #include <pwd.h> | ||||||
|  | #include <netdb.h> | ||||||
|  |  | ||||||
| static char git_default_date[50]; | static char git_default_date[50]; | ||||||
|  |  | ||||||
|  | @ -64,9 +65,16 @@ int setup_ident(void) | ||||||
| 	git_default_email[len++] = '@'; | 	git_default_email[len++] = '@'; | ||||||
| 	gethostname(git_default_email + len, sizeof(git_default_email) - len); | 	gethostname(git_default_email + len, sizeof(git_default_email) - len); | ||||||
| 	if (!strchr(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); | 		len = strlen(git_default_email); | ||||||
| 		git_default_email[len++] = '.'; | 		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 */ | 	/* And set the default date */ | ||||||
| 	datestamp(git_default_date, sizeof(git_default_date)); | 	datestamp(git_default_date, sizeof(git_default_date)); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Petr Baudis
						Petr Baudis