commit - 9711a56ef7f3c9977ef6a188095f50d35db53ce3
commit + 3d9ef5b47476cc2d6aa05a8851e4acdfb02ad137
blob - 78bfac7fdedee95ead1b839ad082fa8f350b7567
blob + fc37148221bb216be2cb642ddc0ea36cf5e6c0a2
--- config.c
+++ config.c
-/* $OpenBSD: config.c,v 1.70 2026/05/10 10:02:04 kirill Exp $ */
+/* $OpenBSD: config.c,v 1.71 2026/05/11 22:33:10 kirill Exp $ */
/*
* Copyright (c) 2011 - 2015 Reyk Floeter <reyk@openbsd.org>
#endif
struct server_config *srv_conf, *parent;
uint8_t *p = imsg->data;
- unsigned int f;
+ uint64_t f;
size_t s;
if ((srv_conf = calloc(1, sizeof(*srv_conf))) == NULL)
blob - 4f84c00c6449947f21a1bd41ac874f2ea9e495e3
blob + b3a6b83f0d25027a2311ba43e2d03178f0f08234
--- httpd.c
+++ httpd.c
-/* $OpenBSD: httpd.c,v 1.77 2026/03/02 19:24:58 rsadowski Exp $ */
+/* $OpenBSD: httpd.c,v 1.78 2026/05/11 22:33:10 kirill Exp $ */
/*
* Copyright (c) 2014 Reyk Floeter <reyk@openbsd.org>
}
const char *
-printb_flags(const uint32_t v, const char *bits)
+printb_flags(const uint64_t v, const char *bits)
{
static char buf[2][BUFSIZ];
static int idx = 0;
if (bits) {
bits++;
while ((i = *bits++)) {
- if (v & (1 << (i - 1))) {
+ if (v & (1ULL << (i - 1))) {
if (any) {
*p++ = ',';
*p++ = ' ';
}
any = 1;
- for (; (c = *bits) > 32; bits++) {
+ for (; isalnum((unsigned char)*bits) ||
+ *bits == '_'; bits++) {
+ c = *bits;
if (c == '_')
*p++ = ' ';
else
tolower((unsigned char)c);
}
} else
- for (; *bits > 32; bits++)
+ for (; isalnum((unsigned char)*bits) ||
+ *bits == '_'; bits++)
;
}
}
blob - c7bef17d3e53bb264e52c28c93e60015957b7784
blob + 8fc5d2adb05cadcd1ce5e350fb063fe44608ea15
--- httpd.h
+++ httpd.h
-/* $OpenBSD: httpd.h,v 1.170 2026/05/10 10:02:04 kirill Exp $ */
+/* $OpenBSD: httpd.h,v 1.171 2026/05/11 22:33:10 kirill Exp $ */
/*
* Copyright (c) 2006 - 2015 Reyk Floeter <reyk@openbsd.org>
struct ctl_flags {
uint8_t cf_opts;
- uint32_t cf_flags;
+ uint64_t cf_flags;
uint8_t cf_tls_sid[TLS_MAX_SESSION_ID_LENGTH];
};
};
SPLAY_HEAD(client_tree, client);
-#define SRVFLAG_INDEX 0x00000001
-#define SRVFLAG_NO_INDEX 0x00000002
-#define SRVFLAG_AUTO_INDEX 0x00000004
-#define SRVFLAG_NO_AUTO_INDEX 0x00000008
-#define SRVFLAG_ROOT 0x00000010
-#define SRVFLAG_LOCATION 0x00000020
-#define SRVFLAG_FCGI 0x00000040
-#define SRVFLAG_NO_FCGI 0x00000080
-#define SRVFLAG_LOG 0x00000100
-#define SRVFLAG_NO_LOG 0x00000200
-#define SRVFLAG_ERRDOCS 0x00000400
-#define SRVFLAG_SYSLOG 0x00000800
-#define SRVFLAG_NO_SYSLOG 0x00001000
-#define SRVFLAG_TLS 0x00002000
-#define SRVFLAG_ACCESS_LOG 0x00004000
-#define SRVFLAG_ERROR_LOG 0x00008000
-#define SRVFLAG_AUTH 0x00010000
-#define SRVFLAG_NO_AUTH 0x00020000
-#define SRVFLAG_BLOCK 0x00040000
-#define SRVFLAG_NO_BLOCK 0x00080000
-#define SRVFLAG_LOCATION_MATCH 0x00100000
-#define SRVFLAG_SERVER_MATCH 0x00200000
-#define SRVFLAG_SERVER_HSTS 0x00400000
-#define SRVFLAG_DEFAULT_TYPE 0x00800000
-#define SRVFLAG_PATH_REWRITE 0x01000000
-#define SRVFLAG_NO_PATH_REWRITE 0x02000000
-#define SRVFLAG_GZIP_STATIC 0x04000000
-#define SRVFLAG_NO_BANNER 0x08000000
-#define SRVFLAG_NO_GZIP_STATIC 0x10000000
-#define SRVFLAG_LOCATION_FOUND 0x40000000
-#define SRVFLAG_LOCATION_NOT_FOUND 0x80000000
+#define SRVFLAG_INDEX 0x0000000000000001ULL
+#define SRVFLAG_NO_INDEX 0x0000000000000002ULL
+#define SRVFLAG_AUTO_INDEX 0x0000000000000004ULL
+#define SRVFLAG_NO_AUTO_INDEX 0x0000000000000008ULL
+#define SRVFLAG_ROOT 0x0000000000000010ULL
+#define SRVFLAG_LOCATION 0x0000000000000020ULL
+#define SRVFLAG_FCGI 0x0000000000000040ULL
+#define SRVFLAG_NO_FCGI 0x0000000000000080ULL
+#define SRVFLAG_LOG 0x0000000000000100ULL
+#define SRVFLAG_NO_LOG 0x0000000000000200ULL
+#define SRVFLAG_ERRDOCS 0x0000000000000400ULL
+#define SRVFLAG_SYSLOG 0x0000000000000800ULL
+#define SRVFLAG_NO_SYSLOG 0x0000000000001000ULL
+#define SRVFLAG_TLS 0x0000000000002000ULL
+#define SRVFLAG_ACCESS_LOG 0x0000000000004000ULL
+#define SRVFLAG_ERROR_LOG 0x0000000000008000ULL
+#define SRVFLAG_AUTH 0x0000000000010000ULL
+#define SRVFLAG_NO_AUTH 0x0000000000020000ULL
+#define SRVFLAG_BLOCK 0x0000000000040000ULL
+#define SRVFLAG_NO_BLOCK 0x0000000000080000ULL
+#define SRVFLAG_LOCATION_MATCH 0x0000000000100000ULL
+#define SRVFLAG_SERVER_MATCH 0x0000000000200000ULL
+#define SRVFLAG_SERVER_HSTS 0x0000000000400000ULL
+#define SRVFLAG_DEFAULT_TYPE 0x0000000000800000ULL
+#define SRVFLAG_PATH_REWRITE 0x0000000001000000ULL
+#define SRVFLAG_NO_PATH_REWRITE 0x0000000002000000ULL
+#define SRVFLAG_GZIP_STATIC 0x0000000004000000ULL
+#define SRVFLAG_NO_BANNER 0x0000000008000000ULL
+#define SRVFLAG_NO_GZIP_STATIC 0x0000000010000000ULL
+#define SRVFLAG_LOCATION_FOUND 0x0000000040000000ULL
+#define SRVFLAG_LOCATION_NOT_FOUND 0x0000000080000000ULL
#define SRVFLAG_BITS \
"\10\01INDEX\02NO_INDEX\03AUTO_INDEX\04NO_AUTO_INDEX" \
struct server_tls_ticket tls_ticket_key;
int tls_ticket_lifetime;
- uint32_t flags;
+ uint64_t flags;
int strip;
uint8_t tcpflags;
int tcpbufsiz;
struct httpd {
uint8_t sc_opts;
- uint32_t sc_flags;
+ uint64_t sc_flags;
const char *sc_conffile;
struct event sc_ev;
uint16_t sc_prefork_server;
struct auth *auth_byid(struct serverauth *, uint32_t);
void auth_free(struct serverauth *, struct auth *);
const char *print_host(struct sockaddr_storage *, char *, size_t);
-const char *printb_flags(const uint32_t, const char *);
+const char *printb_flags(const uint64_t, const char *);
void getmonotime(struct timeval *);
extern struct httpd *httpd_env;
blob - 7b026210bc3dbf9982aef9557f70fbdd723e7f81
blob + 060a6671db52a49724b68deeb3b23193a5b9f910
--- parse.y
+++ parse.y
-/* $OpenBSD: parse.y,v 1.132 2026/05/10 10:02:04 kirill Exp $ */
+/* $OpenBSD: parse.y,v 1.133 2026/05/11 22:33:10 kirill Exp $ */
/*
* Copyright (c) 2020 Matthias Pressfreund <mpfr@fn.de>
SPLAY_INIT(&srv->srv_clients);
} '{' optnl serveropts_l '}' {
struct server *s = NULL;
- uint32_t f;
+ uint64_t f;
f = SRVFLAG_LOCATION_FOUND |
SRVFLAG_LOCATION_NOT_FOUND;