ap_listen.h

Checkout Tools
  • last updated 38 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1876865 is being indexed.

Add optional options= argument to Listen to add listener-specific

socket options.

Reimplement "use_specific_errors" listener flag under generic

ap_listen_rec flags field holding all listener-specific options.

* include/ap_listen.h: Add AP_LISTEN_* flags.

(ap_listen_rec): Rename use_specific_errors to flags.

* server/listen.c (make_sock): Set APR_SO_FREEBIND if

AP_LISTEN_FREEBIND flag is set on listener; set APR_SO_REUSEPORT

unconditionally if AP_LISTEN_REUSEPORT is set.

(alloc_listener): Take flags argument.

(ap_setup_listeners): Set AP_LISTEN_SPECIFIC_ERRORS flag here.

(ap_set_listener): Parse optional options=... argument, catch

typos and fail if protocol name contains a "=".

(ap_duplicate_listeners): Duplicate flags.

Submitted by: jkaluza, Lubos Uhliarik <luhliari redhat.com>, jorton

PR: 61865

Github: closes #114

  1. … 5 more files in changeset.
Add "AcceptErrorsNonFatal" directive

This tweaks accept() failure processing by having ap_unixd_accept

pass more errors up, and having the MPM's check against a macro

to see if they are in a whitelist of non ENETDOWN/EMFILE kind

of potential process-wide errors.

Default behavior is still to exit.

edit: MMN bump in 1820099.

  1. … 8 more files in changeset.
Off by one "make dox" warning
MPMs, core: make duplicated listeners (SO_REUSEPORT) introduced in r1599531

less intrusive.

Submitted by: Yingqi Lu <yingqi.lu@intel.com>

Modified/Committed by: ylavic

Add ListenCoresBucketsRatio which is a configurable ratio between the number of

CPU cores (online) and the number of listeners buckets to create, defaulting to

zero (so that listeners buckets become an opt-in, ie. ncpus / ratio > 1).

This could also be made an opt-out by using the previous hardcoded value (8) as

default.

Make ap_close_listeners() act on all the listeners (including duplicated ones),

since the function is also called externally (eg. mod_cgid, mod_ssl_ct and

possibly any third party module) to cleanup opened descriptors when a process

is forked (the duplicated listeners are kept in a scoped/static variable).

Add ap_close_listeners_ex() to close a single bucket of listeners, used by the

children to close unused duplicates and internally by ap_close_listeners().

Make ap_duplicate_listeners() compute the number of buckets to be used, instead

of each MPM. This number is now based on the above ratio and will not change

unless asked to (given *num_buckets < 1, that is when the MPM does not run in

one-process mode nor after a graceful restart).

Remove some global variables (mpm_listen, enable_default_listeners) previously

used to communicate between MPMs and ap_listen, since ap_duplicate_listeners()

API can now be used to do so.

Also rename num_buckets as ap_num_listen_buckets, and prefix have_so_reuseport

with ap_ (both printed by ap_log_common(), hence kept global).

Detect ap_have_so_reuseport once only at startup.

Restore dummy_connection() as before r1599531 since sending POD signals should

not depend on the number of listeners buckets (there is still one single socket

receiving the connections).

For each MPM (concerned), move the bucket data (pod, listeners and eventually

accept mutex) into a struct and instanciate an array of them (sized by the

number of buckets), for each child to use its own data according to its bucket

index, and the parent to maintain the whole.

  1. … 9 more files in changeset.
Optimize w/ duplicated listeners and use of SO_REUSEPORT

where available.

  1. … 6 more files in changeset.
More cleanup: Expand tabs and some more indentation fixes

No functional change

  1. … 50 more files in changeset.
Cleanup effort in prep for GA push:

Trim trailing whitespace... no func change

  1. … 63 more files in changeset.
fix wrong name in function prototype which led to

unresolved reference at link time

hint at adding some doc as well

Don't require all listeners to be created equal ...

  1. … 1 more file in changeset.
* Add extern "C" linkage to several headers to make it easier to use

them in C++ code.

PR: 42286

Submitted by: Davi Arnaut <davi haxent.com.br>

Reviewed by: rpluem

  1. … 4 more files in changeset.
update license header text
  1. … 316 more files in changeset.
Update the copyright year in all .c, .h and .xml files

  1. … 497 more files in changeset.
Doxygen fixup / cleanup

submited by: Neale Ranns neale ranns.org

reviewed by: Ian Holsman

  1. … 105 more files in changeset.

Correct the function prototype/declaration

  1. … 1 more file in changeset.

Provide a function for closing all of the listeners.

* This is useful for properly implementing a graceful stop and restart

where we want child processess to be able to carry on serving a request

but "de-listen" from a port. So that another instance entirely can be

started in our place, or to unbind from a "Listen" directive an admin

has removed from the configuration.

  1. … 1 more file in changeset.
Merge the listen-protocol sandbox branch to trunk.

I will be adding documentation for the new directives hopefully in the next day or so.

* server/core.c: Added 'Protocol' to the core module config

Added ap_{set,get}_server_protocol API.

Added new directive: 'AcceptFilter'.

Enable 'httpready' by default on systems that support it. Use dataready filters for others.

* server/listen.c: Attempt to inherit protocols from Listener Records to Server configs.

The 'Listen' directive can now optionally take a protocol arg

Move bits that determined which accept filter is applied to core.c.

Added bits to find the correct accept filter based on the core's configuration.

* include/{ap_listen.h,http_core.h}: Add Protocol to respective structures.

* include/http_core.h: Add the accf_map table to the core_server_config structure

* include/ap_mmn.h: Minor MMN Bump for the new interfacces.

* modules/ssl/ssl_engine_init.c: Use the new protocol framework to enable mod_ssl for 'https' websites.

  1. … 6 more files in changeset.
The SPMT_OS2_MPM doesn't exist. The warning is also wrong, since both winnt and prefork MPMs call this function.

Add ReceiveBufferSize directive to control the TCP receive buffer.

Submitted by: Eric Covener <covener gmail.com>

Reviewed by: Justin Erenkrantz (with minor formatting tweaks)

  1. … 2 more files in changeset.
Update copyright year to 2005 and standardize on current copyright owner line.

  1. … 522 more files in changeset.
Fix gcc "no previous prototype" warnings after reorganisation:

* server/core_filters.c (ap_core_input_filter, ap_core_output_filter,

ap_net_time_filter): Renamed to add ap_ prefixes for global symbols.

* include/ap_listen.h: Don't export ap_listen_open at all, it's not

used outside server/listen.c any more.

* server/listen.c (open_listeners): Renamed from ap_listen_open.

  1. … 4 more files in changeset.
Declare the ap_set_listen* functions with AP_DECLARE_NONSTD for Win32 support.

(I think this is what is needed for Win32, but I'm not quite sure.)

  1. … 1 more file in changeset.
Properly export ap_listen_* functions.

* server/listen.c: Add AP_DECLARE as appropriate.

* include/ap_listen.h: Add AP_DECLARE as appropriate.

  1. … 1 more file in changeset.
general property cleanup

  1. … 712 more files in changeset.
fix name of The Apache Software Foundation

  1. … 174 more files in changeset.
fix copyright dates according to the first check in

  1. … 19 more files in changeset.
apply Apache License, Version 2.0

  1. … 262 more files in changeset.
update license to 2004.

  1. … 281 more files in changeset.
finished that boring job:

update license to 2003.

Happy New Year! ;-))

  1. … 271 more files in changeset.
Update our copyright for this year.

  1. … 260 more files in changeset.
Fixed ap_listeners so that it will be included in the AWK generated export lists