List for cgit developers and users
 help / color / mirror / Atom feed
* [PATCH 00/17] HTTP response code improvements
@ 2015-04-05 15:54 john
  2015-04-05 15:54 ` [PATCH 01/17] ui-shared: add cgit_print_error_page() function john
                   ` (18 more replies)
  0 siblings, 19 replies; 52+ messages in thread
From: john @ 2015-04-05 15:54 UTC (permalink / raw)


Following Nicolas' report[0] about CGit caching error pages I've been
looking into ways of (optionally) avoiding caching error responses.

This series doesn't achieve that but it does give us two features that
will help to do so (neither of which are the case without this series of
patches):

1) Always return an HTTP error code if something goes wrong
2) Always set "ctx.page.status" when returning an error page

Without these changes CGit generally returns a "200 OK" response if
anything goes wrong after we have parsed the URL and found the
repository.  For example: unrecognised refs, unknown paths in trees,
corrupt objects in the repository.  This change requires moving the
layout start and end code into the individual page printing functions so
that we can delay printing the HTTP headers until we have resolved all
of the request parameters.

A more controversial change in this series is that we now always
generate an HTML response when an error occurs.  There are several cases
where this means that a response body will now be returned where there
was none before.  I think this is generally better, but I could be
convinced that there are some cases where we should not do this.

[0] http://lists.zx2c4.com/pipermail/cgit/2015-March/002464.html

John Keeping (17):
  ui-shared: add cgit_print_error_page() function
  cgit: use cgit_print_error_page() where appropriate
  clone: use cgit_print_error_page() instead of html_status()
  plain: use cgit_print_error_page() instead of html_status()
  snapshot: use cgit_print_error_page() instead of html_status()
  html: remove html_status()
  ui-shared: add cgit_print_layout_{start,end}()
  about: move layout into page functions
  commit: move layout into page function
  diff: move layout to page function
  log: move layout into page function
  refs: move layout to page function
  stats: move layout into page function
  summary: move layout into page function
  tag: move layout into page function
  tree: move layout into page function
  cmd: remove "want_layout" field

 cgit.c        | 36 +++++++-----------------------------
 cmd.c         | 44 ++++++++++++++++++++++----------------------
 cmd.h         |  1 -
 html.c        |  7 -------
 html.h        |  1 -
 ui-clone.c    | 10 +++++-----
 ui-commit.c   |  8 ++++++--
 ui-diff.c     | 19 ++++++++++++++-----
 ui-log.c      |  5 ++++-
 ui-plain.c    | 10 +++++-----
 ui-refs.c     |  3 ++-
 ui-repolist.c |  5 ++++-
 ui-shared.c   | 26 ++++++++++++++++++++++++++
 ui-shared.h   |  5 +++++
 ui-snapshot.c |  2 +-
 ui-stats.c    |  8 ++++++--
 ui-summary.c  | 10 ++++++++--
 ui-tag.c      | 13 ++++++++++---
 ui-tree.c     | 13 ++++++++++---
 19 files changed, 135 insertions(+), 91 deletions(-)

-- 
2.4.0.rc0.173.gb1cefcc



^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2015-08-14 14:40 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-05 15:54 [PATCH 00/17] HTTP response code improvements john
2015-04-05 15:54 ` [PATCH 01/17] ui-shared: add cgit_print_error_page() function john
2015-04-07 13:23   ` Jason
2015-04-07 13:32     ` john
2015-04-07 13:36       ` Jason
2015-04-07 18:17         ` john
2015-04-05 15:54 ` [PATCH 02/17] cgit: use cgit_print_error_page() where appropriate john
2015-04-05 15:54 ` [PATCH 03/17] clone: use cgit_print_error_page() instead of html_status() john
2015-04-05 15:54 ` [PATCH 04/17] plain: " john
2015-04-05 15:54 ` [PATCH 05/17] snapshot: " john
2015-04-05 15:54 ` [PATCH 06/17] html: remove html_status() john
2015-04-05 15:54 ` [PATCH 07/17] ui-shared: add cgit_print_layout_{start,end}() john
2015-04-05 15:54 ` [PATCH 08/17] about: move layout into page functions john
2015-04-05 15:54 ` [PATCH 09/17] commit: move layout into page function john
2015-04-05 15:54 ` [PATCH 10/17] diff: move layout to " john
2015-04-05 15:54 ` [PATCH 11/17] log: move layout into " john
2015-04-05 15:54 ` [PATCH 12/17] refs: move layout to " john
2015-04-05 15:54 ` [PATCH 13/17] stats: move layout into " john
2015-04-05 15:55 ` [PATCH 14/17] summary: " john
2015-04-05 15:55 ` [PATCH 15/17] tag: " john
2015-04-05 15:55 ` [PATCH 16/17] tree: " john
2015-04-05 18:31   ` john
2015-04-05 15:55 ` [PATCH 17/17] cmd: remove "want_layout" field john
2015-04-05 16:28 ` [PATCH 00/17] HTTP response code improvements john
2015-08-14 11:47 ` [PATCH v2 00/22] HTTP status " john
2015-08-14 11:47   ` [PATCH v2 01/22] ui-shared: add cgit_print_error_page() function john
2015-08-14 11:47   ` [PATCH v2 02/22] cgit: use cgit_print_error_page() where appropriate john
2015-08-14 11:47   ` [PATCH v2 03/22] clone: use cgit_print_error_page() instead of html_status() john
2015-08-14 11:47   ` [PATCH v2 04/22] plain: " john
2015-08-14 11:47   ` [PATCH v2 05/22] snapshot: " john
2015-08-14 11:47   ` [PATCH v2 06/22] blob: use cgit_print_error_page() to add HTTP headers john
2015-08-14 11:47   ` [PATCH v2 07/22] patch: use cgit_print_error_page() for HTTP status codes john
2015-08-14 11:47   ` [PATCH v2 08/22] snapshot: " john
2015-08-14 11:47   ` [PATCH v2 09/22] snapshot: don't reimplement cgit_print_error_page() john
2015-08-14 11:47   ` [PATCH v2 10/22] html: remove html_status() john
2015-08-14 11:47   ` [PATCH v2 11/22] ui-shared: add cgit_print_layout_{start,end}() john
2015-08-14 11:47   ` [PATCH v2 12/22] about: move layout into page functions john
2015-08-14 11:47   ` [PATCH v2 13/22] commit: move layout into page function john
2015-08-14 11:47   ` [PATCH v2 14/22] diff: move layout to " john
2015-08-14 11:47   ` [PATCH v2 15/22] log: move layout into " john
2015-08-14 11:47   ` [PATCH v2 16/22] refs: move layout to " john
2015-08-14 11:47   ` [PATCH v2 17/22] stats: move layout into " john
2015-08-14 11:47   ` [PATCH v2 18/22] summary: " john
2015-08-14 11:47   ` [PATCH v2 19/22] tag: " john
2015-08-14 11:47   ` [PATCH v2 20/22] tree: " john
2015-08-14 11:47   ` [PATCH v2 21/22] cmd: remove "want_layout" field john
2015-08-14 11:47   ` [PATCH v2 22/22] ui-shared: cache errors for "dynamic TTL" john
2015-08-14 12:17   ` [PATCH v2 00/22] HTTP status code improvements nicolas.dely
2015-08-14 13:56   ` Jason
2015-08-14 14:20     ` john
2015-08-14 14:24       ` list
2015-08-14 14:40         ` Jason

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).