summaryrefslogtreecommitdiffstats
path: root/sys/netinet/accf_http.c
Commit message (Collapse)AuthorAgeFilesLines
* add missing #include <sys/module.h>phk2004-05-301-0/+1
|
* Remove so*_locked(), which were backed out by mistake.tanimura2002-06-181-3/+3
|
* Back out my lats commit of locking down a socket, it conflicts with hsu's work.tanimura2002-05-311-25/+6
| | | | Requested by: hsu
* Lock down a socket, milestone 1.tanimura2002-05-201-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o Add a mutex (sb_mtx) to struct sockbuf. This protects the data in a socket buffer. The mutex in the receive buffer also protects the data in struct socket. o Determine the lock strategy for each members in struct socket. o Lock down the following members: - so_count - so_options - so_linger - so_state o Remove *_locked() socket APIs. Make the following socket APIs touching the members above now require a locked socket: - sodisconnect() - soisconnected() - soisconnecting() - soisdisconnected() - soisdisconnecting() - sofree() - soref() - sorele() - sorwakeup() - sotryfree() - sowakeup() - sowwakeup() Reviewed by: alfred
* Redo the sigio locking.alfred2002-05-011-8/+0
| | | | | | | | | | | Turn the sigio sx into a mutex. Sigio lock is really only needed to protect interrupts from dereferencing the sigio pointer in an object when the sigio itself is being destroyed. In order to do this in the most unintrusive manner change pgsigio's sigio * argument into a **, that way we can lock internally to the function.
* Fix some edge cases where bad string handling could occur.alfred2002-05-011-0/+4
| | | | Submitted by: ps
* cleanup:alfred2002-05-011-37/+46
| | | | fix line wraps, add some comments, fix macro definitions, fix for(;;) loops.
* Revert the change of #includes in sys/filedesc.h and sys/socketvar.h.tanimura2002-04-301-1/+4
| | | | | | | | | | Requested by: bde Since locking sigio_lock is usually followed by calling pgsigio(), move the declaration of sigio_lock and the definitions of SIGIO_*() to sys/signalvar.h. While I am here, sort include files alphabetically, where possible.
* Add a global sx sigio_lock to protect the pointer to the sigio objecttanimura2002-04-271-3/+9
| | | | | | | | | | of a socket. This avoids lock order reversal caused by locking a process in pgsigio(). sowakeup() and the callers of it (sowwakeup, soisconnected, etc.) now require sigio_lock to be locked. Provide sowwakeup_locked(), soisconnected_locked(), and so on in case where we have to modify a socket and wake up a process atomically.
* Fix incorrect logic wouldn't disconnect incomming connections that had beenalfred2001-01-031-1/+1
| | | | | | disconnected because they were not full. Submitted by: David Filo
* Remove unneeded #include <sys/proc.h> lines.phk2000-10-291-1/+0
|
* Remove headers not needed.alfred2000-10-071-12/+0
| | | | Pointed out by: phk
* Accept filter maintainancealfred2000-09-061-83/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update copyrights. Introduce a new sysctl node: net.inet.accf Although acceptfilters need refcounting to be properly (safely) unloaded as a temporary hack allow them to be unloaded if the sysctl net.inet.accf.unloadable is set, this is really for developers who want to work on thier own filters. A near complete re-write of the accf_http filter: 1) Parse check if the request is HTTP/1.0 or HTTP/1.1 if not dump to the application. Because of the performance implications of this there is a sysctl 'net.inet.accf.http.parsehttpversion' that when set to non-zero parses the HTTP version. The default is to parse the version. 2) Check if a socket has filled and dump to the listener 3) optimize the way that mbuf boundries are handled using some voodoo 4) even though you'd expect accept filters to only be used on TCP connections that don't use m_nextpkt I've fixed the accept filter for socket connections that use this. This rewrite of accf_http should allow someone to use them and maintain full HTTP compliance as long as net.inet.accf.http.parsehttpversion is set.
* return of the accept filter part IIalfred2000-06-201-0/+183
accept filters are now loadable as well as able to be compiled into the kernel. two accept filters are provided, one that returns sockets when data arrives the other when an http request is completed (doesn't work with 0.9 requests) Reviewed by: jmg
OpenPOWER on IntegriCloud