diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2002-07-16 06:44:13 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2002-07-16 06:44:13 +0800 |
commit | c3e9ea3409f0e27998452cf05825841af46ac10d (patch) | |
tree | 9d068faa24ace52827ec087f69afc701b1d212fe /camel | |
parent | 657d503f0b5e7ed268b99b70a7769fbd72543550 (diff) | |
download | gsoc2013-evolution-c3e9ea3409f0e27998452cf05825841af46ac10d.tar gsoc2013-evolution-c3e9ea3409f0e27998452cf05825841af46ac10d.tar.gz gsoc2013-evolution-c3e9ea3409f0e27998452cf05825841af46ac10d.tar.bz2 gsoc2013-evolution-c3e9ea3409f0e27998452cf05825841af46ac10d.tar.lz gsoc2013-evolution-c3e9ea3409f0e27998452cf05825841af46ac10d.tar.xz gsoc2013-evolution-c3e9ea3409f0e27998452cf05825841af46ac10d.tar.zst gsoc2013-evolution-c3e9ea3409f0e27998452cf05825841af46ac10d.zip |
Try to get the FQDN from the results of gethostname(). If that fails, then
2002-07-15 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_msgid_generate): Try to get the FQDN
from the results of gethostname(). If that fails, then fall back
to the results gotten from gethostname() or if that fails just use
"localhost.localdomain". Addresses bug #17416.
(header_decode_param): Protect against a NULL value.
svn path=/trunk/; revision=17470
Diffstat (limited to 'camel')
-rw-r--r-- | camel/ChangeLog | 6 | ||||
-rw-r--r-- | camel/camel-mime-utils.c | 29 |
2 files changed, 26 insertions, 9 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 0792c232e2..714f8aa6a3 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,5 +1,11 @@ 2002-07-15 Jeffrey Stedfast <fejj@ximian.com> + * camel-mime-utils.c (header_msgid_generate): Try to get the FQDN + from the results of gethostname(). If that fails, then fall back + to the results gotten from gethostname() or if that fails just use + "localhost.localdomain". Addresses bug #17416. + (header_decode_param): Protect against a NULL value. + * providers/smtp/camel-smtp-transport.c (smtp_data): Get rid of the constant 'required' variable, just use the value when calling set_best_encoding. diff --git a/camel/camel-mime-utils.c b/camel/camel-mime-utils.c index 581fd1bff4..1f3c10cfc6 100644 --- a/camel/camel-mime-utils.c +++ b/camel/camel-mime-utils.c @@ -53,6 +53,7 @@ #include "camel-mime-utils.h" #include "camel-charset-map.h" +#include "camel-service.h" /* for camel_gethostbyname() */ #ifdef ENABLE_THREADS #include <pthread.h> @@ -1991,7 +1992,8 @@ header_decode_param (const char **in, char **paramp, char **valuep, int *is_rfc2 gboolean is_rfc2184_encoded = FALSE; gboolean is_rfc2184 = FALSE; const char *inptr = *in; - char *param, *value = NULL; + char *param = NULL; + char *value = NULL; *is_rfc2184_param = FALSE; *rfc2184_part = -1; @@ -2002,7 +2004,7 @@ header_decode_param (const char **in, char **paramp, char **valuep, int *is_rfc2 inptr++; value = header_decode_value (&inptr); - if (is_rfc2184) { + if (value && is_rfc2184) { /* We have ourselves an rfc2184 parameter */ if (*rfc2184_part == -1) { @@ -3699,7 +3701,6 @@ header_raw_clear(struct _header_raw **list) char * header_msgid_generate (void) { - char host[MAXHOSTNAMELEN]; #ifdef ENABLE_THREADS static pthread_mutex_t count_lock = PTHREAD_MUTEX_INITIALIZER; #define COUNT_LOCK() pthread_mutex_lock (&count_lock) @@ -3708,18 +3709,28 @@ header_msgid_generate (void) #define COUNT_LOCK() #define COUNT_UNLOCK() #endif /* ENABLE_THREADS */ + char host[MAXHOSTNAMELEN]; + struct hostent *h = NULL; static int count = 0; - int hrv; - char *ret; + char *msgid; + int retval; - hrv = gethostname (host, sizeof (host)); + retval = gethostname (host, sizeof (host)); + + if (retval == 0 && *host) + h = camel_gethostbyname (host, NULL); + else + host[0] = '\0'; COUNT_LOCK (); - ret = g_strdup_printf ("%d.%d.%d.camel@%s", (gint) time (NULL), getpid (), count++, - (hrv == 0 && host && *host) ? host : "unknown.host"); + msgid = g_strdup_printf ("%d.%d.%d.camel@%s", (int) time (NULL), getpid (), count++, + h ? h->h_name : (*host ? host : "localhost.localdomain")); COUNT_UNLOCK (); - return ret; + if (h) + camel_free_host (h); + + return msgid; } |