Example #1
0
static int
http_date_parse_format_imf_fixdate(struct http_date_parser *parser)
{
	/*
	 IMF-fixdate  = day-name "," SP date1 SP time-of-day SP GMT
		            ; fixed length/zone/capitalization subset of the format
		            ; see Section 3.3 of [RFC5322]
	 date1        = day SP month SP year
	              ; e.g., 02 Jun 1982
	 
	 Remaining: 	 {...} SP day SP month SP year SP time-of-day SP GMT

	 */

	/* SP day */
	if (http_date_parse_sp(parser) <= 0)
		return -1;
	if (http_date_parse_day(parser) <= 0)
		return -1;

	/* SP month */
	if (http_date_parse_sp(parser) <= 0)
		return -1;
	if (http_date_parse_month(parser) <= 0)
		return -1;

	/* SP year */
	if (http_date_parse_sp(parser) <= 0)
		return -1;
	if (http_date_parse_year(parser) <= 0)
		return -1;

	/* SP time-of-day SP GMT */
	return http_date_parse_time_gmt(parser);
}
Example #2
0
static int
http_date_parse_format_rfc1123(struct http_date_parser *parser)
{
    /*
     rfc1123-date = day-name "," SP date1 SP time-of-day SP GMT
                    ; fixed length subset of the format defined in
                    ; Section 5.2.14 of [RFC1123]
     date1        = day SP month SP year
                    ; e.g., 02 Jun 1982

     Remaining: 	 {...} SP day SP month SP year SP time-of-day SP GMT

     */

    /* SP day */
    if (http_date_parse_sp(parser) <= 0)
        return -1;
    if (http_date_parse_day(parser) <= 0)
        return -1;

    /* SP month */
    if (http_date_parse_sp(parser) <= 0)
        return -1;
    if (http_date_parse_month(parser) <= 0)
        return -1;

    /* SP year */
    if (http_date_parse_sp(parser) <= 0)
        return -1;
    if (http_date_parse_year(parser) <= 0)
        return -1;

    /* SP time-of-day SP GMT */
    return http_date_parse_time_gmt(parser);
}
Example #3
0
static int
http_date_parse_format_asctime(struct http_date_parser *parser)
{
	int ret;

	/*
	 asctime-date = day-name SP date3 SP time-of-day SP year
	 date3        = month SP ( 2DIGIT / ( SP 1DIGIT ))
		              ; month day (e.g., Jun  2)

	 Remaining: {...} month SP ( 2DIGIT / ( SP 1DIGIT )) SP time-of-day SP year
	*/

	/* month */
	if (http_date_parse_month(parser) <= 0)
		return -1;

	/* SP */
	if (http_date_parse_sp(parser) <= 0)
		return -1;

	/* SP 1DIGIT / 2DIGIT */
	if ((ret=http_date_parse_sp(parser)) < 0)
		return -1;
	if (ret == 0) {
		if (http_date_parse_number(parser, 2, &parser->tm.tm_mday) <= 0)
			return -1;
	} else {
		if (http_date_parse_number(parser, 1, &parser->tm.tm_mday) <= 0)
			return -1;
	}

	/* SP time-of-day */
	if (http_date_parse_sp(parser) <= 0)
		return -1;
	if (http_date_parse_time_of_day(parser) <= 0)
		return -1;

	/* SP year */
	if (http_date_parse_sp(parser) <= 0)
		return -1;

	return http_date_parse_year(parser);
}