From 673bdaf664596f35c55cc1b4efb83b922aa5b0a3 Mon Sep 17 00:00:00 2001 From: Uriel Date: Fri, 13 Mar 2009 13:04:25 +0100 Subject: [PATCH 1/7] Reorg headers, http headers now are echo-ed from werc.rc instead of being part of headers.tpl. This fixes some bugs in the handling HEAD and makes things a bit more clear. --- apps/blagh/app.rc | 5 +++-- apps/blagh/atom.tpl | 2 -- apps/blagh/rss20.tpl | 2 -- bin/werc.rc | 8 ++++++++ lib/default_master.tpl | 1 - lib/headers.tpl | 16 ++++++---------- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/apps/blagh/app.rc b/apps/blagh/app.rc index 1dad7f8..8ae26fa 100644 --- a/apps/blagh/app.rc +++ b/apps/blagh/app.rc @@ -35,10 +35,10 @@ fn blagh_init { ' } if not if(~ $req_path $blagh_uri^index.atom) - blagh_setup_feed_handlers atom.tpl + blagh_setup_feed_handlers atom.tpl 'application/atom+xml' if not if(~ $req_path $blagh_uri^index.rss) - blagh_setup_feed_handlers rss20.tpl + blagh_setup_feed_handlers rss20.tpl 'text/xml; charset=utf-8' if not if(~ $req_path $blagh_uri^new_post && ! ~ $#editor_mode 0) { handler_body_main=( tpl_handler `{get_lib_file blagh/new_post.tpl apps/blagh/new_post.tpl} ) @@ -56,6 +56,7 @@ fn blagh_init { fn blagh_setup_feed_handlers { handler_body_main=NOT_USED_by_blagh_feeds res_tail=() + http_content_type=$2 headers=() master_template=apps/blagh/$1 # Should we allow tempalte override? } diff --git a/apps/blagh/atom.tpl b/apps/blagh/atom.tpl index 85e5966..49ecbe1 100644 --- a/apps/blagh/atom.tpl +++ b/apps/blagh/atom.tpl @@ -1,5 +1,3 @@ -Content-Type: application/atom+xml - %{ diff --git a/apps/blagh/rss20.tpl b/apps/blagh/rss20.tpl index 38622d1..141e891 100644 --- a/apps/blagh/rss20.tpl +++ b/apps/blagh/rss20.tpl @@ -1,5 +1,3 @@ -Content-Type: text/xml; charset=utf-8 - %{ diff --git a/bin/werc.rc b/bin/werc.rc index 622695d..115622c 100755 --- a/bin/werc.rc +++ b/bin/werc.rc @@ -19,6 +19,7 @@ path=(. $PLAN9/bin ./bin /bin /usr/bin) headers=lib/headers.tpl res_tail='' +http_content_type='text/html' ll_add handlers_bar_left nav_tree werc_apps=( apps/* ) werc_root=`{pwd} @@ -112,9 +113,16 @@ fn werc_exec_request { setup_handlers + for(h in $extraHttpHeaders) + echo $h + echo 'Content-Type: '^$http_content_type + if(~ $REQUEST_METHOD HEAD) + exit + if(! ~ $#debug 0) dprint $"SERVER_NAME^$"REQUEST_URI - $"HTTP_USER_AGENT - $"REQUEST_METHOD - $"handler_body_main - $"master_template + template $headers $master_template | awk_buffer echo $res_tail } diff --git a/lib/default_master.tpl b/lib/default_master.tpl index 4811222..7bbdcf7 100644 --- a/lib/default_master.tpl +++ b/lib/default_master.tpl @@ -1,4 +1,3 @@ -