mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-27 14:58:30 +00:00
Add HTTP/HTTPS Fetch() API to redbean
You can now say the following in your redbean Lua code: status,headers,payload = Fetch("https://foo.example") The following Lua APIs have been introduced: - Fetch(str) → str,{str:str},str - GetHttpReason(int) → str - GetHttpReason(int) → str - ProgramSslFetchVerify(bool) - ProgramSslClientVerify(bool) The following flags have been introduced: - `-j` enables client SSL verification - `-k` disables Fetch() SSL verification - `-t INT` may now be passed a negative value for keepalive Lua exceptions now invoke Cosmopolitan's garbage collector when unwinding the stack. So it's now safe to use _gc() w/ Lua 𝔱𝔥𝔯𝔬𝔴 See #97
This commit is contained in:
parent
36b2710e1a
commit
c89bc56f6a
35 changed files with 1611 additions and 591 deletions
|
@ -720,11 +720,13 @@ syscon sol SOL_X25 262 0 0 0 0 0
|
|||
syscon tcp TCP_NODELAY 1 1 1 1 1 1 # strong consensus for disabling nagle's algorithm; so be sure to disable it by turning this on
|
||||
syscon tcp TCP_CORK 3 4 4 16 0 0 # nagle's algorithm strikes again; TCP_NOPUSH on BSD; be sure to turn it off; protip: mmap+writev vs. write+sendfile; see also /proc/sys/net/ipv4/tcp_autocorking; netbsd is 4 but not implemented
|
||||
syscon tcp TCP_MAXSEG 2 2 2 2 2 0 # reduces tcp segment size; see also tcp offloading
|
||||
syscon tcp TCP_FASTOPEN 23 0 0x0401 0 0 15 # reduces roundtrips; for listener; Linux 3.7+ (c. 2012) / or is windows it 0x22? /proc/sys/net/ipv4/tcp_fastopen TODO(jart): MSG_FASTOPEN; XNU sources say 261 but not sure if that's true
|
||||
syscon tcp TCP_FASTOPEN 23 0 0x0401 0 0 15 # reduces roundtrips; for listener; Linux 3.7+ (c. 2012) / or is windows it 0x22? /proc/sys/net/ipv4/tcp_fastopen TODO(jart): MSG_FASTOPEN; XNU sources say 261 but not sure if that's true
|
||||
syscon tcp TCP_FASTOPEN_CONNECT 30 0 0 0 0 0 # reduces roundtrips; for listener; Linux 3.7+ (c. 2012) / or is windows it 0x22? /proc/sys/net/ipv4/tcp_fastopen TODO(jart): MSG_FASTOPEN; XNU sources say 261 but not sure if that's true
|
||||
syscon tcp TCP_KEEPIDLE 4 0 0x100 0 3 0 # keepalives
|
||||
syscon tcp TCP_KEEPINTVL 5 0x101 0x200 0 5 0 # keepalives
|
||||
syscon tcp TCP_KEEPCNT 6 0x102 0x400 0 6 0 # keepalives
|
||||
syscon tcp TCP_SYNCNT 7 0 0 0 0 0 # how hard to syn packet the enemy
|
||||
syscon tcp TCP_ULP 31 0 0 0 0 0 # setsockopt(sock, IPPROTO_TCP, TCP_ULP, "tls", 4)
|
||||
syscon tcp TCP_COOKIE_TRANSACTIONS 15 0 0 0 0 0 # defense against the syn packets
|
||||
syscon tcp TCP_LINGER2 8 0 0 0 0 0 # orphaned fin-wait-2 lifetime cf. net.ipv4.tcp_fin_timeout see cloudflare blog
|
||||
syscon tcp TCP_NOTSENT_LOWAT 25 513 0 0 0 0 # limit unset byte queue
|
||||
|
|
2
libc/sysv/consts/TCP_FASTOPEN_CONNECT.S
Normal file
2
libc/sysv/consts/TCP_FASTOPEN_CONNECT.S
Normal file
|
@ -0,0 +1,2 @@
|
|||
#include "libc/sysv/consts/syscon.internal.h"
|
||||
.syscon tcp,TCP_FASTOPEN_CONNECT,30,0,0,0,0,0
|
2
libc/sysv/consts/TCP_ULP.S
Normal file
2
libc/sysv/consts/TCP_ULP.S
Normal file
|
@ -0,0 +1,2 @@
|
|||
#include "libc/sysv/consts/syscon.internal.h"
|
||||
.syscon tcp,TCP_ULP,31,0,0,0,0,0
|
|
@ -10,6 +10,7 @@ extern const long TCP_COOKIE_TRANSACTIONS;
|
|||
extern const long TCP_CORK;
|
||||
extern const long TCP_DEFER_ACCEPT;
|
||||
extern const long TCP_FASTOPEN;
|
||||
extern const long TCP_FASTOPEN_CONNECT;
|
||||
extern const long TCP_INFO;
|
||||
extern const long TCP_KEEPCNT;
|
||||
extern const long TCP_KEEPIDLE;
|
||||
|
@ -31,40 +32,43 @@ extern const long TCP_SYNCNT;
|
|||
extern const long TCP_THIN_DUPACK;
|
||||
extern const long TCP_THIN_LINEAR_TIMEOUTS;
|
||||
extern const long TCP_TIMESTAMP;
|
||||
extern const long TCP_ULP;
|
||||
extern const long TCP_USER_TIMEOUT;
|
||||
extern const long TCP_WINDOW_CLAMP;
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
|
||||
#define TCP_CC_INFO SYMBOLIC(TCP_CC_INFO)
|
||||
#define TCP_CONGESTION SYMBOLIC(TCP_CONGESTION)
|
||||
#define TCP_COOKIE_TRANSACTIONS SYMBOLIC(TCP_COOKIE_TRANSACTIONS)
|
||||
#define TCP_CORK SYMBOLIC(TCP_CORK)
|
||||
#define TCP_DEFER_ACCEPT SYMBOLIC(TCP_DEFER_ACCEPT)
|
||||
#define TCP_FASTOPEN SYMBOLIC(TCP_FASTOPEN)
|
||||
#define TCP_INFO SYMBOLIC(TCP_INFO)
|
||||
#define TCP_KEEPCNT SYMBOLIC(TCP_KEEPCNT)
|
||||
#define TCP_KEEPIDLE SYMBOLIC(TCP_KEEPIDLE)
|
||||
#define TCP_KEEPINTVL SYMBOLIC(TCP_KEEPINTVL)
|
||||
#define TCP_LINGER2 SYMBOLIC(TCP_LINGER2)
|
||||
#define TCP_MAXSEG SYMBOLIC(TCP_MAXSEG)
|
||||
#define TCP_MD5SIG SYMBOLIC(TCP_MD5SIG)
|
||||
#define TCP_MD5SIG_MAXKEYLEN SYMBOLIC(TCP_MD5SIG_MAXKEYLEN)
|
||||
#define TCP_NODELAY LITERALLY(1)
|
||||
#define TCP_NOTSENT_LOWAT SYMBOLIC(TCP_NOTSENT_LOWAT)
|
||||
#define TCP_QUEUE_SEQ SYMBOLIC(TCP_QUEUE_SEQ)
|
||||
#define TCP_QUICKACK SYMBOLIC(TCP_QUICKACK)
|
||||
#define TCP_REPAIR SYMBOLIC(TCP_REPAIR)
|
||||
#define TCP_REPAIR_OPTIONS SYMBOLIC(TCP_REPAIR_OPTIONS)
|
||||
#define TCP_REPAIR_QUEUE SYMBOLIC(TCP_REPAIR_QUEUE)
|
||||
#define TCP_SAVED_SYN SYMBOLIC(TCP_SAVED_SYN)
|
||||
#define TCP_SAVE_SYN SYMBOLIC(TCP_SAVE_SYN)
|
||||
#define TCP_SYNCNT SYMBOLIC(TCP_SYNCNT)
|
||||
#define TCP_THIN_DUPACK SYMBOLIC(TCP_THIN_DUPACK)
|
||||
#define TCP_CC_INFO SYMBOLIC(TCP_CC_INFO)
|
||||
#define TCP_CONGESTION SYMBOLIC(TCP_CONGESTION)
|
||||
#define TCP_COOKIE_TRANSACTIONS SYMBOLIC(TCP_COOKIE_TRANSACTIONS)
|
||||
#define TCP_CORK SYMBOLIC(TCP_CORK)
|
||||
#define TCP_DEFER_ACCEPT SYMBOLIC(TCP_DEFER_ACCEPT)
|
||||
#define TCP_FASTOPEN SYMBOLIC(TCP_FASTOPEN)
|
||||
#define TCP_FASTOPEN_CONNECT SYMBOLIC(TCP_FASTOPEN_CONNECT)
|
||||
#define TCP_INFO SYMBOLIC(TCP_INFO)
|
||||
#define TCP_KEEPCNT SYMBOLIC(TCP_KEEPCNT)
|
||||
#define TCP_KEEPIDLE SYMBOLIC(TCP_KEEPIDLE)
|
||||
#define TCP_KEEPINTVL SYMBOLIC(TCP_KEEPINTVL)
|
||||
#define TCP_LINGER2 SYMBOLIC(TCP_LINGER2)
|
||||
#define TCP_MAXSEG SYMBOLIC(TCP_MAXSEG)
|
||||
#define TCP_MD5SIG SYMBOLIC(TCP_MD5SIG)
|
||||
#define TCP_MD5SIG_MAXKEYLEN SYMBOLIC(TCP_MD5SIG_MAXKEYLEN)
|
||||
#define TCP_NODELAY LITERALLY(1)
|
||||
#define TCP_NOTSENT_LOWAT SYMBOLIC(TCP_NOTSENT_LOWAT)
|
||||
#define TCP_QUEUE_SEQ SYMBOLIC(TCP_QUEUE_SEQ)
|
||||
#define TCP_QUICKACK SYMBOLIC(TCP_QUICKACK)
|
||||
#define TCP_REPAIR SYMBOLIC(TCP_REPAIR)
|
||||
#define TCP_REPAIR_OPTIONS SYMBOLIC(TCP_REPAIR_OPTIONS)
|
||||
#define TCP_REPAIR_QUEUE SYMBOLIC(TCP_REPAIR_QUEUE)
|
||||
#define TCP_SAVED_SYN SYMBOLIC(TCP_SAVED_SYN)
|
||||
#define TCP_SAVE_SYN SYMBOLIC(TCP_SAVE_SYN)
|
||||
#define TCP_SYNCNT SYMBOLIC(TCP_SYNCNT)
|
||||
#define TCP_THIN_DUPACK SYMBOLIC(TCP_THIN_DUPACK)
|
||||
#define TCP_THIN_LINEAR_TIMEOUTS SYMBOLIC(TCP_THIN_LINEAR_TIMEOUTS)
|
||||
#define TCP_TIMESTAMP SYMBOLIC(TCP_TIMESTAMP)
|
||||
#define TCP_USER_TIMEOUT SYMBOLIC(TCP_USER_TIMEOUT)
|
||||
#define TCP_WINDOW_CLAMP SYMBOLIC(TCP_WINDOW_CLAMP)
|
||||
#define TCP_TIMESTAMP SYMBOLIC(TCP_TIMESTAMP)
|
||||
#define TCP_ULP SYMBOLIC(TCP_ULP)
|
||||
#define TCP_USER_TIMEOUT SYMBOLIC(TCP_USER_TIMEOUT)
|
||||
#define TCP_WINDOW_CLAMP SYMBOLIC(TCP_WINDOW_CLAMP)
|
||||
|
||||
#endif /* COSMOPOLITAN_LIBC_SYSV_CONSTS_TCP_H_ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue