void MTD_FLASHMEM MultipartFormDataProcessor::handle_DecodingHeaders(char c) { static char const EOH[4] = {0x0D, 0x0A, 0x0D, 0x0A}; if (c == EOH[substate]) { ++substate; if (substate == 2) { // useful if this is not an EOH to separate headers headers->append(0x0D, 1); } else if (substate == 4) { // end of headers headers->append(0, 1); // add string terminating zero // look for "name" parameter CharChunksIterator keyBegin; extractParameter(FSTR(" name="), headers->getIterator(), &keyBegin, &nameBegin, &nameEnd); // look for "filename" parameter CharChunksIterator filenameBegin, filenameEnd; if (extractParameter(FSTR(" filename="), headers->getIterator(), &keyBegin, &filenameBegin, &filenameEnd)) { //// this is a file // add "filename" to form fields filenameBegin = getFilename(filenameBegin, filenameEnd); // some browsers send a full path instead of a simple file name (IE) formfields->add(keyBegin + 1, keyBegin + 9, filenameBegin, filenameEnd); // extract Content-Type parameter CharChunksIterator contentTypeBegin, contentTypeEnd; if (extractParameter(FSTR("Content-Type:"), filenameEnd, &keyBegin, &contentTypeBegin, &contentTypeEnd)) { // add "Content-Type" to form fields formfields->add(keyBegin, keyBegin + 12, contentTypeBegin, contentTypeEnd); // create file file.create(APtr<char>(t_strdup(filenameBegin, filenameEnd)).get(), APtr<char>(t_strdup(contentTypeBegin, contentTypeEnd)).get()); state = GettingFile; } else { // missing content-type, cannot get as file! state = GettingValue; } } else { //// this is a normal field valueStorage = chunksFactory.add(); state = GettingValue; } substate = 0; } } else { // add to headers buffer headers->append(c, HEADERS_CHUNK_SIZE); substate = 0; } }
void getCommandLineParams(t_Params *ptParams,int argc,char *argv[]) { char *szTemp = NULL; char *pcError = NULL; /*get parameter file name*/ ptParams->szDatFile = extractParameter(argc,argv,DAT_FILE,ALWAYS); if(ptParams->szDatFile == NULL) goto error; /*get output filestub*/ ptParams->szTreeFile = extractParameter(argc,argv,TREE_FILE, ALWAYS); if(ptParams->szTreeFile == NULL) goto error; ptParams->szMapFile = extractParameter(argc,argv,MAP_FILE, ALWAYS); if(ptParams->szMapFile == NULL) goto error; szTemp = extractParameter(argc,argv,SPLIT,ALWAYS); if(szTemp != NULL){ ptParams->nSplit = strtol(szTemp,&pcError,10); if(*pcError != '\0'){ goto error; } } else{ goto error; } szTemp = extractParameter(argc,argv,MIN_SIZE,ALWAYS); if(szTemp != NULL){ ptParams->nMinSize = strtol(szTemp,&pcError,10); if(*pcError != '\0'){ goto error; } } else{ goto error; } return; error: writeUsage(stdout); exit(EXIT_FAILURE); }
void getCommandLineParams(t_Params *ptParams,int argc,char *argv[]) { char *szTemp = NULL; char *cError = NULL; /*get parameter file name*/ ptParams->szInputFile = extractParameter(argc,argv, INPUT_FILE,ALWAYS); if(ptParams->szInputFile == NULL) goto error; if(szTemp = extractParameter(argc,argv, LOOKUP_FILE_FLAG, OPTION)){ ptParams->szLookUpFile = szTemp; } else{ ptParams->szLookUpFile = getenv("SEQ_LOOKUP_FILE"); if(ptParams->szLookUpFile == NULL){ ptParams->szLookUpFile = LOOKUP_FILE; } } /*identifiers*/ szTemp = extractParameter(argc, argv, IDENT, OPTION); if(szTemp != NULL){ ptParams->bIdent = TRUE; } else{ ptParams->bIdent = FALSE; } szTemp = extractParameter(argc, argv, PHYLIP, OPTION); if(szTemp != NULL){ ptParams->bPhylip = TRUE; } else{ ptParams->bPhylip = FALSE; } return; error: writeUsage(stdout); exit(EXIT_FAILURE); }
void getCommandLineParams(t_Params *ptParams,int argc,char *argv[]) { char *szTemp = NULL; char *cError = NULL; /*get parameter file name*/ ptParams->szDataFile = extractParameter(argc,argv, DATA_FILE, ALWAYS); if(ptParams->szDataFile == NULL) goto error; if(extractParameter(argc,argv, NO_INDEX, OPTION)){ ptParams->bNoIndex = TRUE; } else{ ptParams->bNoIndex = FALSE; } if(szTemp = extractParameter(argc,argv, LOOKUP_FILE_FLAG, OPTION)){ ptParams->szLookUpFile = szTemp; } else{ ptParams->szLookUpFile = getenv("PYRO_LOOKUP_FILE"); if(ptParams->szLookUpFile == NULL){ ptParams->szLookUpFile = LOOKUP_FILE; } } ptParams->szOutFileStub = extractParameter(argc,argv, OUT_FILE_STUB, ALWAYS); if(ptParams->szOutFileStub == NULL) goto error; return; error: writeUsage(stdout); exit(EXIT_FAILURE); }
void getCommandLineParams(t_Params *ptParams,int argc,char *argv[]) { char *szTemp = NULL; char *cError = NULL; /*get parameter file name*/ ptParams->szSeqInputFile = extractParameter(argc,argv, SEQ_INPUT_FILE,ALWAYS); if(ptParams->szSeqInputFile == NULL) goto error; /*get parameter file name*/ ptParams->szRefInputFile = extractParameter(argc,argv, REF_INPUT_FILE,OPTION); if(ptParams->szRefInputFile == NULL){ ptParams->szRefInputFile = ptParams->szSeqInputFile; } szTemp = extractParameter(argc,argv,SKEW,OPTION); if(szTemp != NULL){ ptParams->nSkew = strtol(szTemp,&cError,10); if(*cError!='\0'){ goto error; } } else{ ptParams->nSkew = DEFAULT_SKEW; } if(extractParameter(argc,argv,USE_BALANCE,OPTION)){ ptParams->bImbalance = FALSE; } else{ ptParams->bImbalance = TRUE; } szTemp = extractParameter(argc,argv,CLASSIFY,OPTION); if(szTemp != NULL){ char *szTok = strtok(szTemp, DELIM2); ptParams->dAlpha = strtod(szTok,&cError); if(*cError!='\0'){ goto error; } szTok = strtok(NULL, DELIM2); ptParams->dBeta = strtod(szTok,&cError); if(*cError!='\0'){ goto error; } } else{ if(ptParams->bImbalance == FALSE){ ptParams->dAlpha = DEFAULT_ALPHA_1; ptParams->dBeta = DEFAULT_BETA_1; } else{ ptParams->dAlpha = DEFAULT_ALPHA_2; ptParams->dBeta = DEFAULT_BETA_2; } } if(extractParameter(argc,argv,OUTPUT_ALIGNMENTS,OPTION)){ ptParams->bOutputAlignments = TRUE; } else{ ptParams->bOutputAlignments = FALSE; } if(szTemp = extractParameter(argc,argv, LOOKUP_FILE_FLAG, OPTION)){ ptParams->szLookUpFile = szTemp; } else{ ptParams->szLookUpFile = getenv("SEQ_LOOKUP_FILE"); if(ptParams->szLookUpFile == NULL){ ptParams->szLookUpFile = LOOKUP_FILE; } } return; error: writeUsage(stdout); exit(EXIT_FAILURE); }