You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Ruediger Pluem <rp...@apache.org> on 2007/03/12 21:38:34 UTC

Re: svn commit: r517238 - in /httpd/httpd/trunk: CHANGES modules/http/http_etag.c


On 03/12/2007 04:05 PM, jorton@apache.org wrote:
> Author: jorton
> Date: Mon Mar 12 08:05:50 2007
> New Revision: 517238
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=517238
> Log:
> Generate etags consistently across 32-bit and 64-bit platforms:
> 
> * modules/http/http_etag.c (etag_uint64_to_hex): Renamed from
> etag_ulong_to_hex; take an apr_uint64_t argument.
> (ap_make_etag): Adjust to use new function and macro names.
> Pass arguments directly to etag_uint64_to_hex without casting
> down to unsigned long.
> 
> PR: 40064
> 
> Modified:
>     httpd/httpd/trunk/CHANGES
>     httpd/httpd/trunk/modules/http/http_etag.c
> 


> Modified: httpd/httpd/trunk/modules/http/http_etag.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http/http_etag.c?view=diff&rev=517238&r1=517237&r2=517238
> ==============================================================================
> --- httpd/httpd/trunk/modules/http/http_etag.c (original)
> +++ httpd/httpd/trunk/modules/http/http_etag.c Mon Mar 12 08:05:50 2007
> @@ -28,16 +28,16 @@
>  #include "http_protocol.h"   /* For index_of_response().  Grump. */
>  #include "http_request.h"
>  
> -/* Generate the human-readable hex representation of an unsigned long
> - * (basically a faster version of 'sprintf("%lx")')
> +/* Generate the human-readable hex representation of an apr_uint64_t
> + * (basically a faster version of 'sprintf("%llx")')
>   */
>  #define HEX_DIGITS "0123456789abcdef"
> -static char *etag_ulong_to_hex(char *next, unsigned long u)
> +static char *etag_uint64_to_hex(char *next, apr_uint64_t u)
>  {
>      int printing = 0;
>      int shift = sizeof(unsigned long) * 8 - 4;

Shouldn't this be

int shift = sizeof(apr_uint64_t) * 8 - 4;

instead of the above?

Regards

RĂ¼diger


Re: svn commit: r517238 - in /httpd/httpd/trunk: CHANGES modules/http/http_etag.c

Posted by Joe Orton <jo...@redhat.com>.
On Mon, Mar 12, 2007 at 09:38:34PM +0100, Ruediger Pluem wrote:
> On 03/12/2007 04:05 PM, jorton@apache.org wrote:
...
> > + * (basically a faster version of 'sprintf("%llx")')
> >   */
> >  #define HEX_DIGITS "0123456789abcdef"
> > -static char *etag_ulong_to_hex(char *next, unsigned long u)
> > +static char *etag_uint64_to_hex(char *next, apr_uint64_t u)
> >  {
> >      int printing = 0;
> >      int shift = sizeof(unsigned long) * 8 - 4;
> 
> Shouldn't this be
> 
> int shift = sizeof(apr_uint64_t) * 8 - 4;
> 
> instead of the above?

It should indeed!  Good catch, thanks - fixed in r517654.

joe