e310cad5467b2f306c8f90b23f749ad9f6a43296 hiram Sat May 25 09:47:39 2019 -0700 clean up argList processing code review refs #23521 #23427 diff --git src/hg/hubApi/dataApi.h src/hg/hubApi/dataApi.h index 8c233e0..d40e8c9 100644 --- src/hg/hubApi/dataApi.h +++ src/hg/hubApi/dataApi.h @@ -37,49 +37,50 @@ #endif /* error return codes */ #define err301 301 #define err301Msg "Moved Permanently" #define err400 400 #define err400Msg "Bad Request" #define err403 403 #define err403Msg "Forbidden" #define err404 404 #define err404Msg "Not Found" #define err429 429 #define err429Msg "Too Many Requests" /* list of all potential arguments */ -#define argNull "" #define argHubUrl "hubUrl" #define argGenome "genome" #define argTrackLeavesOnly "trackLeavesOnly" #define argTrack "track" #define argChrom "chrom" #define argStart "start" #define argEnd "end" #define argMaxItemsOutput "maxItemsOutput" #define argJsonOutputArrays "jsonOutputArrays" -/* listing of allowed legal arguments for each function */ -#define argsListPublicHubs argNull -#define argsListUcscGenomes argNull -#define argsListHubGenomes argHubUrl -#define argsListTracks argGenome";"argHubUrl";"argTrackLeavesOnly -#define argsListChromosomes argGenome";"argHubUrl";"argTrack -#define argsGetDataTrack argGenome";"argHubUrl";"argTrack";"argChrom";"argStart";"argEnd";"argMaxItemsOutput";"argJsonOutputArrays -#define argsGetDataSequence argGenome";"argHubUrl";"argTrack";"argChrom";"argStart";"argEnd +/* valid argument listings to verify extraneous arguments + * initialized in hubApi.c + */ +extern char *argListPublicHubs[]; +extern char *argListUcscGenomes[]; +extern char *argListHubGenomes[]; +extern char *argListTracks[]; +extern char *argListChromosomes[]; +extern char *argGetDataTrack[]; +extern char *argGetDataSequence[]; /* maximum number of words expected in PATH_INFO parsing * so far only using 2 */ #define MAX_PATH_INFO 32 /* maximum amount of DNA allowed in a get sequence request */ #define MAX_DNA_LENGTH 499999999 /* this size is directly related to the max limit in needMem used in * jsonWriteString */ extern long enteredMainTime; /* will become = clock1000() on entry */ /* limit amount of output to a maximum to avoid overload */ @@ -94,32 +95,32 @@ * This option will limit to only the actual track entries with data */ extern boolean trackLeavesOnly; /* set by CGI parameter 'trackLeavesOnly' */ /* this selects output type 'arrays', where the default type is: objects */ extern boolean jsonOutputArrays; /* set by CGI parameter 'jsonOutputArrays' */ extern boolean measureTiming; /* set by CGI parameters */ /* functions in hubApi.c */ struct hubPublic *hubPublicDbLoadAll(); struct dbDb *ucscDbDb(); /* return the dbDb table as an slList */ -char *verifyLegalArgs(char *validArgList); -/* validArgList is a semicolon;separated;list;of;valid;arguments +char *verifyLegalArgs(char *validArgList[]); +/* validArgList is an array of strings for valid arguments * returning string of any other arguments not on that list found in * cgiVarList(), NULL when none found. */ /* ######################################################################### */ /* functions in apiUtils.c */ void startProcessTiming(); /* for measureTiming, beginning processing */ void apiFinishOutput(int errorCode, char *errorString, struct jsonWrite *jw); /* finish json output, potential output an error code other than 200 */ void apiErrAbort(int errorCode, char *errString, char *format, ...); /* Issue an error message in json format, and exit(0) */