1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-26 19:01:35 +03:00
Commit Graph

54 Commits

Author SHA1 Message Date
Cliff Woolley
3e2ce19baf BUCKET FREELISTS
Add an allocator-passing mechanism throughout the bucket brigades API.

From Apache's standpoint, the apr_bucket_alloc_t* used throughout a given
connection is stored in the conn_rec by the create_connection hook.  That
means it's the MPM's job to optimize recycling of apr_bucket_alloc_t's --
the MPM must ensure that no two threads can ever use the same one at the
same time, for instance.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94304 13f79535-47bb-0310-9956-ffa450edef68
2002-03-29 08:17:26 +00:00
Roy T. Fielding
845cbfd508 Update our copyright for this year.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93918 13f79535-47bb-0310-9956-ffa450edef68
2002-03-13 20:48:07 +00:00
Ryan Bloom
862f407872 Remove the install_transport_filters hook. The same function can be
acheived with the pre_connection hook.  I have added the socket to the
pre_connection phase to make this possible.
Reviewed by:	Bill Stoddard


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93259 13f79535-47bb-0310-9956-ffa450edef68
2002-02-05 22:18:49 +00:00
Bill Stoddard
bd3d360392 Reintroduce the create_connection hook. This hook is required to enable
modules to completely take over all network i/o from the core.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93171 13f79535-47bb-0310-9956-ffa450edef68
2002-02-01 22:16:31 +00:00
Bill Stoddard
4168820850 This patch restores most of Ryan's patch (11/12/2001) to remove the
client_socket from the conn_rec.  Diffs from Ryan's patch include:

- rename the create_connection hook to install_transport_filters
- move the point of invocation of the hook till after the call to
  after ap_update_vhost_given_ip to enable the hook to use vhost
  config info in its decision making.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93087 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 19:02:04 +00:00
Bill Stoddard
327e4989d5 Remove the create_connection hook and put the client_socket back into the
conn_rec. The create_connection_hook has a design flaw that prevents it
from making decisions based on vhost information.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93050 13f79535-47bb-0310-9956-ffa450edef68
2002-01-27 12:52:08 +00:00
Jeff Trawick
187e9ae3b9 Change core code to allow an MPM to set hard thread/server
limits at startup.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92512 13f79535-47bb-0310-9956-ffa450edef68
2001-12-18 13:48:54 +00:00
Ryan Bloom
a4f00625aa Pull lingering close out of the pool cleanup phase. This was causing too
many bugs.  Instead, it is called where it used to be called.  I have
abstracted some of the logic out of the lingering close so that it gets
the socket from the connection using the core's conn_config vector.  This
is in anticipation of a change to use a hook for the lingering close,
which I hope to do soon.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91968 13f79535-47bb-0310-9956-ffa450edef68
2001-11-15 20:49:54 +00:00
Ryan Bloom
695081280d Add the server_rec argument back to the create_connection hook.
Submitted by:	Greg Stein


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91913 13f79535-47bb-0310-9956-ffa450edef68
2001-11-13 20:29:54 +00:00
Ryan Bloom
22b467666a Remove ap_new_connection from the header. I missed this when I removed
the function.
Submitted by:   Brad Nicholes <BNICHOLES@novell.com>


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91911 13f79535-47bb-0310-9956-ffa450edef68
2001-11-13 20:10:11 +00:00
Ryan Bloom
3d76585bad Back out my last patch. The logic to add sockets to pollsets is back in
the MPM


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91906 13f79535-47bb-0310-9956-ffa450edef68
2001-11-13 17:44:07 +00:00
Ryan Bloom
a47ed5762d This allows modules to add socket descriptors to the pollset. I have
only added this to the perfork MPM, and the others work without it.
Tomorrow I will add it to the other MPMs.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91899 13f79535-47bb-0310-9956-ffa450edef68
2001-11-13 07:15:36 +00:00
Ryan Bloom
61ebbf74e3 Add docs for the newest hook.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91892 13f79535-47bb-0310-9956-ffa450edef68
2001-11-13 04:01:28 +00:00
Ryan Bloom
44baa0367f Cleanup some code that was created during the abstration. This basically
takes the old ap_new_connection, and puts into the new core_create_conn
function.  There is no good reason to have two functions to do this.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91890 13f79535-47bb-0310-9956-ffa450edef68
2001-11-13 02:09:07 +00:00
Ryan Bloom
0c05b625ac Begin to abstract out the underlying transport layer.
The first step is to remove the socket from the conn_rec,
the server now lives in a context that is passed to the
core's input and output filters. This forces us to be very
careful when adding calls that use the socket directly,
because the socket isn't available in most locations.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91887 13f79535-47bb-0310-9956-ffa450edef68
2001-11-12 23:49:08 +00:00
Ryan Bloom
383606d518 Fix the Windows MPM. Windows doesn't always use the lingering close
function. If it can re-use the socket, we are better off not calling
the function.  To fix this, we re-expose the lingering_close function,
and we allow the MPM to remove the cleanup.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91839 13f79535-47bb-0310-9956-ffa450edef68
2001-11-10 21:07:13 +00:00
Ryan Bloom
13cf9521f5 Remove ap_lingering_close from all of the MPMs. This is now done as
a cleanup registered with the connection_pool.  I have also turned
ap_lingering_close into a static function, because it is only used
in connection.c.  This is the next step to consolidating all of the
socket function calls.  ap_lingering_close will only be added if the
core is dealing with a standard socket.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91832 13f79535-47bb-0310-9956-ffa450edef68
2001-11-10 18:26:30 +00:00
William A. Rowe Jr
c86f120560 Doc formatting fixes
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89749 13f79535-47bb-0310-9956-ffa450edef68
2001-07-27 21:01:16 +00:00
Chuck Murcko
86154b12b2 Add the AP_DECLARE()/AP_CORE_DECLARE macros on the return types of
functions used by mod_proxy for export in DLL
Submitted by:	Ian Holsman <IanH@cnet.com>
Reviewed by:	Chuck murcko


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89078 13f79535-47bb-0310-9956-ffa450edef68
2001-05-11 04:35:41 +00:00
Ryan Bloom
3eeeb76fb4 Move more code from the http module into the core server. This
is core code, basically the default handler, the default input
and output filters, and all of the core configuration directives.
All of this code is required in order for the server to work, with or
without HTTP.  The server is closer to working without the HTTP
module, although there is still more to do.

