main(int argc, char *argv[]) { entry entries[MAX_ENTRIES]; register int x,m=0; int cl; printf("Content-type: text/html%c%c",10,10); if(strcmp(getenv("REQUEST_METHOD"),"POST")) { printf("This script should be referenced with a METHOD of POST.\n"); printf("If you don't understand this, see this "); printf("<A HREF=\"http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html\">forms overview</A>.%c",10); exit(1); } if(strcmp(getenv("CONTENT_TYPE"),"application/x-www-form-urlencoded")) { printf("This script can only be used to decode form results. \n"); exit(1); } cl = atoi(getenv("CONTENT_LENGTH")); for(x=0;cl && (!feof(stdin));x++) { m=x; entries[x].val = fmakeword(stdin,'&',&cl); plustospace(entries[x].val); unescape_url(entries[x].val); entries[x].name = makeword(entries[x].val,'='); } printf("<H1>Query Results</H1>"); printf("You submitted the following name/value pairs:<p>%c",10); printf("<ul>%c",10); for(x=0; x <= m; x++) printf("<li> <code>%s : %s</code>%c",entries[x].name, entries[x].val,10); printf("</ul>%c",10); }
int main(int argc, char *argv[]) { pentry entries[MAXPOSTVARS]; entry gentries[MAXGETVARS]; char *gcl; register int i; int cl=0; ConnectDb(); if(getenv("REMOTE_ADDR")!=NULL) sprintf(gcHost,"%.99s",getenv("REMOTE_ADDR")); if(getenv("HTTP_USER_AGENT")!=NULL) { if(strstr(getenv("HTTP_USER_AGENT"),"Firefox")) guBrowserFirefox=1; } #if defined(Linux) gethostname(gcHostname, 98); #else //Solaris sysinfo(SI_HOSTNAME, gcHostname, 98); #endif if(strcmp(getenv("REQUEST_METHOD"),"POST")) { //Get //SSLCookieLogin(); gcl = getenv("QUERY_STRING"); for(i=0;gcl[0] != '\0' && i<MAXGETVARS;i++) { getword(gentries[i].val,gcl,'&'); plustospace(gentries[i].val); unescape_url(gentries[i].val); getword(gentries[i].name,gentries[i].val,'='); if(!strcmp(gentries[i].name,"gcFunction")) sprintf(gcFunction,"%.99s",gentries[i].val); else if(!strcmp(gentries[i].name,"gcPage")) sprintf(gcPage,"%.99s",gentries[i].val); } if(gcPage[0]) { if(!strcmp(gcPage,"MyAccount")) MyAccountGetHook(gentries,i); } } else { //Post cl = atoi(getenv("CONTENT_LENGTH")); for(i=0;cl && (!feof(stdin)) && i<MAXPOSTVARS ;i++) { entries[i].val = fmakeword(stdin,'&',&cl); plustospace(entries[i].val); unescape_url(entries[i].val); entries[i].name = makeword(entries[i].val,'='); if(!strcmp(entries[i].name,"gcFunction")) sprintf(gcFunction,"%.99s",entries[i].val); else if(!strcmp(entries[i].name,"gcPage")) sprintf(gcPage,"%.99s",entries[i].val); else if(!strcmp(entries[i].name,"gcLogin")) sprintf(gcLogin,"%.99s",entries[i].val); else if(!strcmp(entries[i].name,"gcPasswd")) sprintf(gcPasswd,"%.99s",entries[i].val); } } //Not required to be logged in gcFunction section if(gcFunction[0]) { if(!strncmp(gcFunction,"Logout",5)) { printf("Set-Cookie: iRadiusLogin=; expires=\"Mon, 01-Jan-1971 00:10:10 GMT\"\n"); printf("Set-Cookie: iRadiusPasswd=; expires=\"Mon, 01-Jan-1971 00:10:10 GMT\"\n"); guPermLevel=0; gcUser[0]=0; guLoginClient=0; htmlLogin(); } } /*if(!strcmp(gcFunction,"Login")) SetLogin(); if(!guPermLevel || !gcUser[0] || !guLoginClient) SSLCookieLogin()¨; //First page after valid login if(!strcmp(gcFunction,"Login")) htmlMyAccountd();*/ //Per page command tree MyAccountCommands(entries,i); //default logged in page htmlMyAccount(); return(0); }//end of main()
main(int argc, char *argv[]) { entry entries[MAXENTRIES]; register int x, m = 0; int cl, invalid = 0, didroot = 0, didhtml = 0; char protocol; if (strcmp(getenv("REQUEST_METHOD"), "POST")) { printf("We can't do much with a blank subscription card, "); printf("can we?\n"); exit(1); } if (strcmp(getenv("CONTENT_TYPE"), "application/x-www-form-urlencoded")) { printf("This script can only be used to decode form "); printf("results.\n"); exit(1); } cl = atoi(getenv("CONTENT_LENGTH")); sprintf(command, "%s ", GETSTATS); for(x = 0; cl && (!feof(stdin)); x++) { m = x; entries[x].val = fmakeword(stdin, '&', &cl); plustospace(entries[x].val); unescape_url(entries[x].val); entries[x].name = makeword(entries[x].val,'='); if (!strcmp(entries[x].name, "protocol")) { protocol = entries[x].val[0]; if (protocol == 'G') sprintf(command, "%s -G %s", command); else if (protocol == 'N') sprintf(command, "%s -N %s", command); else if (protocol == 'C') sprintf(command, "%s -C %s", command); else if (protocol == 'P') sprintf(command, "%s -P %s", command); else if (protocol == 'M') sprintf(command, "%s -A %s", command); else if (protocol == 'U') sprintf(command, "%s -O %s", command); } if (!didroot) { sprintf(command, "%s -dr %s", command, ROOTDIR); didroot = 1; } if (!strcmp(entries[x].name, "logfilename")) if (strlen(entries[x].val)) sprintf(command, "%s -l %s", command, entries[x].val); else sprintf(command, "%s -l %s", command, LOGFILE); if (!strcmp(entries[x].name, "common") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -M", command); if (!strcmp(entries[x].name, "concise") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -c", command); if (!strcmp(entries[x].name, "toplines") && strlen(entries[x].val)) sprintf(command, "%s -t %s ", command, entries[x].val); if (!strcmp(entries[x].name, "all") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -a ", command); if (!strcmp(entries[x].name, "monthly") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -m ", command); if (!strcmp(entries[x].name, "weekly") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -w ", command); if (!strcmp(entries[x].name, "daysweek") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -ds ", command); if (!strcmp(entries[x].name, "daily") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -d ", command); if (!strcmp(entries[x].name, "hoursday") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -hs ", command); if (!strcmp(entries[x].name, "hourly") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -h ", command); if (!strcmp(entries[x].name, "full-hostname") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -f ", command); if (!strcmp(entries[x].name, "full-access") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -fa ", command); if (!strcmp(entries[x].name, "full-lastaccess") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -fd ", command); if (!strcmp(entries[x].name, "full-bytes") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -fb ", command); if (!strcmp(entries[x].name, "request-name") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -r ", command); if (!strcmp(entries[x].name, "request-accesses") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -ra ", command); if (!strcmp(entries[x].name, "request-lastaccesses") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -rd ", command); if (!strcmp(entries[x].name, "request-bytes") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -rb ", command); if (!strcmp(entries[x].name, "request-filesize") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -rf ", command); if (!strcmp(entries[x].name, "domain-name") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -dn ", command); if (!strcmp(entries[x].name, "domain-requests") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -da ", command); if (!strcmp(entries[x].name, "domain-lastaccesses") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -dd ", command); if (!strcmp(entries[x].name, "domain-bytes") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -db ", command); if (!strcmp(entries[x].name, "domain-sub") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -du ", command); if (!strcmp(entries[x].name, "filetree") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -dt ", command); if (!strcmp(entries[x].name, "error") && !strcmp(entries[x].val, "on")) sprintf(command, "%s -e ", command); if (!strcmp(entries[x].name, "samask")) if (strlen(entries[x].val) != 0) sprintf(command, "%s -sa \"%s\"", command, entries[x].val); if (!strcmp(entries[x].name, "ssmask")) if (strlen(entries[x].val) != 0) sprintf(command, "%s -ss \"%s\"", command, entries[x].val); if (!strcmp(entries[x].name, "srmask")) if (strlen(entries[x].val) != 0) sprintf(command, "%s -sr \"%s\"", command, entries[x].val); if (!strcmp(entries[x].name, "spmask")) if (strlen(entries[x].val) != 0) sprintf(command, "%s -sp \"%s\"", command, entries[x].val); if (!strcmp(entries[x].name, "sdmask")) if (strlen(entries[x].val) != 0) sprintf(command, "%s -sd \"%s\"", command, entries[x].val); if (!strcmp(entries[x].name, "shmask")) if (strlen(entries[x].val) != 0) sprintf(command, "%s -sh \"%s\"", command, entries[x].val); if (!strcmp(entries[x].name, "swmask")) if (strlen(entries[x].val) != 0) sprintf(command, "%s -sw \"%s\"", command, entries[x].val); if (!strcmp(entries[x].name, "mailme") && strlen(entries[x].val) != 0) { sprintf(command, "%s | /usr/ucb/mail -s \"%s\" %s", command, SUBJECT, entries[x].val); printf("Content-type: text/html\n\n"); printf("<title>It's in the mail...</title>\n<p>\n"); printf("<h1>Your log request is being mailed to "); printf("you.</h1>\n"); printf("The following command was executed:\n"); printf("<p>\n<code>%s</code>\n", command); } else if (!strcmp(entries[x].name, "mailme") && strlen(entries[x].val) == 0 && !didhtml) { sprintf(command, "%s -ht", command); didhtml = 1; } } sprintf(command, "%s &\n", command); system(command); exit(0); }