summaryrefslogtreecommitdiff
path: root/src/sock_addr.c
Commit message (Collapse)AuthorAgeFilesLines
* [core] check getaddrinfo EAI_ADDRFAMILY w/ glibcGlenn Strauss2023-05-141-1/+1
| | | | | | | | check getaddrinfo() error EAI_ADDRFAMILY only with __GLIBC__ defined x-ref: "www/lighttpd: fix listening on IPv6 and IPv4 addresses" https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271335
* [core] _WIN32 protect code w/ HAVE_IPV6Glenn Strauss2023-05-031-0/+6
|
* [multiple] use buffer_append_char()Glenn Strauss2022-05-111-4/+4
|
* [core] sock_addr_set_port()Glenn Strauss2021-09-081-0/+20
|
* [multiple] reduce redundant NULL buffer checksGlenn Strauss2021-08-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is a large set of code changes and results in removal of hundreds, perhaps thousands, of CPU instructions, a portion of which are on hot code paths. Most (buffer *) used by lighttpd are not NULL, especially since buffers were inlined into numerous larger structs such as request_st and chunk. In the small number of instances where that is not the case, a NULL check is often performed earlier in a function where that buffer is later used with a buffer_* func. In the handful of cases that remained, a NULL check was added, e.g. with r->http_host and r->conf.server_tag. - check for empty strings at config time and set value to NULL if blank string will be ignored at runtime; at runtime, simple pointer check for NULL can be used to check for a value that has been set and is not blank ("") - use buffer_is_blank() instead of buffer_string_is_empty(), and use buffer_is_unset() instead of buffer_is_empty(), where buffer is known not to be NULL so that NULL check can be skipped - use buffer_clen() instead of buffer_string_length() when buffer is known not to be NULL (to avoid NULL check at runtime) - use buffer_truncate() instead of buffer_string_set_length() to truncate string, and use buffer_extend() to extend Examples where buffer known not to be NULL: - cpv->v.b from config_plugin_values_init is not NULL if T_CONFIG_BOOL (though we might set it to NULL if buffer_is_blank(cpv->v.b)) - address of buffer is arg (&foo) (compiler optimizer detects this in most, but not all, cases) - buffer is checked for NULL earlier in func - buffer is accessed in same scope without a NULL check (e.g. b->ptr) internal behavior change: callers must not pass a NULL buffer to some funcs. - buffer_init_buffer() requires non-null args - buffer_copy_buffer() requires non-null args - buffer_append_string_buffer() requires non-null args - buffer_string_space() requires non-null arg
* [core] sock_addr_from_buffer_hints_numeric unusedGlenn Strauss2021-08-271-0/+2
| | | | comment out sock_addr_from_buffer_hints_numeric(); currently unused
* [multiple] use buffer_append_* aggregatesGlenn Strauss2021-04-021-2/+1
| | | | reduces the number of round-trips into some frequently-called routines
* [core] prefer IPv6+IPv4 func vs IPv4-specific funcGlenn Strauss2020-12-231-5/+29
|
* [multiple] replace fall through comment with attrGlenn Strauss2020-12-161-1/+1
| | | | | | | | | replace /* fall through */ comment with __attribute_fallthrough__ macro Note: not adding attribute to code with external origins: xxhash.h (algo_xxhash.h) ls-hpack/lshpack.c so to avoid warnings, may need to compile with -Wno-implicit-fallthrough
* [multiple] add summaries to top of some modulesGlenn Strauss2020-07-081-0/+6
|
* [core] C99 restrict on some base funcsGlenn Strauss2020-07-081-10/+11
| | | | buffer.[ch], chunk.[ch], request.[ch], sock_addr.[ch]
* [core] remove include base.h where unusedGlenn Strauss2020-07-081-1/+0
|
* [multiple] rename r to rc rv rd wr to be differentGlenn Strauss2020-07-081-10/+10
| | | | variable rename
* [multiple] prefer (connection *) to (srv *)Glenn Strauss2020-07-081-52/+47
| | | | | | | | convert all log_error_write() to log_error() and pass (log_error_st *) use con->errh in preference to srv->errh (even though currently same) avoid passing (server *) when previously used only for logging (errh)
* [core] avoid freeaddrinfo() on NULL ptr (fixes #2984)Glenn Strauss2020-01-261-1/+2
| | | | | | | | | | | getaddrinfo() should return non-empty result list (res) or else should return EAI_NONAME or some other error (musl C library does not check for NULL argument to freeaddrinfo()) x-ref: "Segmentation fault in mod_extforward with libmusl" https://redmine.lighttpd.net/issues/2984
* [core] allocate unix socket paths with SUN_LEN()+1 (fixes #2962)Glenn Strauss2019-06-251-3/+2
| | | | | | | | (thx lighthouse2) x-ref: "SUN_LEN in sock_addr.c (1.4.53, 1.4.54)" https://redmine.lighttpd.net/issues/2962
* [core] quiet coverity false positiveGlenn Strauss2018-09-251-0/+3
|
* [core] quiet coverity false positiveGlenn Strauss2017-11-031-0/+1
|
* [core] isolate sock_addr manipulationGlenn Strauss2017-10-291-0/+685