00001
00002
00003
00004
00005 #ifndef __HTTP_CHUNKS_H
00006 #define __HTTP_CHUNKS_H
00007
00008 #define MAXNUM_SIZE 16
00009
00010 typedef enum {
00011 CHUNK_FIRST,
00012
00013
00014 CHUNK_HEX,
00015
00016
00017 CHUNK_POSTHEX,
00018
00019
00020 CHUNK_CR,
00021
00022
00023 CHUNK_DATA,
00024
00025
00026 CHUNK_POSTCR,
00027
00028
00029 CHUNK_POSTLF,
00030
00031
00032 CHUNK_STOPCR,
00033
00034
00035 CHUNK_STOP,
00036
00037
00038 CHUNK_TRAILER,
00039
00040
00041 CHUNK_TRAILER_CR,
00042
00043
00044 CHUNK_TRAILER_POSTCR,
00045
00046 CHUNK_LAST
00047
00048 } ChunkyState;
00049
00050 typedef enum {
00051 CHUNKE_STOP = -1,
00052 CHUNKE_OK = 0,
00053 CHUNKE_TOO_LONG_HEX = 1,
00054 CHUNKE_ILLEGAL_HEX,
00055 CHUNKE_BAD_CHUNK,
00056 CHUNKE_WRITE_ERROR,
00057 CHUNKE_STATE_ERROR,
00058 CHUNKE_BAD_ENCODING,
00059 CHUNKE_OUT_OF_MEMORY,
00060 CHUNKE_LAST
00061 } CHUNKcode;
00062
00063 struct Curl_chunker {
00064 char hexbuffer[ MAXNUM_SIZE + 1];
00065 int hexindex;
00066 ChunkyState state;
00067 size_t datasize;
00068 size_t dataleft;
00069 };
00070
00071 #endif