* Moved all diagnostic output to stderr
authorArt Cancro <ajc@citadel.org>
Sat, 4 Dec 1999 22:16:05 +0000 (22:16 +0000)
committerArt Cancro <ajc@citadel.org>
Sat, 4 Dec 1999 22:16:05 +0000 (22:16 +0000)
* Moved "HTTP/1.0 200 OK" output to output_headers()

15 files changed:
webcit/ChangeLog
webcit/auth.c
webcit/context_loop.c
webcit/graphics.c
webcit/mainmenu.c
webcit/messages.c
webcit/netconf.c
webcit/paging.c
webcit/roomops.c
webcit/siteconfig.c
webcit/sysmsgs.c
webcit/userlist.c
webcit/webcit.c
webcit/webserver.c
webcit/who.c

index c4a2470a87ec324ccc0eb0e8ca48f5b75ffad75e..6f9c2f88cec66e9ed0db751a6346c70b9a85baca 100644 (file)
@@ -1,4 +1,8 @@
 $Log$
+Revision 1.113  1999/12/04 22:16:05  ajc
+* Moved all diagnostic output to stderr
+* Moved "HTTP/1.0 200 OK" output to output_headers()
+
 Revision 1.112  1999/12/04 21:56:59  ajc
 * Finished the overhaul.  Now to tune...
 
@@ -334,3 +338,4 @@ Sun Dec  6 19:50:55 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
 
 1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
        * webserver.c: warning fix
