Public Member Functions | |
| __construct ($server, $options=array()) | |
| getReadSocketsForSelect () | |
| Get read socket array for select(). | |
| getWriteSocketsForSelect () | |
| Get write socket array for select(). | |
| close () | |
| Close the socket but allow it to be reopened for future purge requests. | |
| queuePurge ($url) | |
| Queue a purge operation. | |
| isIdle () | |
| doWrites () | |
| Perform pending writes. | |
| doReads () | |
| Read some data. | |
Public Attributes | |
| $host | |
| $port | |
| $ip | |
| $readState = 'idle' | |
| $writeBuffer = '' | |
| $requests = array() | |
| $currentRequestIndex | |
| const | EINTR = 4 |
| const | EAGAIN = 11 |
| const | EINPROGRESS = 115 |
| const | BUFFER_SIZE = 8192 |
| $socket | |
| The socket resource, or null for unconnected, or false for disabled due to error. | |
Protected Member Functions | |
| getSocket () | |
| Open a socket if there isn't one open already, return it. | |
| getIP () | |
| Get the host's IP address. | |
| markDown () | |
| Close the socket and ignore any future purge requests. | |
| processReadBuffer () | |
| processStatusLine ($line) | |
| processHeaderLine ($line) | |
| nextRequest () | |
| log ($msg) | |
Uses asynchronous I/O, allowing purges to be done in a highly parallel manner.
Could be replaced by curl_multi_exec() or some such.
Definition at line 9 of file SquidPurgeClient.php.
| SquidPurgeClient::__construct | ( | $ | server, | |
| $ | options = array() | |||
| ) |
Definition at line 27 of file SquidPurgeClient.php.
| SquidPurgeClient::close | ( | ) |
Close the socket but allow it to be reopened for future purge requests.
Definition at line 127 of file SquidPurgeClient.php.
References wfRestoreWarnings(), and wfSuppressWarnings().
Referenced by doReads(), and markDown().
| SquidPurgeClient::doReads | ( | ) |
Read some data.
Call this when socket_select() indicates that the read buffer is non-empty.
Definition at line 196 of file SquidPurgeClient.php.
References $socket, close(), getSocket(), log(), markDown(), processReadBuffer(), wfRestoreWarnings(), and wfSuppressWarnings().
| SquidPurgeClient::doWrites | ( | ) |
Perform pending writes.
Call this when socket_select() indicates that writing will not block.
Definition at line 161 of file SquidPurgeClient.php.
References $socket, getSocket(), log(), markDown(), wfRestoreWarnings(), and wfSuppressWarnings().
| SquidPurgeClient::getIP | ( | ) | [protected] |
Get the host's IP address.
Does not support IPv6 at present due to the lack of a convenient interface in PHP.
Definition at line 97 of file SquidPurgeClient.php.
References IP::isIPv4(), IP::isIPv6(), wfRestoreWarnings(), and wfSuppressWarnings().
Referenced by getSocket().
| SquidPurgeClient::getReadSocketsForSelect | ( | ) |
Get read socket array for select().
Definition at line 68 of file SquidPurgeClient.php.
References $socket, and getSocket().
| SquidPurgeClient::getSocket | ( | ) | [protected] |
Open a socket if there isn't one open already, return it.
Returns false on error.
Definition at line 37 of file SquidPurgeClient.php.
References $ip, $ok, getIP(), log(), markDown(), wfRestoreWarnings(), and wfSuppressWarnings().
Referenced by doReads(), doWrites(), getReadSocketsForSelect(), and getWriteSocketsForSelect().
| SquidPurgeClient::getWriteSocketsForSelect | ( | ) |
Get write socket array for select().
Definition at line 82 of file SquidPurgeClient.php.
References $socket, and getSocket().
| SquidPurgeClient::isIdle | ( | ) |
Definition at line 154 of file SquidPurgeClient.php.
| SquidPurgeClient::log | ( | $ | msg | ) | [protected] |
Definition at line 302 of file SquidPurgeClient.php.
References wfDebugLog().
Referenced by doReads(), doWrites(), getSocket(), and processStatusLine().
| SquidPurgeClient::markDown | ( | ) | [protected] |
Close the socket and ignore any future purge requests.
This is called if there is a protocol error.
Definition at line 119 of file SquidPurgeClient.php.
References close().
Referenced by doReads(), doWrites(), getSocket(), and processStatusLine().
| SquidPurgeClient::nextRequest | ( | ) | [protected] |
Definition at line 286 of file SquidPurgeClient.php.
Referenced by processReadBuffer(), and queuePurge().
| SquidPurgeClient::processHeaderLine | ( | $ | line | ) | [protected] |
| SquidPurgeClient::processReadBuffer | ( | ) | [protected] |
Definition at line 223 of file SquidPurgeClient.php.
References nextRequest(), processHeaderLine(), and processStatusLine().
Referenced by doReads().
| SquidPurgeClient::processStatusLine | ( | $ | line | ) | [protected] |
Definition at line 262 of file SquidPurgeClient.php.
References log(), and markDown().
Referenced by processReadBuffer().
| SquidPurgeClient::queuePurge | ( | $ | url | ) |
Queue a purge operation.
Definition at line 143 of file SquidPurgeClient.php.
References $url, nextRequest(), and Http::userAgent().
| SquidPurgeClient::$currentRequestIndex |
Definition at line 15 of file SquidPurgeClient.php.
| SquidPurgeClient::$host |
Definition at line 10 of file SquidPurgeClient.php.
| SquidPurgeClient::$ip |
| SquidPurgeClient::$port |
Definition at line 10 of file SquidPurgeClient.php.
| SquidPurgeClient::$readState = 'idle' |
Definition at line 12 of file SquidPurgeClient.php.
| SquidPurgeClient::$requests = array() |
Definition at line 14 of file SquidPurgeClient.php.
| SquidPurgeClient::$socket |
The socket resource, or null for unconnected, or false for disabled due to error.
Definition at line 25 of file SquidPurgeClient.php.
Referenced by doReads(), doWrites(), getReadSocketsForSelect(), and getWriteSocketsForSelect().
| SquidPurgeClient::$writeBuffer = '' |
Definition at line 13 of file SquidPurgeClient.php.
| const SquidPurgeClient::BUFFER_SIZE = 8192 |
Definition at line 20 of file SquidPurgeClient.php.
| const SquidPurgeClient::EAGAIN = 11 |
Definition at line 18 of file SquidPurgeClient.php.
| const SquidPurgeClient::EINPROGRESS = 115 |
Definition at line 19 of file SquidPurgeClient.php.
| const SquidPurgeClient::EINTR = 4 |
Definition at line 17 of file SquidPurgeClient.php.
1.5.9