2
0
Fork 0
lighttpd2/include/lighttpd/http_range_parser.h

32 lines
803 B
C

#ifndef _LIGHTTPD_HTTP_RANGE_PARSER_H_
#define _LIGHTTPD_HTTP_RANGE_PARSER_H_
#include <lighttpd/base.h>
typedef struct {
/* public */
gboolean last_range;
goffset range_start, range_length, range_end; /* length = end - start + 1; */
/* private */
GString *data;
goffset limit; /* "file size" */
gboolean found_valid_range;
int cs;
gchar *data_pos;
} liParseHttpRangeState;
typedef enum {
LI_PARSE_HTTP_RANGE_OK,
LI_PARSE_HTTP_RANGE_DONE,
LI_PARSE_HTTP_RANGE_INVALID,
LI_PARSE_HTTP_RANGE_NOT_SATISFIABLE
} liParseHttpRangeResult;
LI_API void li_parse_http_range_init(liParseHttpRangeState* s, GString *range_str, goffset limit);
LI_API liParseHttpRangeResult li_parse_http_range_next(liParseHttpRangeState* s);
LI_API void li_parse_http_range_clear(liParseHttpRangeState* s);
#endif