aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorallen <allen@61ea717e-8e0c-4c3c-b38e-e9c67f54f1f1>2000-09-16 22:26:58 +0000
committerallen <allen@61ea717e-8e0c-4c3c-b38e-e9c67f54f1f1>2000-09-16 22:26:58 +0000
commit34fb933cc4f64bf1ea040844c33b7271a944ce22 (patch)
tree9735fd6b942726d8b20379287808347b9ed14e54
parentfd715d1efa7947489d73640f8ac7f766b4a940d9 (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.c108
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;
+}
+