From 1f73bf3ba08bb281057a6c79a70b84c4547ab15a Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Thu, 30 Mar 2000 16:40:33 +0000 Subject: Add a htons in the default_number case, and document the fact that the * camel-service.c (camel_service_getport): Add a htons in the default_number case, and document the fact that the function returns the port in network byte order. * providers/pop3/camel-pop3-store.c (pop3_connect): Revert Miguel's change. The port number bug was actually somewhere else, and the IP address copying code was fine already. svn path=/trunk/; revision=2256 --- camel/ChangeLog | 10 ++++++++++ camel/camel-service.c | 6 +++--- camel/providers/pop3/camel-pop3-store.c | 9 ++------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/camel/ChangeLog b/camel/ChangeLog index 4cc6e9d281..31ef332e00 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,13 @@ +2000-03-30 Dan Winship + + * camel-service.c (camel_service_getport): Add a htons in the + default_number case, and document the fact that the function + returns the port in network byte order. + + * providers/pop3/camel-pop3-store.c (pop3_connect): Revert + Miguel's change. The port number bug was actually somewhere + else, and the IP address copying code was fine already. + 2000-03-29 Miguel de Icaza * providers/pop3/camel-pop3-store.c (pop3_connect): Add htons diff --git a/camel/camel-service.c b/camel/camel-service.c index 01b72e1a70..b9ed7e5c96 100644 --- a/camel/camel-service.c +++ b/camel/camel-service.c @@ -476,8 +476,8 @@ camel_service_gethost (CamelService *service, CamelException *ex) * based on the service's URL (which may contain either a numeric * or symbolic port name) and the provided defaults. * - * Return value: a port number, or -1 if the user specified a port name - * that could not be resolved. + * Return value: a port number (in network byte order), or -1 if the + * user specified a port name that could not be resolved. **/ int camel_service_getport (CamelService *service, char *default_port, @@ -504,5 +504,5 @@ camel_service_getport (CamelService *service, char *default_port, "Unknown port `%s'", port); return -1; } else - return default_number; + return htons (default_number); } diff --git a/camel/providers/pop3/camel-pop3-store.c b/camel/providers/pop3/camel-pop3-store.c index b41c27b0aa..543a6ce532 100644 --- a/camel/providers/pop3/camel-pop3-store.c +++ b/camel/providers/pop3/camel-pop3-store.c @@ -233,13 +233,8 @@ pop3_connect (CamelService *service, CamelException *ex) } sin.sin_family = h->h_addrtype; - sin.sin_port = htons (port); - - /* - * We copy only 4 bytes, as we can not trust h->h_length, as it - * comes from the DNS and might have been tampered with. - */ - memcpy (&sin.sin_addr, h->h_addr, 4); + sin.sin_port = port; + memcpy (&sin.sin_addr, h->h_addr, sizeof (sin.sin_addr)); fd = socket (h->h_addrtype, SOCK_STREAM, 0); if (fd == -1 || -- cgit