00001
00002
00003
00004
00005 #ifndef __FORMDATA_H
00006 #define __FORMDATA_H
00007
00008 enum formtype {
00009 FORM_DATA,
00010 FORM_CONTENT,
00011 FORM_FILE
00012 };
00013
00014 struct FormData {
00015 struct FormData *next;
00016 enum formtype type;
00017 char *line;
00018 size_t length;
00019 };
00020
00021 struct Form {
00022 struct FormData *data;
00023 size_t sent;
00024 FILE *fp;
00025 };
00026
00027 typedef struct FormInfo {
00028 char *name;
00029 bool name_alloc;
00030 size_t namelength;
00031 char *value;
00032 bool value_alloc;
00033 size_t contentslength;
00034 char *contenttype;
00035 bool contenttype_alloc;
00036 long flags;
00037 char *buffer;
00038 size_t bufferlength;
00039 char *showfilename;
00040 bool showfilename_alloc;
00041 struct curl_slist* contentheader;
00042 struct FormInfo *more;
00043 } FormInfo;
00044
00045 int Curl_FormInit(struct Form *form, struct FormData *formdata );
00046
00047 CURLcode
00048 Curl_getFormData(struct FormData **,
00049 struct curl_httppost *post,
00050 const char *custom_contenttype,
00051 curl_off_t *size);
00052
00053 size_t Curl_FormReader(char *buffer,
00054 size_t size,
00055 size_t nitems,
00056 FILE *mydata);
00057
00058 char *Curl_formpostheader(void *formp, size_t *len);
00059
00060 char *Curl_FormBoundary(void);
00061
00062 void Curl_formclean(struct FormData **);
00063
00064 CURLcode Curl_formconvert(struct SessionHandle *, struct FormData *);
00065
00066 #endif
00067