mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-28 00:02:28 +00:00
Have redbean show zip listing as default / handler
If an "index.lua" or "index.html" doesn't exist in zip file or the filesystem, and no redirects have been defined for it either, then redbean will render a listing of the zip central directory content only if the request uri points to the root path.
This commit is contained in:
parent
ae300d0c40
commit
1753b669cf
10 changed files with 436 additions and 112 deletions
|
@ -22,15 +22,29 @@
|
|||
#include "libc/sysv/consts/sock.h"
|
||||
|
||||
int sys_socket(int family, int type, int protocol) {
|
||||
int rc, olderr, modernflags;
|
||||
olderr = errno;
|
||||
rc = __sys_socket(family, type, protocol);
|
||||
if ((SupportsLinux() || SupportsXnu()) &&
|
||||
(rc == -1 && errno == EINVAL /* rhel5 behavior */) &&
|
||||
(modernflags = (type & (SOCK_CLOEXEC | SOCK_NONBLOCK)))) {
|
||||
errno = olderr;
|
||||
rc = __fixupnewsockfd(__sys_socket(family, type & ~modernflags, protocol),
|
||||
modernflags);
|
||||
static bool once, demodernize;
|
||||
int sock, olderr;
|
||||
if (!once && (type & (SOCK_CLOEXEC | SOCK_NONBLOCK))) {
|
||||
if (IsXnu()) {
|
||||
demodernize = true;
|
||||
once = true;
|
||||
} else {
|
||||
olderr = errno;
|
||||
if ((sock = __sys_socket(family, type, protocol)) != -1) {
|
||||
once = true;
|
||||
return sock;
|
||||
} else {
|
||||
errno = olderr;
|
||||
demodernize = true;
|
||||
once = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!demodernize) {
|
||||
return __sys_socket(family, type, protocol);
|
||||
} else {
|
||||
return __fixupnewsockfd(
|
||||
__sys_socket(family, type & ~(SOCK_CLOEXEC | SOCK_NONBLOCK), protocol),
|
||||
type);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue