int main(void) { char *data; long m,n; printf("%s%c%c\n", "Content-Type:text/html;charset=iso-8859-1",13,10); // printf("<h3>Multiplication results</h3>\n"); data = getenv("QUERY_STRING"); stripSpace(data); char schemaclass[500]; char schematype[500]; char namedvaluearray[500]; char name[500]; char value[500]; char command[500]; char varcontent[500]; char jsoncontent[500]; char NVelement[500]; // printf("URL %s<BR>\n",data); strcpy(command,data); unencode(command); findVarInURL(varcontent,data,"xplpacket"); unencode(varcontent); stripSpace(varcontent); xPL_initialize(xPL_getParsedConnectionType()); webgateway = xPL_createService("viknet", "webgateway", "default"); xPL_setServiceVersion(webgateway, "1.0"); /* Add a responder for time setting */ xPL_addServiceListener(webgateway, webgatewayMessageHandler, xPL_MESSAGE_ANY, "security", NULL, NULL); xPL_setServiceEnabled(webgateway, TRUE); /* Create a message to send */ xplMessage = xPL_createBroadcastMessage(webgateway, xPL_MESSAGE_COMMAND); if (JSONfindObject(schemaclass,varcontent,"msgschemaclass")!=NULL && JSONfindObject(schematype,varcontent,"msgschematype")!=NULL) xPL_setSchema(xplMessage, JSONtoString(schemaclass), JSONtoString(schematype)); else xPL_setSchema(xplMessage, "schemaclass", "schematype"); JSONfindObject(namedvaluearray,varcontent,"namevaluelist"); int i; for (i=0;i<JSONArrayLength(namedvaluearray);i++) { JSONArrayAt(NVelement,namedvaluearray,i); if ( JSONfindObject(name,NVelement,"name") && JSONfindObject(value,NVelement,"value")) xPL_addMessageNamedValue(xplMessage, JSONtoString(name), JSONtoString(value)); } xPL_sendMessage(xplMessage); // xPL_processMessages(0); return 0; }
int main(void) { char *lenstr; char input[MAXINPUT], data[MAXINPUT]; long len; const char* uname; printf("%s%c%c\n", "Content-Type:text/html;charset=iso-8859-1",13,10); printf("<TITLE>Response</TITLE>\n"); lenstr = getenv("CONTENT_LENGTH"); if(lenstr == NULL || sscanf(lenstr,"%ld",&len)!=1 || len > MAXLEN) printf("<P>Error in invocation - wrong FORM probably."); else { fgets(input, len+1, stdin); unencode(input+EXTRA, input+len, data); const char* in_pass = getfield(&data[0], 3); const char* in_user = getfield(&data[0], 1); uname = in_user; int found = 0; FILE* file = fopen(DATAFILE, "r"); char line[256]; while (fgets(line, sizeof(line), file)) { char* tmp1 = strdup(line); const char* pass = getfield(line, 3); const char* user = getfield(tmp1, 2); if(strcmp(user, in_user) == 0){ if(strcmp(pass, in_pass) == 0){ found = 1; break; } } } fclose(file); if(found == 1){ printf("<p>Logged in!"); printf("<form action=\"http://cgi.cs.mcgill.ca/~rtando1/cgi-bin/MyFacebookPage.py\" METHOD=\"POST\"><input type=\"hidden\" name=\"username\" value=\"%s\"><INPUT TYPE=\"SUBMIT\" VALUE=\"Go to your profile\" NAME=\"pass\"></form>", uname); } } return 0; }
//********************************************************************************** int parse_data_from_input(char *_data, char (*_params)[256]){ char *token; int count, len; count = 0; token = strtok(_data, "&"); while(token != NULL){ len = strlen(token); unencode(token, token + len + 1, *(_params + count)); // strcpy(*(_params + count), token); count++; token = strtok(NULL, "&"); } return count; }
int main() { const char *lenstr = getenv("CONTENT_LENGTH"); char data[4096] = {0}; int len = std::min(1 + atoi(lenstr), (int)(sizeof(data) - 2)); fgets(data, len, stdin); char code[4096] = {0}; unencode(data, code); printf("Content-type: text/plain\n\n"); CppcheckExecutor cppcheckExecutor; cppcheckExecutor.run(code); return EXIT_SUCCESS; }
char* HTTP::getVal(char* name,char* ini,char* end) { char* c; int len,lenv; if (*ini==0) ini++; if (*end==0) end--; c=ini; while(c<=end) { if(*c=='=') { len=c-ini; if (strlen(name)!=len) return NULL; if(memcmp(name,ini,len)!=0) return NULL; lenv=end-c; return unencode(++c,lenv); } c++; } return NULL; }
int main(void){ char * unencoded = (char *) malloc (100); unencode("login?user=bob+smith&pass=abc", '\0', unencoded); printf("%s", unencoded); return 0; }