/* * Generic http redirector and logger * * Version 1.1 * * Usage: http://www.foo.com/cgi-bin/redirect?http://www.bar.com/ * */ #include #include #include #include #define LOG_FILE "/html/user/cgi-bin/r-log" #define MAX_STRING 512 char buf[MAX_STRING]; char file_arg[MAX_STRING]; /***********************************************************/ main(argc, argv) int argc; char *argv[]; { /* sprintf(file_arg, "%s", argv[1]); printf("Location: %s\n\n", file_arg); */ printf("Location: %s\n\n", argv[1]); log_access(); } /* end of main */ /*******************************************************************/ log_access() { FILE *lf; time_t t; char *strp; lf = fopen(LOG_FILE, "a"); time(&t); sprintf(buf, "\n>>>> %s", ctime(&t) ); fputs(buf, lf); if ( NULL == ( strp = (char *)getenv("REMOTE_HOST") ) ) { sprintf(buf, " REMOTE_HOST = NULL\n"); } else { sprintf(buf, " REMOTE_HOST = %s\n", strp); } fputs(buf, lf); if ( NULL == ( strp = (char *)getenv("HTTP_REFERER") ) ) { sprintf(buf, " HTTP_REFERER = NULL\n"); } else { sprintf(buf, " HTTP_REFERER = %s\n", strp); } fputs(buf, lf); if ( NULL == ( strp = (char *)getenv("HTTP_USER_AGENT") ) ) { sprintf(buf, " HTTP_USER_AGENT = NULL\n"); } else { sprintf(buf, " HTTP_USER_AGENT = %s\n", strp); } fputs(buf, lf); fclose(lf); } /* end of log_access */