* 修改编译方式为CMake

* 删除C++适配代码
* 修改编译告警
This commit is contained in:
fengweihao
2019-11-05 11:38:40 +08:00
parent 8b089533e9
commit 7192f437e5
237 changed files with 2071 additions and 53674 deletions

View File

@@ -0,0 +1,87 @@
/*************************************************************************
> File Name: cert_conf.h
> Author:
> Mail:
> Created Time: Fri 01 Jun 2018 12:06:26 AM PDT
************************************************************************/
#ifndef _CERT_INIT_H
#define _CERT_INIT_H
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <event.h>
#include <openssl/x509.h>
#include <openssl/evp.h>
#include <MESA/Maat_rule.h>
#include <MESA/MESA_htable.h>
#define CT_PATH_MAX 256
#define CT_ARRARY_LEN (CT_PATH_MAX/2)
#define CT_STRING_MAX 1024
struct request_t{
#define DATALEN 128
int thread_id;
int is_valid;
char *odata;
X509 *origin;
int keyring_id;
char *sni;
char rkey[DATALEN];
struct evhttp_request *evh_req;
};
struct pxy_obj_keyring{
int keyring_id;
uint64_t expire_time;
EVP_PKEY *key;
X509 *root;
char keyring_type[CT_ARRARY_LEN];
char public_algo[CT_STRING_MAX];
char v3_ctl[CT_STRING_MAX];
char finger[EVP_MAX_MD_SIZE];
int is_valid;
atomic64_t ref_cnt;
STACK_OF(X509) *stack_ca;
};
struct _initer_addr_t{
uint16_t e_port; /*libevent prot*/
uint16_t maat_port; /*maat redis port*/
char maat_ip[16]; /*maat redis ip */
int dbindex; /*maat redis dbindex*/
uint16_t store_port; /*store redis port */
char store_ip[16]; /*store redis ip*/
};
struct ntc_maat_t{
unsigned int maat_json_switch;
unsigned int effective_interval_s;
char info_path[128];
char pxy_path[128];
char inc_cfg_dir[128];
char full_cfg_dir[128];
};
struct config_bucket_t{
Maat_feather_t feather;
int table_id;
int mode;
unsigned int local_debug;
unsigned int thread_nu;
unsigned int expire_after;
char ca_path[128];
char uninsec_path[128];
struct ntc_maat_t maat_t;
struct _initer_addr_t addr_t;
};
extern struct config_bucket_t *cert_default_config();
void cert_init_config(const char *config);
#endif

View File

@@ -0,0 +1,13 @@
/*************************************************************************
> File Name: cert_daemon.h
> Author:
> Mail:
> Created Time: Tue 29 May 2018 11:12:46 PM PDT
************************************************************************/
#ifndef _NDPI_DAEMON_H
#define _NDPI_DAEMON_H
extern void daemonize (void);
#endif

View File

@@ -0,0 +1,116 @@
/*************************************************************************
> File Name: cert_session.h
> Author:
> Mail:
> Created Time: Fri 01 Jun 2018 02:01:08 AM PDT
************************************************************************/
#ifndef _CERT_SESSION_H
#define _CERT_SESSION_H
#include <event2/event_compat.h>
#include "MESA_list_queue.h"
#include "rt_sync.h"
#include <openssl/opensslv.h>
#include <openssl/ssl.h>
#include <openssl/err.h>
#include <openssl/rand.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>
/*
* SHA0 was removed in OpenSSL 1.1.0, including OPENSSL_NO_SHA0.
*/
#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(OPENSSL_NO_SHA0)
#define OPENSSL_NO_SHA0
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000L
#define ASN1_STRING_get0_data(value) ASN1_STRING_data(value)
#define SSL_is_server(ssl) (ssl->type != SSL_ST_CONNECT)
#define X509_get_signature_nid(x509) (OBJ_obj2nid(x509->sig_alg->algorithm))
int DH_set0_pqg(DH *, BIGNUM *, BIGNUM *, BIGNUM *);
#endif
/*
* The constructors returning a SSL_METHOD * were changed to return
* a const SSL_METHOD * between 0.9.8 and 1.0.0.
*/
#if (OPENSSL_VERSION_NUMBER < 0x1000000fL)
#define CONST_SSL_METHOD SSL_METHOD
#else /* >= OpenSSL 1.0.0 */
#define CONST_SSL_METHOD const SSL_METHOD
#endif /* >= OpensSL 1.0.0 */
/*
* SSL_OP_NO_* is used as an indication that OpenSSL is sufficiently recent
* to have the respective protocol implemented.
*
* OPENSSL_NO_SSL2 indicates the complete removal of SSL 2.0 support.
*
* OPENSSL_NO_SSL3 indicates that no SSL 3.0 connections will be made by
* default, but support is still present, unless OPENSSL_NO_SSL3_METHOD is
* also defined.
*/
#if defined(SSL_OP_NO_SSLv2) && !defined(OPENSSL_NO_SSL2) && \
defined(WITH_SSLV2)
#define HAVE_SSLV2
#endif /* SSL_OP_NO_SSLv2 && !OPENSSL_NO_SSL2 && WITH_SSLV2 */
#if defined(SSL_OP_NO_SSLv3) && !defined(OPENSSL_NO_SSL3_METHOD)
#define HAVE_SSLV3
#endif /* SSL_OP_NO_SSLv2 && !OPENSSL_NO_SSL3_METHOD */
#ifdef SSL_OP_NO_TLSv1
#define HAVE_TLSV10
#endif /* SSL_OP_NO_TLSv1 */
#ifdef SSL_OP_NO_TLSv1_1
#define HAVE_TLSV11
#endif /* SSL_OP_NO_TLSv1_1 */
#ifdef SSL_OP_NO_TLSv1_2
#define HAVE_TLSV12
#endif /* SSL_OP_NO_TLSv1_2 */
struct x509_object_ctx
{
X509 *root;
EVP_PKEY *key;
X509 *insec_root;
EVP_PKEY *insec_key;
};
typedef struct {
int id;
rt_pthread pid; /* unique ID of this thread */
evutil_socket_t accept_fd;
rt_pthread_attr *attr;
struct event_base *base;
struct x509_object_ctx def;
struct redisAsyncContext *cl_ctx;
struct redisContext *sync;
void * (*routine)(void *); /** Executive entry */
int field_ids; /* dispaly */
int column_ids;
uint64_t diffTime;
} x509_forge_thread;
int cert_session_init();
void sigproc(int __attribute__((__unused__))sig);
#endif