multipart.h (1015B)
1 #ifndef MULTIPART_H 2 #define MULTIPART_H 3 4 #include <limits.h> 5 #include <sys/types.h> 6 7 #define MULTIPART_OK 0 8 #define MULTIPART_ERROR -1 9 #define MULTIPART_MISSING_CONTENT_TYPE -2 10 #define MULTIPART_INVALID_CONTENT_TYPE -3 11 #define MULTIPART_MISSING_BOUNDARY -4 12 #define MULTIPART_INVALID_BOUNDARY -5 13 #define MULTIPART_MISSING_LENGTH -6 14 #define MULTIPART_INVALID_LENGTH -7 15 #define MULTIPART_TOO_LARGE -8 16 #define MULTIPART_MALFORMED -9 17 #define MULTIPART_MISSING_FILENAME -10 18 #define MULTIPART_MULTIPLE_FILES -11 19 20 struct multipart_request { 21 off_t length; 22 char boundary[128]; 23 }; 24 25 struct multipart_part { 26 char filename[NAME_MAX + 1]; 27 off_t offset; 28 off_t length; 29 }; 30 31 int multipart_parse_request(struct multipart_request *); 32 int multipart_spool_request(int, off_t); 33 int multipart_extract_part(int, 34 const struct multipart_request *, 35 struct multipart_part *); 36 int multipart_copy_part(int, 37 const struct multipart_part *, 38 int); 39 40 #endif