+
index e449c9629c5bfbe51917983a1db395fcfa36e1a2..117ba611c6c34dfec8eb98817336a89a4d4d738b 100644 (file)
@@ -47,7 +47,6 @@ void display_login(char *mesg)
 {
        char buf[256];
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(3);
 
        /* Da banner */
@@ -184,7 +183,6 @@ void do_logout(void)
        strcpy(WC->wc_password, "");
        strcpy(WC->wc_roomname, "");
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(2);      /* note "2" causes cookies to be unset */
 
        wprintf("<CENTER>");
@@ -218,7 +216,6 @@ void validate(void)
        char buf[256];
        int a;
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        strcpy(buf, bstr("user"));
@@ -297,7 +294,6 @@ void display_reg(int during_login)
        char buf[256];
        int a;
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=007700><TR><TD>");
@@ -401,7 +397,6 @@ void display_changepw(void)
 {
        char buf[256];
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
index 3f6055a9a3670bd8d02d8543f095952e575993c3..d98f8935f0adb28c49635d112966e1b254670fa9 100644 (file)
@@ -287,7 +287,7 @@ void context_loop(int sock)
         * Create a new session if we have to
         */
        if (TheSession == NULL) {
-               printf("Creating a new session\n");
+               fprintf(stderr, "Creating a new session\n");
                TheSession = (struct wcsession *)
                        malloc(sizeof(struct wcsession));
                memset(TheSession, 0, sizeof(struct wcsession));
index 3e8ebc61759aad0858036b71fff771e80cc8d341..043c96c534ac85f3692ca480c4b08724dadd1ddb 100644 (file)
@@ -30,7 +30,6 @@ void display_graphics_upload(char *description, char *check_cmd, char *uplurl)
                display_error(&buf[4]);
                return;
        }
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
        wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
@@ -104,7 +103,6 @@ void select_floor_to_edit_pic(void)
 {
        int a;
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
index 0cdc6ebc5bfdc5d8a21908e7b486a9982f7744ec..c48e60b682551a9f8b7404236b45b9c0c208e2a4 100644 (file)
@@ -207,7 +207,6 @@ void embed_advanced_menu(void)
  */
 void display_main_menu(void)
 {
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        embed_main_menu();
        wDumpContent(2);
@@ -216,7 +215,6 @@ void display_main_menu(void)
 
 void display_advanced_menu(void)
 {
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        embed_advanced_menu();
        embed_main_menu();
@@ -229,7 +227,6 @@ void display_advanced_menu(void)
  */
 void display_generic(void)
 {
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770077><TR><TD>");
@@ -269,7 +266,6 @@ void do_generic(void)
                return;
        }
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        serv_printf("%s", bstr("g_cmd"));
@@ -332,7 +328,6 @@ void display_menubar(int as_single_page) {
        char buf[256];
 
        if (as_single_page) {
-               wprintf("HTTP/1.0 200 OK\n");
                output_headers(0);
                wprintf("<HTML>\n"
                        "<HEAD>\n"
index 7966e9c41a4af771101654aaca3f53900e989fc7..e93b507291fa20dfe364d79ecd9e96b0e216332e 100644 (file)
@@ -240,7 +240,6 @@ void readloop(char *oper)
        int a;
        int nummsgs;
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<FONT FACE=\"Arial,Helvetica,sans-serif\"><CENTER><B>%s - ", WC->wc_roomname);
@@ -293,7 +292,6 @@ void post_message(void)
        char buf[256];
        static long dont_post = (-1L);
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<FONT FACE=\"Arial,Helvetica,sans-serif\">");
@@ -358,7 +356,6 @@ void display_enter(void)
        long now;
        struct tm *tm;
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<FACE=\"Arial,Helvetica,sans-serif\">");
@@ -427,7 +424,6 @@ void confirm_delete_msg(void)
 
        msgid = atol(bstr("msgid"));
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
@@ -459,7 +455,6 @@ void delete_msg(void)
 
        msgid = atol(bstr("msgid"));
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        if (!strcasecmp(bstr("yesno"), "Yes")) {
@@ -488,7 +483,6 @@ void confirm_move_msg(void)
 
        msgid = atol(bstr("msgid"));
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
@@ -536,7 +530,6 @@ void move_msg(void)
 
        msgid = atol(bstr("msgid"));
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        if (!strcasecmp(bstr("yesno"), "Move")) {
index 6b2d763cdfc960fdd5ba22bc10f60d1a1bbe36c9..e069fe6ac49456dcc234354cad651adb57ce0740 100644 (file)
@@ -41,7 +41,6 @@ void display_edit_node(void)
 
        strcpy(node, bstr("node"));
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=000077><TR><TD>");
        wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
@@ -86,7 +85,6 @@ void display_netconf(void)
        char buf[256];
        char node[256];
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
        wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
@@ -130,7 +128,6 @@ void display_confirm_unshare(void)
        char node[256];
        char sroom[256];
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
        wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
@@ -158,7 +155,6 @@ void display_confirm_delete_node(void)
 {
        char node[256];
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
        wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
@@ -187,7 +183,6 @@ void delete_node(void)
        serv_puts(buf);
        serv_gets(buf);
        if (buf[0] == '1') {
-               wprintf("HTTP/1.0 200 OK\n");
                output_headers(1);
                server_to_text();
                wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
@@ -210,7 +205,6 @@ void unshare(void)
        serv_puts(buf);
        serv_gets(buf);
        if (buf[0] == '1') {
-               wprintf("HTTP/1.0 200 OK\n");
                output_headers(1);
                server_to_text();
                wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
@@ -225,7 +219,6 @@ void unshare(void)
 void display_add_node(void)
 {
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=007700><TR><TD>");
        wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
@@ -261,7 +254,6 @@ void add_node(void)
                serv_puts(buf);
                serv_gets(buf);
                if (buf[0] == '1') {
-                       wprintf("HTTP/1.0 200 OK\n");
                        output_headers(1);
                        server_to_text();
                        wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
@@ -285,7 +277,6 @@ void display_share(void)
 
        strcpy(node, bstr("node"));
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=007700><TR><TD>");
        wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
@@ -365,7 +356,6 @@ void share(void)
                serv_puts(buf);
                serv_gets(buf);
                if (buf[0] == '1') {
-                       wprintf("HTTP/1.0 200 OK\n");
                        output_headers(1);
                        server_to_text();
                        wprintf("<A HREF=\"/display_netconf\">Back to menu</A>\n");
index 51611c2ea5eea55568f2dd58b36c5a095fdedf60..553a872ff60b6d2a744bd3d8a3d6be692c3aa102 100644 (file)
@@ -30,7 +30,6 @@ void display_page(void)
        char buf[256];
        char user[256];
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=007700><TR><TD>");
@@ -80,7 +79,6 @@ void page_user(void)
        char sc[256];
        char buf[256];
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        strcpy(recp, bstr("recp"));
@@ -112,7 +110,6 @@ void page_user(void)
 void do_chat(void)
 {
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=000077><TR><TD>");
index e4ec0bc72e701df27c3484aec9438b516f53da66..6e8cc089830082fc42749dbceb8d09bb71c91319 100644 (file)
@@ -250,7 +250,6 @@ void list_all_rooms_by_floor(void)
 
        load_floorlist();
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE width=100% border><TR><TH>Floor</TH>");
@@ -297,7 +296,6 @@ void list_all_rooms_by_floor(void)
  */
 void zapped_list(void)
 {
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
        wprintf("<FONT FACE=\"Arial,Helvetica,sans-serif\" SIZE=+1 COLOR=\"FFFFFF\"");
@@ -409,10 +407,9 @@ void gotoroom(char *gname, int display_name)
 
 
        if (display_name) {
-               wprintf("HTTP/1.0 200 OK\n");
-                printf("Pragma: no-cache\n");
-                printf("Cache-Control: no-store\n");
                output_headers(0);
+                wprintf("Pragma: no-cache\n");
+                wprintf("Cache-Control: no-store\n");
 
                wprintf("<HTML><HEAD>\n"
                        "<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">\n"
@@ -647,7 +644,6 @@ void display_editroom(void)
        er_floor = extract_int(&buf[4], 4);
 
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=000077><TR><TD>");
@@ -964,7 +960,6 @@ void display_entroom(void)
                display_error(&buf[4]);
                return;
        }
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=000077><TR><TD>");
@@ -1046,7 +1041,6 @@ void entroom(void)
 void display_private(char *rname, int req_pass)
 {
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
@@ -1109,7 +1103,6 @@ void goto_private(void)
                display_private(bstr("gr_name"), 1);
                return;
        }
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        wprintf("%s\n", &buf[4]);
        wDumpContent(1);
@@ -1122,7 +1115,6 @@ void goto_private(void)
  */
 void display_zap(void)
 {
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
@@ -1189,7 +1181,6 @@ void confirm_delete_room(void)
                display_error(&buf[4]);
                return;
        }
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
        wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
index 568b0e4e47bf39785bd4f1e49404069c72f24a75..953ffb5bf97e802ed44a06fcaec224ebfae45b1b 100644 (file)
@@ -34,7 +34,6 @@ void display_siteconfig(void)
        char buf[256];
        int i;
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        serv_printf("CONF get");
index fed1603cd7862f539d9076db2e05a41dcc5d2ccd..0e3dc6a64c5a728c0774d4959c47b38709988fe7 100644 (file)
@@ -43,7 +43,6 @@ void display_edit(char *description, char *check_cmd,
                display_error(&buf[4]);
                return;
        }
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=007700><TR><TD>");
@@ -80,7 +79,6 @@ void save_edit(char *description, char *enter_cmd, int regoto)
        char buf[256];
 
        if (strcmp(bstr("sc"), "Save")) {
-               wprintf("HTTP/1.0 200 OK\n");
                output_headers(1);
                wprintf("Cancelled.  %s was not saved.<BR>\n", description);
                wDumpContent(1);
@@ -98,7 +96,6 @@ void save_edit(char *description, char *enter_cmd, int regoto)
        if (regoto) {
                smart_goto(WC->wc_roomname);
        } else {
-               wprintf("HTTP/1.0 200 OK\n");
                output_headers(1);
                wprintf("%s has been saved.\n", description);
                wDumpContent(1);
index 44e60a056691a284844374bccd57ee5309bb6a41..ca2fb3864987220bf45cc888a233718a01ecdc44 100644 (file)
@@ -49,7 +49,6 @@ void userlist(void)
                        strcpy(bptr->name, buf);
                        bio = bptr;
                }
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        serv_puts("LIST");
@@ -114,7 +113,6 @@ void showuser(void)
        char buf[256];
        int have_pic;
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
 
index 7cede653d7c39694b366c55254cd65cde9c1b932..ede8a7ec8748b38f22f58b83ae0519042ee8c3e3 100644 (file)
@@ -295,6 +295,8 @@ void output_headers(int print_standard_html_head)
        static char *unset = "; expires=28-May-1971 18:10:00 GMT";
        char cookie[256];
 
+       wprintf("HTTP/1.0 200 OK\n");
+
        if (print_standard_html_head > 0) {
                wprintf("Content-type: text/html\n");
                wprintf("Server: %s\n", SERVER);
@@ -409,7 +411,6 @@ void output_static(char *what)
                wprintf("\n");
                wprintf("Cannot open %s: %s\n", what, strerror(errno));
        } else {
-               wprintf("HTTP/1.0 200 OK\n");
                output_headers(0);
 
                if (!strncasecmp(&what[strlen(what) - 4], ".gif", 4))
@@ -456,7 +457,6 @@ void output_image()
        serv_gets(buf);
        if (buf[0] == '2') {
                bytes = extract_long(&buf[4], 0);
-               wprintf("HTTP/1.0 200 OK\n");
                output_headers(0);
                wprintf("Content-type: image/gif\n");
                wprintf("Content-length: %ld\n", (long) bytes);
@@ -874,7 +874,6 @@ void session_loop(struct httprequest *req)
        } else if (!strcasecmp(action, "display_menubar")) {
                display_menubar(1);
        } else if (!strcasecmp(action, "diagnostics")) {
-               wprintf("HTTP/1.0 200 OK\n");
                output_headers(1);
 
                wprintf("You're in session %d<HR>\n", WC->wc_session);
index a163ef47dcf8cf76e989678cf636857b24b29798..eb1b3b074bbd139c8e510ac19f8f6c17ce31b0b5 100644 (file)
@@ -70,14 +70,15 @@ int ig_tcp_server(int port_number, int queue_len)
        sin.sin_addr.s_addr = INADDR_ANY;
 
        if (port_number == 0) {
-               printf("webcit: Cannot start: no port number specified.\n");
+               fprintf(stderr,
+                       "webcit: Cannot start: no port number specified.\n");
                exit(1);
        }
        sin.sin_port = htons((u_short) port_number);
 
        s = socket(PF_INET, SOCK_STREAM, (getprotobyname("tcp")->p_proto));
        if (s < 0) {
-               printf("webcit: Can't create a socket: %s\n",
+               fprintf(stderr, "webcit: Can't create a socket: %s\n",
                       strerror(errno));
                exit(errno);
        }
@@ -86,11 +87,11 @@ int ig_tcp_server(int port_number, int queue_len)
        setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &i, sizeof(i));
 
        if (bind(s, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
-               printf("webcit: Can't bind: %s\n", strerror(errno));
+               fprintf(stderr, "webcit: Can't bind: %s\n", strerror(errno));
                exit(errno);
        }
        if (listen(s, queue_len) < 0) {
-               printf("webcit: Can't listen: %s\n", strerror(errno));
+               fprintf(stderr, "webcit: Can't listen: %s\n", strerror(errno));
                exit(errno);
        }
        return (s);
@@ -108,9 +109,8 @@ void client_write(int sock, char *buf, int nbytes)
                retval = write(sock, &buf[bytes_written],
                               nbytes - bytes_written);
                if (retval < 1) {
-                       printf("client_write() failed: %s\n",
+                       fprintf(stderr, "client_write() failed: %s\n",
                               strerror(errno));
-                       pthread_exit(NULL);
                }
                bytes_written = bytes_written + retval;
        }
@@ -161,9 +161,8 @@ int client_read_to(int sock, char *buf, int bytes, int timeout)
                }
                rlen = read(sock, &buf[len], bytes - len);
                if (rlen < 1) {
-                       printf("client_read() failed: %s\n",
+                       fprintf(stderr, "client_read() failed: %s\n",
                               strerror(errno));
-                       pthread_exit(NULL);
                }
                len = len + rlen;
        }
@@ -288,9 +287,9 @@ int main(int argc, char **argv)
         * There is no need to check for errors, because ig_tcp_server()
         * exits if it doesn't succeed.
         */
-       printf("Attempting to bind to port %d...\n", port);
+       fprintf(stderr, "Attempting to bind to port %d...\n", port);
        msock = ig_tcp_server(port, 5);
-       printf("Listening on socket %d\n", msock);
+       fprintf(stderr, "Listening on socket %d\n", msock);
        signal(SIGPIPE, SIG_IGN);
 
        pthread_mutex_init(&SessionListMutex, NULL);
@@ -317,7 +316,7 @@ int main(int argc, char **argv)
                if (pthread_create(&SessThread, &attr,
                                (void *(*)(void *)) worker_entry, NULL)
                    != 0) {
-                       printf("webcit: can't create thread: %s\n",
+                       fprintf(stderr, "webcit: can't create thread: %s\n",
                               strerror(errno));
                }
        }
@@ -344,9 +343,8 @@ void worker_entry(void) {
                ssock = accept(msock, (struct sockaddr *) &fsin, &alen);
                pthread_mutex_unlock(&AcceptQueue);
 
-               printf("New connection on socket %d\n", ssock);
                if (ssock < 0) {
-                       printf("webcit: accept() failed: %s\n",
+                       fprintf(stderr, "webcit: accept() failed: %s\n",
                        strerror(errno));
                } else {
                        /* Set the SO_REUSEADDR socket option */
index 8afc9d081470f0f214c856908ed0e8de29265b86..67fe43c64c0d05cd9ba94cd6e5fa63d19dd699cb 100644 (file)
@@ -49,7 +49,6 @@ void whobbs(void)
        char buf[256], sess, user[256], room[256], host[256];
        int foundit;
 
-       wprintf("HTTP/1.0 200 OK\n");
        output_headers(1);
 
        wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=007700><TR><TD>");
@@ -168,7 +167,6 @@ void terminate_session(void)
                        display_error(&buf[4]);
                }
        } else {
-               wprintf("HTTP/1.0 200 OK\n");
                output_headers(1);
                wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
                wprintf("<FONT FACE=\"Arial,Helvetica,sans-serif\" SIZE=+1 COLOR=\"FFFFFF\"<B>Confirm session termination");
@@ -217,7 +215,6 @@ void edit_me(void)
                whobbs();
        } else {
 
-               wprintf("HTTP/1.0 200 OK\n");
                output_headers(1);
 
                wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=000077><TR><TD>");