- } elsif ($path_info =~ m!$LISTNAME_RE\z!o) {
- invalid_list($ctx, $1) || r301($ctx, $1);
- } elsif ($path_info =~ m!$LISTNAME_RE(?:/|/index\.html)?\z!o) {
- invalid_list($ctx, $1) || get_index($ctx);
- } elsif ($path_info =~ m!$LISTNAME_RE/(?:atom\.xml|new\.atom)\z!o) {
- invalid_list($ctx, $1) || get_atom($ctx);
-
- } elsif ($path_info =~ m!$LISTNAME_RE/$MID_RE/$END_RE\z!o) {
- msg_page($ctx, $1, $2, $3);
-
+ } elsif ($path_info =~ m!$INBOX_RE\z!o) {
+ invalid_inbox($self, $ctx, $1) || r301($ctx, $1);
+ } elsif ($path_info =~ m!$INBOX_RE(?:/|/index\.html)?\z!o) {
+ invalid_inbox($self, $ctx, $1) || get_index($ctx);
+ } elsif ($path_info =~ m!$INBOX_RE/(?:atom\.xml|new\.atom)\z!o) {
+ invalid_inbox($self, $ctx, $1) || get_atom($ctx);
+
+ } elsif ($path_info =~ m!$INBOX_RE/
+ ($PublicInbox::GitHTTPBackend::ANY)\z!ox) {
+ my $path = $2;
+ invalid_inbox($self, $ctx, $1) ||
+ serve_git($cgi, $ctx->{git}, $path);
+ } elsif ($path_info =~ m!$INBOX_RE/([\w-]+).mbox\.gz\z!o) {
+ serve_mbox_range($self, $ctx, $1, $2);
+ } elsif ($path_info =~ m!$INBOX_RE/$MID_RE/$END_RE\z!o) {
+ msg_page($self, $ctx, $1, $2, $3);
+
+ } elsif ($path_info =~ m!$INBOX_RE/$MID_RE/$ATTACH_RE\z!o) {
+ my ($idx, $fn) = ($3, $4);
+ invalid_inbox_mid($self, $ctx, $1, $2) ||
+ get_attach($ctx, $idx, $fn);