aboutsummaryrefslogtreecommitdiff
path: root/src/Content.c
diff options
context:
space:
mode:
authorgoodale <goodale@1faa4e14-9dd3-4be0-9f0e-ffe519881164>2000-09-15 12:45:27 +0000
committergoodale <goodale@1faa4e14-9dd3-4be0-9f0e-ffe519881164>2000-09-15 12:45:27 +0000
commit9ca8518895939d3ae82c937bed7f2b545a9f9e39 (patch)
tree6a4f12a4f4c472bffac1dbffb2b5a877bf2c0beb /src/Content.c
parent3c4f4b1e6a1de4d6e16a70af4d11fc11ddb11da9 (diff)
Made parallel aware.
Added stuff for parameter steering. See doc/Steering.txt. Added stuff for HTTP Basic authentication. See doc/Auth.txt. Tom git-svn-id: http://svn.cactuscode.org/arrangements/CactusConnect/HTTPD/trunk@9 1faa4e14-9dd3-4be0-9f0e-ffe519881164
Diffstat (limited to 'src/Content.c')
-rw-r--r--src/Content.c67
1 files changed, 65 insertions, 2 deletions
diff --git a/src/Content.c b/src/Content.c
index 3e95e74..b1f6c34 100644
--- a/src/Content.c
+++ b/src/Content.c
@@ -12,6 +12,7 @@
@@*/
#include <stdio.h>
+#include <string.h>
#include "cctk.h"
@@ -19,6 +20,8 @@
#include "http_Request.h"
+#include "http_Auth.h"
+
static char *rcsid = "$Header$";
CCTK_FILEVERSION(DevThorns_httpd_Content_c)
@@ -47,6 +50,8 @@ static int ShowStaticPage(cGH *cctkGH, httpRequest *request, void *data);
static int TestPage(cGH *cctkGH, httpRequest *request, void *data);
+static int AuthPage(cGH *cctkGH, httpRequest *request, void *data);
+
static int CompareStrings(const void *string1, const void *string2);
/********************************************************************
@@ -91,6 +96,10 @@ int HTTP_RegisterPages(void)
/* Register a test page */
HTTP_RegisterPage("/test_page", TestPage, NULL);
+ HTTP_RegisterPage("/auth_page", AuthPage, NULL);
+
+ HTTP_AuthAddUser("user","goodale","foo","none");
+
/* Registrer images */
RegisterImages();
}
@@ -696,9 +705,9 @@ static int TestPage(cGH *cctkGH, httpRequest *request, void *data)
write(request->filedes, message, strlen(message));
- value = HTTP_ArgumentValue(request, "cmd");
+ value = HTTP_ArgumentValue(request, "text");
- sprintf(message, "cmd = %s<hr>\n", value);
+ sprintf(message, "text = %s<hr>\n", value);
write(request->filedes, message, strlen(message));
@@ -715,3 +724,57 @@ static int TestPage(cGH *cctkGH, httpRequest *request, void *data)
return retval;
}
+
+
+static const char *notauthorized_page =
+"<HTML>\n<HEAD><TITLE>Error 401: Not Authorized</TITLE></HEAD>\
+<BODY>You are not authorized to access this page</BODY>\n<HTML>\n";
+
+static const char *authorized_page =
+"<HTML>\n<HEAD><TITLE>Authorized</TITLE></HEAD>\
+<BODY>Congratulations !</BODY>\n<HTML>\n";
+
+static int AuthPage(cGH *cctkGH, httpRequest *request, void *data)
+{
+ int retval;
+ char message[1024];
+
+ int notauthorised;
+
+ notauthorised = HTTP_AuthenticateBasic(request, "user");
+
+ if(!notauthorised)
+ {
+ strcpy(message,"HTTP/1.0 200 Ok\r\n");
+
+ write(request->filedes, message, strlen(message));
+
+ strcpy(message,"WWW-Authenticate: Basic realm=\"foo\"\r\n");
+
+ write(request->filedes, message, strlen(message));
+
+ strcpy(message,"Content-Type: text/html\r\n\r\n");
+
+ write(request->filedes, message, strlen(message));
+
+ write(request->filedes, authorized_page, strlen(authorized_page));
+ }
+ else
+ {
+ strcpy(message,"HTTP/1.0 401 Unauthorized\r\n");
+
+ write(request->filedes, message, strlen(message));
+
+ strcpy(message,"WWW-Authenticate: Basic realm=\"foo\"\r\n");
+
+ write(request->filedes, message, strlen(message));
+
+ strcpy(message,"Content-Type: text/html\r\n\r\n");
+
+ write(request->filedes, message, strlen(message));
+
+ write(request->filedes, notauthorized_page, strlen(notauthorized_page));
+ }
+
+ return 0;
+}