often used opening HTML as well as the HTTP headers.
* messages.c: added "move message" functionality
* userlist.c: added. This adds "userlist" and "show user" functions.
* roomops.c: fixed buggy implementation of ungoto
+ * Set up an option in output_headers() to optionally print the most
+ often used opening HTML as well as the HTTP headers.
Fri Dec 11 21:14:36 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
* Brought over message reading and entry functions from old WebCit
char buf[256];
printf("HTTP/1.0 200 OK\n");
- output_headers();
-
- wprintf("<HTML><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
/* Da banner */
wprintf("<CENTER><TABLE border=0 width=100%><TR><TD>\n");
void do_welcome(void) {
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
wprintf("<CENTER><H1>");
escputs(wc_username);
wprintf("</H1>\n");
strcpy(wc_port, "");
printf("HTTP/1.0 200 OK\n");
- output_headers();
printf("X-WebCit-Session: close\n");
-
- wprintf("<HTML><HEAD><TITLE>Goodbye</TITLE></HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\"><CENTER>\n");
+ output_headers(1);
+ wprintf("<CENTER>");
serv_puts("MESG goodbye");
serv_gets(buf);
char *bstr(char *key);
char *urlesc(char *);
void urlescputs(char *);
-void output_headers(void);
+void output_headers(int);
void wprintf(const char *format, ...);
void extract(char *dest, char *source, int parmnum);
int extract_int(char *source, int parmnum);
*/
void display_main_menu(void) {
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML><HEAD><TITLE>WebCit main menu</TITLE></HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
embed_main_menu();
wprintf("</BODY></HTML>\n");
wDumpContent();
void display_advanced_menu(void) {
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML><HEAD><TITLE>WebCit main menu</TITLE></HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
embed_advanced_menu();
embed_main_menu();
wprintf("</BODY></HTML>\n");
int nummsgs;
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML><HEAD><TITLE>Messages</TITLE>\n");
- wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
wprintf("<CENTER><B>%s - ",wc_roomname);
if (!strcmp(oper,"readnew")) {
char buf[256];
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML>");
- wprintf("<BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
strcpy(buf, bstr("sc"));
if (strcasecmp(buf, "Save message")) {
struct tm *tm;
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML>");
- wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
sprintf(buf,"ENT0 0|%s|0|0",bstr("recp"));
serv_puts(buf);
msgid = atol(bstr("msgid"));
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML>");
- wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
msgid = atol(bstr("msgid"));
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML>");
- wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
if (!strcasecmp(bstr("yesno"), "Yes")) {
sprintf(buf, "DELE %ld", msgid);
msgid = atol(bstr("msgid"));
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML>");
- wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
msgid = atol(bstr("msgid"));
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML>");
- wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
if (!strcasecmp(bstr("yesno"), "Move")) {
sprintf(buf, "MOVE %ld|%s", msgid, bstr("target_room"));
load_floorlist();
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML><HEAD><TITLE>List known rooms</TITLE></HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
wprintf("<TABLE width=100% border><TR><TH>Floor</TH>");
wprintf("<TH>Rooms with new messages</TH>");
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
if (display_name != 2) {
/* store ungoto information */
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML><HEAD><TITLE>User list</TITLE>\n");
- wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
serv_puts("LIST");
serv_gets(buf);
int have_pic;
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML><HEAD><TITLE>User profile</TITLE>\n");
- wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=007700><TR><TD>");
/*
* Output all that important stuff that the browser will want to see
*/
-void output_headers(void) {
+void output_headers(int print_standard_html_head) {
static char *unset = "; expires=28-May-1971 18:10:00 GMT";
if (strlen(wc_roomname)>0) printf("Set-cookie: wc_roomname=%s\n",
wc_roomname);
else printf("Set-cookie: wc_roomname=%s\n", unset);
+
+ if (print_standard_html_head) {
+ wprintf("<HTML><HEAD><TITLE>");
+ escputs("WebCit");
+ wprintf("</TITLE></HEAD>");
+ wprintf("<BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ }
+
}
void output_static(char *what) {
fp = fopen(buf, "rb");
if (fp == NULL) {
printf("HTTP/1.0 404 %s\n", strerror(errno));
- output_headers();
+ output_headers(0);
printf("Content-Type: text/plain\n");
sprintf(buf, "%s: %s\n", what, strerror(errno));
printf("Content-length: %d\n", strlen(buf));
}
else {
printf("HTTP/1.0 200 OK\n");
- output_headers();
+ output_headers(0);
if (!strncasecmp(&what[strlen(what)-4], ".gif", 4))
printf("Content-type: image/gif\n");
if (buf[0]=='2') {
bytes = extract_long(&buf[4], 0);
printf("HTTP/1.0 200 OK\n");
- output_headers();
+ output_headers(0);
printf("Content-type: image/gif\n");
printf("Content-length: %ld\n", bytes);
printf("\n");
}
else {
printf("HTTP/1.0 404 %s\n", strerror(errno));
- output_headers();
+ output_headers(0);
printf("Content-Type: text/plain\n");
sprintf(buf, "Error retrieving image\n");
printf("Content-length: %d\n", strlen(buf));
/* When all else fails... */
else {
printf("HTTP/1.0 200 OK\n");
- output_headers();
+ output_headers(1);
- wprintf("<HTML><HEAD><TITLE>WebCit</TITLE></HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
wprintf("TransactionCount is %d<BR>\n", TransactionCount);
wprintf("You're in session %d<HR>\n", wc_session);
wprintf("Command: <BR><PRE>\n");
int foundit;
printf("HTTP/1.0 200 OK\n");
- output_headers();
- wprintf("<HTML><HEAD><TITLE>Who is online?</TITLE>\n");
-
- /* Uncomment this line to cause the wholist to auto-refresh */
- /* wprintf("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"60\">\n"); */
-
- wprintf("</HEAD><BODY BACKGROUND=\"/image&name=background\" TEXT=\"#000000\" LINK=\"#004400\">\n");
+ output_headers(1);
wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=007700><TR><TD>");
wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"<B>Users currently on ");