rsyslog/runtime/nsdsel_gtls.h
Rainer Gerhards b5d8f5d96a added support for EGAIN while trying to receive data on gTLS session
This maps to bugzilla bug 83: http://bugzilla.adiscon.com/show_bug.cgi?id=83
This is the first test version, posted to user for repro of the problem.

It contains code to handle the case, HOWEVER, I have not been able to test it
in a scenario where a retry actually happens while receiving (I dont't get this
in my environment). So I assume it is buggy and will probably not work.
2008-06-24 15:12:22 +02:00

44 lines
1.7 KiB
C

/* An implementation of the nsd select interface for GnuTLS.
*
* Copyright (C) 2008 Rainer Gerhards and Adiscon GmbH.
*
* This file is part of the rsyslog runtime library.
*
* The rsyslog runtime library is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The rsyslog runtime library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with the rsyslog runtime library. If not, see <http://www.gnu.org/licenses/>.
*
* A copy of the GPL can be found in the file "COPYING" in this distribution.
* A copy of the LGPL can be found in the file "COPYING.LESSER" in this distribution.
*/
#ifndef INCLUDED_NSDSEL_GTLS_H
#define INCLUDED_NSDSEL_GTLS_H
#include "nsd.h"
typedef nsdsel_if_t nsdsel_gtls_if_t; /* we just *implement* this interface */
/* the nsdsel_gtls object */
struct nsdsel_gtls_s {
BEGINobjInstance; /* Data to implement generic object - MUST be the first data element! */
nsdsel_t *pTcp; /* our aggregated ptcp sel handler (which does almost everything) */
int iBufferRcvReady; /* number of descriptiors where no RD select is needed because we have data in buf */
};
/* interface is defined in nsd.h, we just implement it! */
#define nsdsel_gtlsCURR_IF_VERSION nsdCURR_IF_VERSION
/* prototypes */
PROTOTYPEObj(nsdsel_gtls);
#endif /* #ifndef INCLUDED_NSDSEL_GTLS_H */