I tried to fix Windows, but somebody should probably make sure I did
it correctly.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88449 13f79535-47bb-0310-9956-ffa450edef68
2001-03-04 06:27:27 +00:00
Roy T. Fielding
381f88d56a Update copyright to 2001
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88184 13f79535-47bb-0310-9956-ffa450edef68
2001-02-16 04:26:53 +00:00
Jeff Trawick
bd424f80f3 ap_new_connection() returns NULL if an error occurred (prefork MPM
and ap_new_connection() were changed last week)

I have skipped putting the change into WinNT MPM and mod_proxy.  I
left a note in the mod_proxy code; for the NT MPM I think I can talk
somebody into doing the right thing for me.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87982 13f79535-47bb-0310-9956-ffa450edef68
2001-02-05 15:04:32 +00:00
Doug MacEachern
bcb1a9309e fix minor prototype inconsistencies noticed with C::Scan
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87970 13f79535-47bb-0310-9956-ffa450edef68
2001-02-04 03:00:15 +00:00
William A. Rowe Jr
e62172bbdd The fast fix to get FirstBill back out of the gate. It brings up an
issue I'll address to the list.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87748 13f79535-47bb-0310-9956-ffa450edef68
2001-01-19 22:32:15 +00:00
William A. Rowe Jr
850f8cc33a By popular review
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87739 13f79535-47bb-0310-9956-ffa450edef68
2001-01-19 18:38:34 +00:00
William A. Rowe Jr
59bbd68bec The big change. This is part 3 of the apr-util symbols rename, please
see the first commit of srclib/apr-util/include (cvs apr-util/include)
  for the quick glance at symbols changed.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87731 13f79535-47bb-0310-9956-ffa450edef68
2001-01-19 07:04:36 +00:00
Jeff Trawick
4c8baf6170 Get rid of ap_new_apr_connection(). ap_new_connection() now has
fewer parameters: the local and remote socket addresses were removed
from the parameter list because all required information is available
via the APR socket.

