void init_cgi(char *query) { int len, nel; char *q, *name, *value; /* Clear variables */ if (!query) { hdestroy_r(&htab); return; } /* Parse into individual assignments */ q = query; len = strlen(query); nel = 1; while (strsep(&q, "&;")) nel++; hcreate_r(nel, &htab); for (q = query; q < (query + len);) { /* Unescape each assignment */ unescape(name = value = q); /* Skip to next assignment */ for (q += strlen(q); q < (query + len) && !*q; q++); /* Assign variable */ name = strsep(&value, "="); if (value) { // printf("set_cgi: name=%s, value=%s.\n", name , value); // N12 test set_cgi(name, value); } } }
void init_cgi(char *query) { int len, nel; char *q, *name, *value; htab_count = 0; //cprintf("\nIn init_cgi(), query = %s\n", query); /* Clear variables */ if (!query) { hdestroy_r(&htab); return; } /* Parse into individual assignments */ q = query; len = strlen(query); nel = 1; while (strsep(&q, "&;")) nel++; hcreate_r(nel, &htab); //cprintf("\nIn init_cgi(), nel = %d\n", nel); for (q = query; q < (query + len);) { /* Unescape each assignment */ unescape(name = value = q); /* Skip to next assignment */ for (q += strlen(q); q < (query + len) && !*q; q++) ; /* Assign variable */ name = strsep(&value, "="); if (value) set_cgi(name, value); } //cprintf("\nIn init_cgi(), AFTER PROCESS query = %s\n", query); }
void resmsg_set(const char *msg) { set_cgi("resmsg", strdup(msg)); // m ok }