int DoGraphPost(int sock, char * url, char * pData, char *
rxBuffer)
{
GraphData gd;
gd.MaxD=100;
gd.MinD=-10;
gd.MaxT=0;
gd.MinT=-24*3600;
char buffer[80];
char * cp;
char siz;
/* Extract basic variable */
ExtractIntPostData("MaxD",pData,gd.MaxD);
ExtractIntPostData("MinD",pData,gd.MinD);
ExtractTimePostData("MaxT",pData,gd.MaxT);
ExtractTimePostData("MinT",pData,gd.MinT);
ExtractPostData("gSize",pData,buffer,80);
siz=buffer[0];
/* Extract button pressed to submit form */
ExtractPostData("submittv",pData,buffer,80);
cp=buffer;
while ((*cp) && (isspace(*cp)))cp++;
/* Values for buffer are set Show Last Show All */
if (buffer[1]!='e')
{
if (buffer[5]=='L')
{/* Show Last Hour */
gd.MaxT=0;
gd.MinT=-3600;
}
else
{/*Show All */
gd.MaxT=0;
if (gNextPosition> gMaxStored) gd.MinT=gMaxStored;
else
gd.MinT=gNextPosition;
gd.MinT*=gSampleInterval/TICKS_PER_SECOND;
if (gd.MinT <60) gd.MinT=60;
gd.MinT=gd.MinT*-1;
}
}
/*Send requester back to proper web page */
sprintf(buffer,"INDEX.HTM?%c%08X%08X%08X%08X",siz,gd.MaxD,gd.MinD,
gd.MinT,gd.MaxT);
RedirectResponse(sock,buffer);
}
Listing 5This code processes the variables sent in the POST request from the web browser. It extracts the individual control variables and uses them to generate a new URL that reflects the new settings.