I haven't tested the most important part -- the WinNT MPM changes
-- but it compiles and it looks okay :)  If the WinNT MPM works on
Win98 these days let me know.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87181 13f79535-47bb-0310-9956-ffa450edef68
2000-12-04 19:24:10 +00:00
Ryan Bloom
ffe0634565 Fix some incorrect docs
Submitted by:	Jon Travis <jtravis@covalent.net>


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87098 13f79535-47bb-0310-9956-ffa450edef68
2000-11-28 03:01:10 +00:00
Ryan Bloom
a90cfa54f1 Make lingering close access the socket directly, instead of relying on
BUFF.  This has been tested, but all we can determine is that it doesn't
fail, not that it works.  This needs to be tested much better.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86709 13f79535-47bb-0310-9956-ffa450edef68
2000-10-23 10:46:20 +00:00
Ryan Bloom
d85bbfb847 This begins to remove BUFF from the server. The idea is to go very slowly
with this.  To begin with, we store both the socket and the BUFF in the
conn_rec.  Functions are free to use which ever they want, in the end all
of the data goes to the same place.  This modifies all of the MPMs except
Windows.  All of the Unix MPMs are working, but the others need to be
tested.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86651 13f79535-47bb-0310-9956-ffa450edef68
2000-10-18 19:12:16 +00:00
William A. Rowe Jr
d6490633eb Renamed all MODULE_EXPORT symbols to AP_MODULE_DECLARE and all symbols
for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper)
  and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE.
  All _VAR_ flavors changes to _DATA to be absolutely clear.
  Thank you Greg, for the most obvious suggestion.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86609 13f79535-47bb-0310-9956-ffa450edef68
2000-10-16 06:05:15 +00:00
Ryan Bloom
ba047efee0 Move where the CORE_IN filter is added to the server. We used to do this
in ap_new_connection, but that is bogus, because then other modules can't
put their own filter in.  Now, we do this in a new pre-connection hook
function.  Later, we will want to add some checking to make sure that this
is really an HTTP request that we are adding the filter for.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86364 13f79535-47bb-0310-9956-ffa450edef68
2000-10-02 19:52:37 +00:00
Doug MacEachern
059d8dd212 prefix libapr functions and types with apr_
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85976 13f79535-47bb-0310-9956-ffa450edef68
2000-08-02 05:27:38 +00:00
Ryan Bloom
a32cdbf0be Make http_log use ScanDoc
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85961 13f79535-47bb-0310-9956-ffa450edef68
2000-07-31 03:54:20 +00:00
Ryan Bloom
92a253dc89 Document http_connection.h using ScanDoc
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85959 13f79535-47bb-0310-9956-ffa450edef68
2000-07-31 03:14:36 +00:00
Jeff Trawick
73b1f79967 Remove const from ap_socket_t parameters on APR functions so that
APR can modify the ap_socket_t as it sees fit.  It may choose to
modify the ap_socket_t on functions which only read from the ap_socket_t
conceptually.

Note: http_connection::ap_new_apr_connection() passes its ap_socket_t
arg to one of the changed functions, so const was removed there also.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85700 13f79535-47bb-0310-9956-ffa450edef68
2000-06-26 20:37:49 +00:00
William A. Rowe Jr
3f29977506 PR:
Obtained from:
Submitted by:
Reviewed by:

  Reverse out additional linkage argument from DECLARE_HOOK
  and IMPLEMENT_HOOK macros.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85319 13f79535-47bb-0310-9956-ffa450edef68
