]> The Tcpdump Group git mirrors - libpcap/blobdiff - sslutils.h
CI: Call print_so_deps() on rpcapd in remote enabled build
[libpcap] / sslutils.h
index b2ae319427e22f7d1a67240b51d3eb1b5c660b81..3a36c61b7f228e7c8f321921419c4ec71e0bca66 100644 (file)
 #ifndef __SSLUTILS_H__
 #define __SSLUTILS_H__
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
 #ifdef HAVE_OPENSSL
+#include "pcap/socket.h"  // for PCAP_SOCKET
+// If this is OpenSSL 1.0, at least one header may trigger a -Wdocumentation
+// in Clang, which should not be a problem of this header or a file that
+// includes it.
+#include "diag-control.h"
+DIAG_OFF_DOCUMENTATION
 #include <openssl/ssl.h>
 #include <openssl/err.h>
-#include "sockutils.h"
+DIAG_ON_DOCUMENTATION
 
 /*
- * Configuration parameters
+ * Utility functions
  */
 
-extern int uses_ssl;
-extern char ssl_keyfile[PATH_MAX];
-extern char ssl_certfile[PATH_MAX];
-extern char ssl_rootfile[PATH_MAX];
+void ssl_set_certfile(const char *certfile);
+void ssl_set_keyfile(const char *keyfile);
+int ssl_init_once(int is_server, int enable_compression, char *errbuf, size_t errbuflen);
+SSL *ssl_promotion(int is_server, PCAP_SOCKET s, char *errbuf, size_t errbuflen);
+void ssl_finish(SSL *ssl);
+int ssl_send(SSL *, char const *buffer, int size, char *errbuf, size_t errbuflen);
+int ssl_recv(SSL *, char *buffer, int size, char *errbuf, size_t errbuflen);
 
-/*
- * Utility functions
- */
+// The SSL parameters are used
+#define _U_NOSSL_
+
+#else   // HAVE_OPENSSL
+
+// This saves us from a lot of ifdefs:
+#define SSL void const
 
-void init_ssl_or_die(int is_server);
-SSL *ssl_promotion(int is_server, SOCKET s, char *errbuf, size_t errbuflen);
-int ssl_send(SSL *, char const *buffer, size_t size, char *errbuf, size_t errbuflen);
-int ssl_recv(SSL *, unsigned char *buffer, size_t size, char *errbuf, size_t errbuflen);
+// The SSL parameters are unused
+#define _U_NOSSL_      _U_
 
 #endif  // HAVE_OPENSSL