#include <stdlib.h>
char filtered_query[2000];
char rdata[500];
char param_n[500];
char param_d[500];
char *get_query(char *inquery)
{
memset(filtered_query, 0x0, 2000);
sscanf(inquery, "GET %s %[$]", filtered_query);
return(filtered_query);
}
void web_send(int sockin, char *in_data)
{
send(sockin, in_data, strlen(in_data), 0);
}
//THIS IS BAD CODE BE CAREFULL WITH IT!
//Watch out for buffer overflow...
//When using please make sure to check the string size.
//Also note:
//I take no pride in this code, it is a really bad way of doing this...
char *get_param(char in_string[500], char swhat[500])
{
int i = 0;
int marker, iswitch, pint, dint;
char flux[500];
memset(flux, 0x0, 500);
//Get the path of out "page"
if (swhat == 0)
{
//while i is not equal to array size
while (i != 500)
{
//if there is a question mark, halt!
if (in_string[i] == '?')
{
i = 499;
}
else
rdata[i] = in_string[i];
i++;
}
return rdata;
}
else //so, we want a param...
{
//calculate where param begins
while (i != 500)
{
if (in_string[i] == '?')
{
marker = i + 1;
i = 499;
}
i++;
}
i = 0;
//keep morons from trying to crash this
if ((marker > 500)||(marker < 1))
marker = 500;
while(marker != 500)
{
if ((in_string[marker] != '&') && (in_string[marker] != '\0'))
{
flux[i] = in_string[marker];
i++;
}
else
{
//we have a param, now we must dig through it
//clear temp vars
memset(param_n, 0x0, 500);
memset(param_d, 0x0, 500);
iswitch = 0;
pint = 0;
dint = 0;
i = 0;
//split result into param_n and param_d
while(i != 500)
{
if ( (flux[i] != '=') && (flux[i] != '\0') )
{
if (iswitch == 0)
{
param_n[pint] = flux[i];
pint++;
}
else
{
param_d[dint] = flux[i];
dint++;
}
}
else
{
iswitch = 1;
}
if (flux[i] == '\0')
i = 499;
i++;
}
if ( strcmp(param_n, swhat) == 0 )
{
return param_d;
}
i = 0;
}
if (in_string[marker] == '\0')
{
marker = 499;
}
marker++;
}
return 0;
}
}