2000-05-27 22:53:48 +00:00
William A. Rowe Jr
86e2a18f2a This patch corrects the issues from the AP_EXPORT and linkage
specification arguments to the ap_hooks.h declarations.  As with
  the APR_ and AP_ patches, API_VAR_EXPORT becomes API_EXPORT_VAR,
  and MODULE_VAR_EXPORT becomes MODULE_EXPORT_VAR.

  I will be happy to revert the inclusion of ap_config.h from 
  httpd.h if this bothers anyone.  More individual modules need
  to be patched if we do so.

  The API_EXPORTs all moved into central storage in the ap_config.h
  header.  Without WIN32 or API_STATIC compile time declarations, 
  these macros remain no-ops.

  This patch also moves the following data from http_main to http_config:

    const char *ap_server_argv0;
    const char *ap_server_root;
    ap_array_header_t *ap_server_pre_read_config;
    ap_array_header_t *ap_server_post_read_config;
    ap_array_header_t *ap_server_config_defines;

  And the following variables had already moved into ap_hooks.c:

    ap_pool_t *g_pHookPool;  (initialized now in http_config)
    int g_bDebugHooks;                   (out of http_config)
    const char *g_szCurrentHookName;     (out of http_config)

  The changes to http_main.c are in preparation for that module to
  move out to a seperate .exe for win32.  Other platforms will be
  unaffected, outside of these changes.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85309 13f79535-47bb-0310-9956-ffa450edef68
2000-05-27 05:28:02 +00:00
Bill Stoddard
eb0506d66a Add the prototype for ap_lingering_close()
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85201 13f79535-47bb-0310-9956-ffa450edef68
2000-05-12 00:40:58 +00:00
Doug MacEachern
b7f8b9d3df change ap_hook_pre_connection from VOID to RUN_ALL
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85066 13f79535-47bb-0310-9956-ffa450edef68
2000-04-27 23:44:16 +00:00
Doug MacEachern
6644b34387 add AP_ prefix to *HOOK* macros
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85045 13f79535-47bb-0310-9956-ffa450edef68
2000-04-26 07:14:39 +00:00
Ryan Bloom
de3a77dc01 Change ap_context_t to ap_pool_t. This compiles, runs, and serves pages
on Linux, but probably breaks somewhere.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84963 13f79535-47bb-0310-9956-ffa450edef68
2000-04-14 15:59:20 +00:00
Roy T. Fielding
2a98ce1a7a Update to Apache Software License version 1.1
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84877 13f79535-47bb-0310-9956-ffa450edef68
2000-03-31 07:19:05 +00:00
Ryan Bloom
b1c26f031a Fix all the License issues. Including:
s/Apache Group/Apache Software Foundation/
s/1999/2000/
s/Sascha's license/ASF license


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84725 13f79535-47bb-0310-9956-ffa450edef68
2000-03-10 00:07:37 +00:00
Ryan Bloom
a8ce196da5 Finish the commits for the change in the header files. Basically, this hides
all of the Apache macros that modules don't need access to.  This should
have been committed with the modules, but I wasn't paying attention to the
directory I was in when I ran the commit.
Submitted by:	Manoj Kasichainula and Ryan Bloom


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84493 13f79535-47bb-0310-9956-ffa450edef68
2000-01-19 01:16:31 +00:00
Brian Havard
243005861c Enhancements for APR network_io. Adds separate local/remote access methods for
a socket's port, IP address and sockaddr_in.

Updates for Apache code to use these, allowing the correct IP address of
clients to be logged.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84029 13f79535-47bb-0310-9956-ffa450edef68
1999-10-24 05:59:22 +00:00
Ryan Bloom
c37f14ddf3 Changed pools to contexts. Tested with prefork and pthread mpm's. I'll
check this out tomorrow and make sure everything was checked in correctly.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@83852 13f79535-47bb-0310-9956-ffa450edef68
1999-08-31 05:35:52 +00:00
Manoj Kasichainula
2ab2189444 Add a connection ID to conn_rec. It uniquely identifies a connection at
any instant in time. It's not very well tested yet.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@83662 13f79535-47bb-0310-9956-ffa450edef68
1999-08-13 06:58:08 +00:00
Manoj Kasichainula
2bc99dc33d Take child_num and thread_num out of conn_rec. They aren't used anywhere
anymore, and conn_rec is the wrong place for them.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@83581 13f79535-47bb-0310-9956-ffa450edef68
1999-08-05 19:56:24 +00:00
Ben Laurie
ec84a171ef And with one bound, he was free! This seemingly minor change allows modules
to take over connection processing, thus making Apache multiprotocol. Woo!


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@83486 13f79535-47bb-0310-9956-ffa450edef68
1999-07-22 19:17:21 +00:00