diff options
author | allen <allen@61ea717e-8e0c-4c3c-b38e-e9c67f54f1f1> | 2000-09-16 22:26:58 +0000 |
---|---|---|
committer | allen <allen@61ea717e-8e0c-4c3c-b38e-e9c67f54f1f1> | 2000-09-16 22:26:58 +0000 |
commit | 34fb933cc4f64bf1ea040844c33b7271a944ce22 (patch) | |
tree | 9735fd6b942726d8b20379287808347b9ed14e54 | |
parent | fd715d1efa7947489d73640f8ac7f766b4a940d9 (diff) |
Added message board ... need to add some protection for big messages
git-svn-id: http://svn.cactuscode.org/arrangements/CactusConnect/HTTPDExtra/trunk@5 61ea717e-8e0c-4c3c-b38e-e9c67f54f1f1
-rw-r--r-- | src/Groups.c | 108 |
1 files changed, 98 insertions, 10 deletions
diff --git a/src/Groups.c b/src/Groups.c index 84bfe1c..05ebbfc 100644 --- a/src/Groups.c +++ b/src/Groups.c @@ -24,12 +24,14 @@ CCTK_FILEVERSION(DevThorns_httpd_utils_Groups_c) ********************* Local Data Types *********************** ********************************************************************/ +static char memo[4098]; /******************************************************************** ********************* Local Routine Prototypes ********************* ********************************************************************/ static int GroupsPage(cGH *cctkGH, httpRequest *request, void *data); +static int MessagesPage(cGH *cctkGH, httpRequest *request, void *data); /******************************************************************** ********************* Other Routine Prototypes ********************* @@ -60,7 +62,10 @@ static int GroupsPage(cGH *cctkGH, httpRequest *request, void *data); int HTTPUTILS_RegisterPages(void) { /* Register the group info page. */ - HTTP_RegisterPage("/groups", GroupsPage, NULL); + HTTP_RegisterPage("/Groups", GroupsPage, NULL); + + /* Register the message board page. */ + HTTP_RegisterPage("/Messages", MessagesPage, NULL); } /******************************************************************** @@ -109,22 +114,22 @@ static int GroupsPage(cGH *cctkGH, httpRequest *request, void *data) /* Status message */ strcpy(message,"HTTP/1.0 200 OK\r\n"); - write(request->filedes, message, strlen(message)); + HTTP_Write(request, message, strlen(message)); /* Content-Type */ strcpy(message,"Content-Type: text/html\r\n\r\n"); - write(request->filedes, message, strlen(message)); + HTTP_Write(request, message, strlen(message)); /* Start the page */ strcpy(message,"<HTML><HEAD><TITLE>Cactus Simulation Group Information</TITLE>\n"); - write(request->filedes, message, strlen(message)); + HTTP_Write(request, message, strlen(message)); - /* Write out the header part. */ + /* HTTP_Write out the header part. */ - retval = write(request->filedes, cactus_header, strlen(cactus_header)); + retval = HTTP_Write(request, cactus_header, strlen(cactus_header)); { int i,j; @@ -164,23 +169,106 @@ static int GroupsPage(cGH *cctkGH, httpRequest *request, void *data) } - write(request->filedes, message, strlen(message)); + HTTP_Write(request, message, strlen(message)); /* Finish table started by blurb */ strcpy(message, "</td></tr></table>"); - write(request->filedes, message, strlen(message)); + HTTP_Write(request, message, strlen(message)); /* Write out the footer part. */ - retval = write(request->filedes, cactus_footer, strlen(cactus_footer)); + retval = HTTP_Write(request, cactus_footer, strlen(cactus_footer)); - /* retval = write(request->filedes, base_page, strlen(base_page)); */ + /* retval = HTTP_Write(request, base_page, strlen(base_page)); */ return retval; } + /*@@ + @routine MessagesPage + @date Sat Sep 16 + @author Gabrielle + @desc + Message board for simulation. + @enddesc + @calls + @calledby +@@*/ +static int MessagesPage(cGH *cctkGH, httpRequest *request, void *data) +{ + int retval; + char message[4098]; + const httpArg *argument; + + if (request->n_arguments > 0) + { + argument = HTTP_ArgumentWalk(request, 1); + if (argument) + { + sprintf(memo,"%s\n\n<p><strong>%s</strong><br>",memo,argument->value); + } + argument = HTTP_ArgumentWalk(request, 0); + if (argument) + { + sprintf(memo,"%s\n\n<i>%s</i></p>",memo,argument->value); + } + } + + /* Status message */ + strcpy(message,"HTTP/1.0 200 OK\r\n"); + + HTTP_Write(request, message, strlen(message)); + + /* Content-Type */ + strcpy(message,"Content-Type: text/html\r\n\r\n"); + + HTTP_Write(request, message, strlen(message)); + + /* Start the page */ + strcpy(message,"<HTML><HEAD><TITLE>CACTUS Messages</TITLE>\n"); + + HTTP_Write(request, message, strlen(message)); + + /* Write out the header part */ + HTTP_Write(request, cactus_header, strlen(cactus_header)); + + strcpy(message,"<H1>Simulation Message Board</H1>\n"); + + HTTP_Write(request, message, strlen(message)); + + sprintf(message, + "<FORM ACTION=\"/Messages/\">\n"); + HTTP_Write(request, message, strlen(message)); + + sprintf(message,"<p>Name:<br>" + "<INPUT TYPE=TEXT SIZE=40 MAXLENGTH=100 NAME=\"name\" VALUE=\"\"><br>\n"); + + HTTP_Write(request, message, strlen(message)); + + sprintf(message,"Message:</br>" + "<TEXTAREA NAME=\"memo\" ROWS=10 COLS=40></TEXTAREA></p>\n"); + + HTTP_Write(request, message, strlen(message)); + + sprintf(message, + "<p><INPUT TYPE=SUBMIT VALUE=\"Submit Message\"></FORM></p>\n"); + + HTTP_Write(request, message, strlen(message)); + + sprintf(message,"<table width=100% cellpadding=5 border=1><tr><td>%s</td></tr></table>",memo); + + HTTP_Write(request, message, strlen(message)); + + + /* Write out the footer part. */ + + retval = HTTP_Write(request, cactus_footer, strlen(cactus_footer)); + + return retval; +} + |