summaryrefslogtreecommitdiff
path: root/src/c
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-11-06 12:22:50 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-11-06 12:22:50 -0500
commit6e41a0ca24381fa5545fe82004275e661dd8dd6e (patch)
treef912371c11c979cbede6963adb21a3fe2318623b /src/c
parentbffeb0e5a10ae58b8f7c3f5249b3665373236e21 (diff)
Cookie demo code; fix error message display
Diffstat (limited to 'src/c')
-rw-r--r--src/c/driver.c23
-rw-r--r--src/c/urweb.c12
2 files changed, 14 insertions, 21 deletions
diff --git a/src/c/driver.c b/src/c/driver.c
index 438adb8d..d884c025 100644
--- a/src/c/driver.c
+++ b/src/c/driver.c
@@ -189,6 +189,7 @@ static void *worker(void *data) {
printf("Serving URI %s....\n", path);
uw_set_headers(ctx, headers);
+ uw_write(ctx, "<html>");
while (1) {
if (uw_db_begin(ctx)) {
@@ -198,8 +199,8 @@ static void *worker(void *data) {
else {
fk = FATAL;
uw_reset(ctx);
- uw_write(ctx, "HTTP/1.1 500 Internal Server Error\n\r");
- uw_write(ctx, "Content-type: text/plain\r\n\r\n");
+ uw_write_header(ctx, "HTTP/1.1 500 Internal Server Error\n\r");
+ uw_write_header(ctx, "Content-type: text/plain\r\n\r\n");
uw_write(ctx, "Error running SQL BEGIN\n");
break;
@@ -212,13 +213,15 @@ static void *worker(void *data) {
strcpy(path_copy, path);
fk = uw_begin(ctx, path_copy);
if (fk == SUCCESS) {
+ uw_write(ctx, "</html>");
+
if (uw_db_commit(ctx)) {
fk = FATAL;
printf("Error running SQL COMMIT\n");
uw_reset(ctx);
- uw_write(ctx, "HTTP/1.1 500 Internal Server Error\n\r");
- uw_write(ctx, "Content-type: text/plain\r\n\r\n");
+ uw_write_header(ctx, "HTTP/1.1 500 Internal Server Error\n\r");
+ uw_write_header(ctx, "Content-type: text/plain\r\n");
uw_write(ctx, "Error running SQL COMMIT\n");
}
@@ -232,8 +235,8 @@ static void *worker(void *data) {
printf("Fatal error (out of retries): %s\n", uw_error_message(ctx));
uw_reset_keep_error_message(ctx);
- uw_write(ctx, "HTTP/1.1 500 Internal Server Error\n\r");
- uw_write(ctx, "Content-type: text/plain\r\n\r\n");
+ uw_write_header(ctx, "HTTP/1.1 500 Internal Server Error\n\r");
+ uw_write_header(ctx, "Content-type: text/plain\r\n");
uw_write(ctx, "Fatal error (out of retries): ");
uw_write(ctx, uw_error_message(ctx));
uw_write(ctx, "\n");
@@ -248,8 +251,8 @@ static void *worker(void *data) {
printf("Fatal error: %s\n", uw_error_message(ctx));
uw_reset_keep_error_message(ctx);
- uw_write(ctx, "HTTP/1.1 500 Internal Server Error\n\r");
- uw_write(ctx, "Content-type: text/plain\r\n\r\n");
+ uw_write_header(ctx, "HTTP/1.1 500 Internal Server Error\r\n");
+ uw_write_header(ctx, "Content-type: text/plain\r\n");
uw_write(ctx, "Fatal error: ");
uw_write(ctx, uw_error_message(ctx));
uw_write(ctx, "\n");
@@ -261,8 +264,8 @@ static void *worker(void *data) {
printf("Unknown uw_handle return code!\n");
uw_reset_keep_request(ctx);
- uw_write(ctx, "HTTP/1.1 500 Internal Server Error\n\r");
- uw_write(ctx, "Content-type: text/plain\r\n\r\n");
+ uw_write_header(ctx, "HTTP/1.1 500 Internal Server Error\n\r");
+ uw_write_header(ctx, "Content-type: text/plain\r\n");
uw_write(ctx, "Unknown uw_handle return code!\n");
try_rollback(ctx);
diff --git a/src/c/urweb.c b/src/c/urweb.c
index be12c5ea..cc21c558 100644
--- a/src/c/urweb.c
+++ b/src/c/urweb.c
@@ -315,17 +315,7 @@ int uw_send(uw_context ctx, int sock) {
if (n < 0)
return n;
- n = uw_really_send(sock, "<html>", 6);
-
- if (n < 0)
- return n;
-
- n = uw_really_send(sock, ctx->page, ctx->page_front - ctx->page);
-
- if (n < 0)
- return n;
-
- return uw_really_send(sock, "</html>", 7);
+ return uw_really_send(sock, ctx->page, ctx->page_front - ctx->page);
}
static void uw_check_headers(uw_context ctx, size_t extra) {