20#ifndef _tdsguard_hpUeh3TzYOzN1FtT39tMHz_
21#define _tdsguard_hpUeh3TzYOzN1FtT39tMHz_
23#ifndef _tdsguard_hfOrWb5znoUCWdBPoNQvqN_
24#error tds.h must be included before tls.h
28# if defined(_THREAD_SAFE) && defined(TDS_HAVE_PTHREAD_MUTEX)
29# include <freetds/thread.h>
30# ifndef GNUTLS_USE_NETTLE
34# include <gnutls/gnutls.h>
35# include <gnutls/x509.h>
36#elif defined(HAVE_OPENSSL)
37# include <openssl/ssl.h>
38# include <openssl/x509v3.h>
39# include <openssl/err.h>
42#include <freetds/pushvis.h>
44#if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL)
49TDSRET tds_ssl_init(
TDSSOCKET *tds,
bool full);
51size_t tds_ssl_get_cb(
TDSCONNECTION * conn,
void *cb,
size_t cblen);
60 return gnutls_record_check_pending((gnutls_session_t) conn->tls_session);
64tds_ssl_read(
TDSCONNECTION *conn,
unsigned char *buf,
int buflen)
66 return gnutls_record_recv((gnutls_session_t) conn->tls_session, buf, buflen);
70tds_ssl_write(
TDSCONNECTION *conn,
const unsigned char *buf,
int buflen)
72 return gnutls_record_send((gnutls_session_t) conn->tls_session, buf, buflen);
81#ifdef LIBRESSL_VERSION_NUMBER
82#define TLS_ST_OK SSL_ST_OK
88 return SSL_pending((SSL *) conn->tls_session);
92tds_ssl_read(
TDSCONNECTION *conn,
unsigned char *buf,
int buflen)
94 return SSL_read((SSL *) conn->tls_session, buf, buflen);
98tds_ssl_write(
TDSCONNECTION *conn,
const unsigned char *buf,
int buflen)
100 return SSL_write((SSL *) conn->tls_session, buf, buflen);
109tds_ssl_init(
TDSSOCKET *tds TDS_UNUSED,
bool full TDS_UNUSED)
126tds_ssl_read(
TDSCONNECTION *conn TDS_UNUSED,
unsigned char *buf TDS_UNUSED,
int buflen TDS_UNUSED)
132tds_ssl_write(
TDSCONNECTION *conn TDS_UNUSED,
const unsigned char *buf TDS_UNUSED,
int buflen TDS_UNUSED)
138tds_ssl_get_cb(
TDSCONNECTION *conn TDS_UNUSED,
void *cb TDS_UNUSED,
size_t cblen TDS_UNUSED)
144#include <freetds/popvis.h>
Information for a server connection.
Definition tds.h:1189