You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Ian Holsman <Ia...@cnet.com> on 2001/06/06 23:10:37 UTC

RE: cvs commit: apr-util/test testdate.c

should apr_checkmask be called apr_date_checkmask?

mod_proxy uses it to do ap_checkmask(buf, "HTTP/#.# ###*")

> -----Original Message-----
> From: jerenkrantz@apache.org [mailto:jerenkrantz@apache.org]
> Sent: Tuesday, June 05, 2001 4:38 PM
> To: apr-util-cvs@apache.org
> Subject: cvs commit: apr-util/test testdate.c
> 
> 
> jerenkrantz    01/06/05 16:38:20
> 
>   Modified:    include  apr_date.h apu_compat.h
>                misc     apr_date.c
>                test     testdate.c
>   Log:
>   Per Dean Gaudet's suggestion:
>   apr_parseHTTPdate -> apr_date_parse_http
>   
>   This makes the date functions fall in line with other APR 
> functions which
>   is a good thing.
>   
>   Revision  Changes    Path
>   1.3       +6 -6      apr-util/include/apr_date.h
>   
>   Index: apr_date.h
>   ===================================================================
>   RCS file: /home/cvs/apr-util/include/apr_date.h,v
>   retrieving revision 1.2
>   retrieving revision 1.3
>   diff -u -r1.2 -r1.3
>   --- apr_date.h	2001/05/31 04:54:00	1.2
>   +++ apr_date.h	2001/06/05 23:38:16	1.3
>   @@ -92,7 +92,7 @@
>     * @return 1 if the string matches, 0 otherwise
>     * @deffunc int apr_checkmask(const char *data, const char *mask)
>     */
>   -APU_DECLARE(int) apr_checkmask(const char *data, const char *mask);
>   +APU_DECLARE(int) apr_date_checkmask(const char *data, 
> const char *mask);
>    
>    /**
>     * Parses an HTTP date in one of three standard forms:
>   @@ -104,14 +104,14 @@
>     * @param date The date in one of the three formats above
>     * @return the apr_time_t number of microseconds since 1 
> Jan 1970 GMT, or
>     *         0 if this would be out of range or if the date 
> is invalid.
>   - * @deffunc apr_time_t apr_parseHTTPdate(const char *date)
>   + * @deffunc apr_time_t apr_date_parse_http(const char *date)
>     */
>   -APU_DECLARE(apr_time_t) apr_parseHTTPdate(const char *date);
>   +APU_DECLARE(apr_time_t) apr_date_parse_http(const char *date);
>    
>    /**
>     * Parses a string resembling an RFC 822 date.  This is meant to be
>     * leinent in its parsing of dates.  Hence, this will 
> parse a wider 
>   - * range of dates than apr_parseHTTPdate.
>   + * range of dates than apr_date_parse_http.
>     *
>     * The prominent mailer (or poster, if mailer is unknown) that has
>     * been seen in the wild is included for the unknown formats.
>   @@ -131,9 +131,9 @@
>     * @param date The date in one of the formats above
>     * @return the apr_time_t number of microseconds since 1 
> Jan 1970 GMT, or
>     *         0 if this would be out of range or if the date 
> is invalid.
>   - * @deffunc apr_time_t apr_parseRFCdate(char *date)
>   + * @deffunc apr_time_t apr_date_parse_rfc(char *date)
>     */
>   -APU_DECLARE(apr_time_t) apr_parseRFCdate(char *date);
>   +APU_DECLARE(apr_time_t) apr_date_parse_rfc(char *date);
>    
>    #ifdef __cplusplus
>    }
>   
>   
>   
>   1.6       +6 -0      apr-util/include/apu_compat.h
>   
>   Index: apu_compat.h
>   ===================================================================
>   RCS file: /home/cvs/apr-util/include/apu_compat.h,v
>   retrieving revision 1.5
>   retrieving revision 1.6
>   diff -u -r1.5 -r1.6
>   --- apu_compat.h	2001/02/24 14:17:25	1.5
>   +++ apu_compat.h	2001/06/05 23:38:17	1.6
>   @@ -74,6 +74,12 @@
>    #define ap_show_hook apr_show_hook
>    
>    /* 
> --------------------------------------------------------------------
>   + * the following symbols were moved from 
> httpd-2.0/.../util_date.[ch]
>   + */
>   +#define ap_parseHTTPdate apr_date_parse_http
>   +#define ap_checkmask apr_date_checkmask
>   +
>   +/* 
> --------------------------------------------------------------------
>     * the following symbols were moved from 
> httpd-2.0/.../util_xml.[ch]
>     */
>    #define ap_text apr_text
>   
>   
>   
>   1.3       +28 -24    apr-util/misc/apr_date.c
>   
>   Index: apr_date.c
>   ===================================================================
>   RCS file: /home/cvs/apr-util/misc/apr_date.c,v
>   retrieving revision 1.2
>   retrieving revision 1.3
>   diff -u -r1.2 -r1.3
>   --- apr_date.c	2001/05/31 04:54:06	1.2
>   +++ apr_date.c	2001/06/05 23:38:18	1.3
>   @@ -90,7 +90,7 @@
>     *   * - swallow remaining characters 
>     *  <x> - exact match for any other character
>     */
>   -APU_DECLARE(int) apr_checkmask(const char *data, const char *mask)
>   +APU_DECLARE(int) apr_date_checkmask(const char *data, 
> const char *mask)
>    {
>        int i;
>        char d;
>   @@ -180,7 +180,7 @@
>     * but many changes since then.
>     *
>     */
>   -APU_DECLARE(apr_time_t) apr_parseHTTPdate(const char *date)
>   +APU_DECLARE(apr_time_t) apr_date_parse_http(const char *date)
>    {
>        apr_exploded_time_t ds;
>        apr_time_t result;
>   @@ -211,7 +211,7 @@
>    
>        /* start of the actual date information for all 4 formats. */
>    
>   -    if (apr_checkmask(date, "## @$$ #### ##:##:## *")) {
>   +    if (apr_date_checkmask(date, "## @$$ #### ##:##:## *")) {
>            /* RFC 1123 format with two days */
>            ds.tm_year = ((date[7] - '0') * 10 + (date[8] - 
> '0') - 19) * 100;
>            if (ds.tm_year < 0)
>   @@ -224,7 +224,8 @@
>            monstr = date + 3;
>            timstr = date + 12;
>        }
>   -    else if (apr_checkmask(date, "##-@$$-## ##:##:## *")) 
> { /* RFC 850 format */
>   +    else if (apr_date_checkmask(date, "##-@$$-## ##:##:## *")) { 
>   +        /* RFC 850 format */
>            ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
>            if (ds.tm_year < 70)
>                ds.tm_year += 100;
>   @@ -234,7 +235,8 @@
>            monstr = date + 3;
>            timstr = date + 10;
>        }
>   -    else if (apr_checkmask(date, "@$$ ~# ##:##:## ####*")) 
> {/* asctime format */
>   +    else if (apr_date_checkmask(date, "@$$ ~# ##:##:## ####*")) {
>   +        /* asctime format */
>            ds.tm_year = ((date[16] - '0') * 10 + (date[17] - 
> '0') - 19) * 100;
>            if (ds.tm_year < 0) 
>                return APR_DATE_BAD;
>   @@ -251,7 +253,7 @@
>            monstr = date;
>            timstr = date + 7;
>        }
>   -    else if (apr_checkmask(date, "# @$$ #### ##:##:## *")) {
>   +    else if (apr_date_checkmask(date, "# @$$ #### ##:##:## *")) {
>            /* RFC 1123 format with one day */
>            ds.tm_year = ((date[6] - '0') * 10 + (date[7] - 
> '0') - 19) * 100;
>            if (ds.tm_year < 0)
>   @@ -319,7 +321,7 @@
>    /*
>     * Parses a string resembling an RFC 822 date.  This is meant to be
>     * leinent in its parsing of dates.  Hence, this will 
> parse a wider 
>   - * range of dates than apr_parseHTTPdate.
>   + * range of dates than apr_date_parse_http.
>     *
>     * The prominent mailer (or poster, if mailer is unknown) that has
>     * been seen in the wild is included for the unknown formats.
>   @@ -336,7 +338,7 @@
>     *     Sun, 6 Nov 94 8:49:37 GMT      ; Unknown [Elm 70.85] 
>     *
>     */
>   -APU_DECLARE(apr_time_t) apr_parseRFCdate(char *date)
>   +APU_DECLARE(apr_time_t) apr_date_parse_rfc(char *date)
>    {
>        apr_exploded_time_t ds;
>        apr_time_t result;
>   @@ -369,7 +371,7 @@
>            ++date;    /* Now pointing to first char after 
> space, which should be */    }
>    
>        /* start of the actual date information for all 11 formats. */
>   -    if (apr_checkmask(date, "## @$$ #### ##:##:## *")) {   
> /* RFC 1123 format */
>   +    if (apr_date_checkmask(date, "## @$$ #### ##:##:## 
> *")) {   /* RFC 1123 format */
>            ds.tm_year = ((date[7] - '0') * 10 + (date[8] - 
> '0') - 19) * 100;
>    
>            if (ds.tm_year < 0)
>   @@ -382,7 +384,7 @@
>            monstr = date + 3;
>            timstr = date + 12;
>        }
>   -    else if (apr_checkmask(date, "##-@$$-## ##:##:## *")) 
> {/* RFC 850 format  */
>   +    else if (apr_date_checkmask(date, "##-@$$-## ##:##:## 
> *")) {/* RFC 850 format  */
>            ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
>    
>            if (ds.tm_year < 70)
>   @@ -393,7 +395,8 @@
>            monstr = date + 3;
>            timstr = date + 10;
>        }
>   -    else if (apr_checkmask(date, "@$$ ~# ##:##:## ####*")) 
> {/* asctime format */
>   +    else if (apr_date_checkmask(date, "@$$ ~# ##:##:## ####*")) {
>   +        /* asctime format */
>            ds.tm_year = ((date[16] - '0') * 10 + (date[17] - 
> '0') - 19) * 100;
>            if (ds.tm_year < 0) 
>                return APR_DATE_BAD;
>   @@ -410,7 +413,8 @@
>            monstr = date;
>            timstr = date + 7;
>        }
>   -    else if (apr_checkmask(date, "# @$$ #### ##:##:## *")) 
> {/* RFC 1123 format*/
>   +    else if (apr_date_checkmask(date, "# @$$ #### ##:##:## *")) {
>   +        /* RFC 1123 format*/
>            ds.tm_year = ((date[6] - '0') * 10 + (date[7] - 
> '0') - 19) * 100;
>    
>            if (ds.tm_year < 0)
>   @@ -422,8 +426,8 @@
>            monstr = date + 2;
>            timstr = date + 11;
>        }
>   -    else if (apr_checkmask(date, "## @$$ ## ##:##:## *")) 
> {/* RFC 1123 format */
>   -        /* This is the old RFC date format - many many 
> years ago, people
>   +    else if (apr_date_checkmask(date, "## @$$ ## ##:##:## *")) {
>   +        /* This is the old RFC 1123 date format - many 
> many years ago, people
>             * used two-digit years.  Oh, how foolish.  */
>            ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
>    
>   @@ -436,8 +440,8 @@
>            timstr = date + 10;
>    
>        } 
>   -    else if (apr_checkmask(date, "# @$$ ## ##:##:## *")) 
> {/* RFC 1123 format */
>   -        /* This is the old RFC date format - many many 
> years ago, people
>   +    else if (apr_date_checkmask(date, "# @$$ ## ##:##:## *")) {
>   +        /* This is the old RFC 1123 date format - many 
> many years ago, people
>             * used two-digit years.  Oh, how foolish.  */
>            ds.tm_year = ((date[6] - '0') * 10) + (date[7] - '0');
>    
>   @@ -450,8 +454,8 @@
>            timstr = date + 9;
>    
>        } 
>   -    else if (apr_checkmask(date, "## @$$ ## ##:## *")) {   
>    /* Loser format */
>   -        /* This is quite bogus.  */
>   +    else if (apr_date_checkmask(date, "## @$$ ## ##:## *")) {
>   +        /* Loser format.  This is quite bogus.  */
>            ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
>    
>            if (ds.tm_year < 70)
>   @@ -464,8 +468,8 @@
>            timstr[6] = '0';
>            timstr[7] = '0';
>        } 
>   -    else if (apr_checkmask(date, "# @$$ ## ##:## *")) {    
>    /* Loser format */
>   -        /* This is quite bogus.  */
>   +    else if (apr_date_checkmask(date, "# @$$ ## ##:## *")) {
>   +        /* Loser format.  This is quite bogus.  */
>            ds.tm_year = ((date[6] - '0') * 10) + (date[7] - '0');
>    
>            if (ds.tm_year < 70)
>   @@ -479,8 +483,8 @@
>            timstr[6] = '0';
>            timstr[7] = '0';
>        }
>   -    else if (apr_checkmask(date, "## @$$ ## #:##:## *")) { 
>    /* Loser format */
>   -        /* This is quite bogus.  */
>   +    else if (apr_date_checkmask(date, "## @$$ ## #:##:## *")) {
>   +        /* Loser format.  This is quite bogus.  */
>            ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
>    
>            if (ds.tm_year < 70)
>   @@ -493,8 +497,8 @@
>    
>            timstr[0] = '0';
>        }
>   -    else if (apr_checkmask(date, "# @$$ ## #:##:## *")) {  
>    /* Loser format */
>   -        /* This is quite bogus.  */
>   +    else if (apr_date_checkmask(date, "# @$$ ## #:##:## *")) {
>   +         /* Loser format.  This is quite bogus.  */
>            ds.tm_year = ((date[6] - '0') * 10) + (date[7] - '0');
>    
>            if (ds.tm_year < 70)
>   
>   
>   
>   1.3       +3 -3      apr-util/test/testdate.c
>   
>   Index: testdate.c
>   ===================================================================
>   RCS file: /home/cvs/apr-util/test/testdate.c,v
>   retrieving revision 1.2
>   retrieving revision 1.3
>   diff -u -r1.2 -r1.3
>   --- testdate.c	2001/05/31 05:14:39	1.2
>   +++ testdate.c	2001/06/05 23:38:19	1.3
>   @@ -1,4 +1,4 @@
>   -/* This program tests the parseHTTPdate routine in 
> ../main/util_date.c.
>   +/* This program tests the date_parse_http routine in 
> ../main/util_date.c.
>     *
>     * It is only semiautomated in that I would run it, modify 
> the code to
>     * use a different algorithm or seed, recompile and run again, etc.
>   @@ -153,7 +153,7 @@
>            secstodate = year2secs[year - 1970] + offset;
>            gm_timestr_822(datestr, secstodate);
>            secstodate *= APR_USEC_PER_SEC;
>   -        newsecs = apr_parseHTTPdate(datestr);
>   +        newsecs = apr_date_parse_http(datestr);
>            if (secstodate == newsecs)
>                printf("Yes %4d %19lld %s\n", year, 
> secstodate, datestr);
>            else if (newsecs == APR_DATE_BAD)
>   @@ -172,7 +172,7 @@
>            secstodate = guess + offset;
>            gm_timestr_822(datestr, secstodate);
>            secstodate *= APR_USEC_PER_SEC;
>   -        newsecs = apr_parseHTTPdate(datestr);
>   +        newsecs = apr_date_parse_http(datestr);
>            if (secstodate == newsecs)
>                printf("Yes %" APR_TIME_T_FMT " %s\n", 
> secstodate, datestr);
>            else if (newsecs == APR_DATE_BAD)
>   
>   
>   
> 

Re: cvs commit: apr-util/test testdate.c

Posted by Ben Laurie <be...@algroup.co.uk>.
Justin Erenkrantz wrote:
> 
> On Sat, Jun 09, 2001 at 06:32:18PM +0100, Ben Laurie wrote:
> > Note that we're using doxygen now, which:
> >
> > a) Doesn't understand @deffunc
> >
> > b) Doesn't need it
> 
> So, should we remove all of these lines if they just add unnecessary
> work?  -- justin

Well, yeah, but you also need to add the stuff that doxygen needs (at
least, ideally).

Cheers,

Ben.

--
http://www.apache-ssl.org/ben.html

"There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit." - Robert Woodruff

Re: cvs commit: apr-util/test testdate.c

Posted by Justin Erenkrantz <je...@ebuilt.com>.
On Sat, Jun 09, 2001 at 06:32:18PM +0100, Ben Laurie wrote:
> Note that we're using doxygen now, which:
> 
> a) Doesn't understand @deffunc
> 
> b) Doesn't need it

So, should we remove all of these lines if they just add unnecessary
work?  -- justin


Re: cvs commit: apr-util/test testdate.c

Posted by Ben Laurie <be...@algroup.co.uk>.
Justin Erenkrantz wrote:
> 
> On Wed, Jun 06, 2001 at 05:34:42PM -0400, Cliff Woolley wrote:
> > On Wed, 6 Jun 2001, Ian Holsman wrote:
> >
> > > should apr_checkmask be called apr_date_checkmask?
> > >
> > > mod_proxy uses it to do ap_checkmask(buf, "HTTP/#.# ###*")
> >
> > > >     * @deffunc int apr_checkmask(const char *data, const char *mask)
> > > >     */
> > > >   -APU_DECLARE(int) apr_checkmask(const char *data, const char *mask);
> > > >   +APU_DECLARE(int) apr_date_checkmask(const char *data,
> >
> >
> > That's a good question.  Until we answer it, to be consistent, I fixed the
> > @deffunc docco to say "apr_date_checkmask" before I forgot about it.
> > (I attributed it to you because I wouldn't have spotted it if you
> > hadn't asked about the function. :-)
> >
> > I'm open to the possibility that apr_*_checkmask has more functionality
> > than just date masks, meaning it should have a more generic name...
> > anybody have an opinion one way or the other?
> 
> My bad.  I guess I missed that scandoc thing.  Thanks for catching it.

Note that we're using doxygen now, which:

a) Doesn't understand @deffunc

b) Doesn't need it

Cheers,

Ben.

--
http://www.apache-ssl.org/ben.html

"There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit." - Robert Woodruff

Re: cvs commit: apr-util/test testdate.c

Posted by Justin Erenkrantz <je...@ebuilt.com>.
On Wed, Jun 06, 2001 at 05:34:42PM -0400, Cliff Woolley wrote:
> On Wed, 6 Jun 2001, Ian Holsman wrote:
> 
> > should apr_checkmask be called apr_date_checkmask?
> >
> > mod_proxy uses it to do ap_checkmask(buf, "HTTP/#.# ###*")
> 
> > >     * @deffunc int apr_checkmask(const char *data, const char *mask)
> > >     */
> > >   -APU_DECLARE(int) apr_checkmask(const char *data, const char *mask);
> > >   +APU_DECLARE(int) apr_date_checkmask(const char *data,
> 
> 
> That's a good question.  Until we answer it, to be consistent, I fixed the
> @deffunc docco to say "apr_date_checkmask" before I forgot about it.
> (I attributed it to you because I wouldn't have spotted it if you
> hadn't asked about the function. :-)
> 
> I'm open to the possibility that apr_*_checkmask has more functionality
> than just date masks, meaning it should have a more generic name...
> anybody have an opinion one way or the other?

My bad.  I guess I missed that scandoc thing.  Thanks for catching it.

My sentiments are pretty much what Cliff said.  It is in the 
apr_date.c file, so I renamed it to apr_date_checkmask to be consistent.

If someone want to yank it out into another file, I'll accept
patches.  But, it'll require more changes to the DSPs - our favorite
thing to do.  -- justin


RE: cvs commit: apr-util/test testdate.c

Posted by Cliff Woolley <cl...@yahoo.com>.
On Wed, 6 Jun 2001, Ian Holsman wrote:

> should apr_checkmask be called apr_date_checkmask?
>
> mod_proxy uses it to do ap_checkmask(buf, "HTTP/#.# ###*")

> >     * @deffunc int apr_checkmask(const char *data, const char *mask)
> >     */
> >   -APU_DECLARE(int) apr_checkmask(const char *data, const char *mask);
> >   +APU_DECLARE(int) apr_date_checkmask(const char *data,


That's a good question.  Until we answer it, to be consistent, I fixed the
@deffunc docco to say "apr_date_checkmask" before I forgot about it.
(I attributed it to you because I wouldn't have spotted it if you
hadn't asked about the function. :-)

I'm open to the possibility that apr_*_checkmask has more functionality
than just date masks, meaning it should have a more generic name...
anybody have an opinion one way or the other?

--Cliff


--------------------------------------------------------------
   Cliff Woolley
   cliffwoolley@yahoo.com
   Charlottesville, VA