mirror of
https://github.com/osmarks/ngircd.git
synced 2025-01-19 03:52:52 +00:00
Read_Request(): Clean up code and add some more comments
No functional changes.
This commit is contained in:
parent
629a45ee0f
commit
9f05f5ee61
@ -1543,15 +1543,16 @@ Socket2Index( int Sock )
|
|||||||
* @param Idx Connection index.
|
* @param Idx Connection index.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
Read_Request( CONN_ID Idx )
|
Read_Request(CONN_ID Idx)
|
||||||
{
|
{
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
static const unsigned int maxbps = COMMAND_LEN / 2;
|
static const unsigned int maxbps = COMMAND_LEN / 2;
|
||||||
char readbuf[READBUFFER_LEN];
|
char readbuf[READBUFFER_LEN];
|
||||||
time_t t;
|
time_t t;
|
||||||
CLIENT *c;
|
CLIENT *c;
|
||||||
assert( Idx > NONE );
|
|
||||||
assert( My_Connections[Idx].sock > NONE );
|
assert(Idx > NONE);
|
||||||
|
assert(My_Connections[Idx].sock > NONE);
|
||||||
|
|
||||||
#ifdef ZLIB
|
#ifdef ZLIB
|
||||||
if ((array_bytes(&My_Connections[Idx].rbuf) >= READBUFFER_LEN) ||
|
if ((array_bytes(&My_Connections[Idx].rbuf) >= READBUFFER_LEN) ||
|
||||||
@ -1568,12 +1569,14 @@ Read_Request( CONN_ID Idx )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Now read new data from the network, up to READBUFFER_LEN bytes ... */
|
||||||
#ifdef SSL_SUPPORT
|
#ifdef SSL_SUPPORT
|
||||||
if (Conn_OPTION_ISSET(&My_Connections[Idx], CONN_SSL))
|
if (Conn_OPTION_ISSET(&My_Connections[Idx], CONN_SSL))
|
||||||
len = ConnSSL_Read( &My_Connections[Idx], readbuf, sizeof(readbuf));
|
len = ConnSSL_Read(&My_Connections[Idx], readbuf, sizeof(readbuf));
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
len = read(My_Connections[Idx].sock, readbuf, sizeof(readbuf));
|
len = read(My_Connections[Idx].sock, readbuf, sizeof(readbuf));
|
||||||
|
|
||||||
if (len == 0) {
|
if (len == 0) {
|
||||||
LogDebug("Client \"%s:%u\" is closing connection %d ...",
|
LogDebug("Client \"%s:%u\" is closing connection %d ...",
|
||||||
My_Connections[Idx].host,
|
My_Connections[Idx].host,
|
||||||
@ -1583,13 +1586,20 @@ Read_Request( CONN_ID Idx )
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
if( errno == EAGAIN ) return;
|
if (errno == EAGAIN)
|
||||||
|
return;
|
||||||
|
|
||||||
Log(LOG_ERR, "Read error on connection %d (socket %d): %s!",
|
Log(LOG_ERR, "Read error on connection %d (socket %d): %s!",
|
||||||
Idx, My_Connections[Idx].sock, strerror(errno));
|
Idx, My_Connections[Idx].sock, strerror(errno));
|
||||||
Conn_Close(Idx, "Read error", "Client closed connection",
|
Conn_Close(Idx, "Read error", "Client closed connection",
|
||||||
false);
|
false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Now append the newly received data to the connection buffer.
|
||||||
|
* NOTE: This can lead to connection read buffers being bigger(!) than
|
||||||
|
* READBUFFER_LEN bytes, as we add up to READBUFFER_LEN new bytes to a
|
||||||
|
* buffer possibly being "almost" READBUFFER_LEN bytes already! */
|
||||||
#ifdef ZLIB
|
#ifdef ZLIB
|
||||||
if (Conn_OPTION_ISSET(&My_Connections[Idx], CONN_ZIP)) {
|
if (Conn_OPTION_ISSET(&My_Connections[Idx], CONN_ZIP)) {
|
||||||
if (!array_catb(&My_Connections[Idx].zip.rbuf, readbuf,
|
if (!array_catb(&My_Connections[Idx].zip.rbuf, readbuf,
|
||||||
|
Loading…
Reference in New Issue
Block a user