minor fixes

This commit is contained in:
Vladimir Dubrovin 2024-02-18 20:18:31 +03:00
parent 2b4d8e67e4
commit d77e528847
2 changed files with 12 additions and 12 deletions

View File

@ -11,7 +11,7 @@ typedef void *SSL_CONN;
typedef void *SSL_CERT; typedef void *SSL_CERT;
struct ssl_config { struct ssl_config {
int transparent; int mitm;
char *certcache; char *certcache;
X509 *CA_cert; X509 *CA_cert;
EVP_PKEY *CA_key; EVP_PKEY *CA_key;

View File

@ -283,7 +283,6 @@ int dossl(struct clientparam* param, SSL_CONN* ServerConnp, SSL_CONN* ClientConn
if(ServerConnp)*ServerConnp = ServerConn; if(ServerConnp)*ServerConnp = ServerConn;
if(ClientConnp)*ClientConnp = ClientConn; if(ClientConnp)*ClientConnp = ClientConn;
return 0; return 0;
} }
@ -301,8 +300,7 @@ static void* ssl_filter_open(void * idata, struct srvparam * srv){
if(!certcache) { if(!certcache) {
free(sc); return sc;
return NULL;
} }
sprintf(fname, "%.240s3proxy.pem", certcache); sprintf(fname, "%.240s3proxy.pem", certcache);
f = BIO_new_file(fname, "r"); f = BIO_new_file(fname, "r");
@ -313,14 +311,12 @@ static void* ssl_filter_open(void * idata, struct srvparam * srv){
unsigned long err; unsigned long err;
err=ERR_get_error(); err=ERR_get_error();
fprintf(stderr, "failed to read: %s: [%lu] %s\n", fname, err, ERR_error_string(err, NULL)); fprintf(stderr, "failed to read: %s: [%lu] %s\n", fname, err, ERR_error_string(err, NULL));
free(sc); return sc;
return NULL;
} }
} }
else { else {
fprintf(stderr, "failed to open: %s\n", fname); fprintf(stderr, "failed to open: %s\n", fname);
free(sc); return sc;
return NULL;
} }
sprintf(fname, "%.240s3proxy.key", sc->certcache); sprintf(fname, "%.240s3proxy.key", sc->certcache);
f = BIO_new_file(fname, "rb"); f = BIO_new_file(fname, "rb");
@ -331,12 +327,12 @@ static void* ssl_filter_open(void * idata, struct srvparam * srv){
unsigned long err; unsigned long err;
err=ERR_get_error(); err=ERR_get_error();
fprintf(stderr, "failed to read: %s: [%lu] %s\n", fname, err, ERR_error_string(err, NULL)); fprintf(stderr, "failed to read: %s: [%lu] %s\n", fname, err, ERR_error_string(err, NULL));
return NULL; return sc;
} }
} }
else { else {
fprintf(stderr, "failed to open: %s\n", fname); fprintf(stderr, "failed to open: %s\n", fname);
return NULL; return sc;
} }
sprintf(fname, "%.128sserver.key", sc->certcache); sprintf(fname, "%.128sserver.key", sc->certcache);
@ -354,13 +350,16 @@ static void* ssl_filter_open(void * idata, struct srvparam * srv){
else { else {
fprintf(stderr, "failed to open: %s\n", fname); fprintf(stderr, "failed to open: %s\n", fname);
} }
sc->transparent = 1; sc->mitm = 1;
srv->so._send = ssl_send; srv->so._send = ssl_send;
srv->so._recv = ssl_recv; srv->so._recv = ssl_recv;
srv->so._sendto = ssl_sendto; srv->so._sendto = ssl_sendto;
srv->so._recvfrom = ssl_recvfrom; srv->so._recvfrom = ssl_recvfrom;
srv->so._closesocket = ssl_closesocket; srv->so._closesocket = ssl_closesocket;
srv->so._poll = ssl_poll; srv->so._poll = ssl_poll;
#ifdef WIWHSPLICE
srv->usesplice = 0;
#endif
} }
return sc; return sc;
} }
@ -379,8 +378,9 @@ static FILTER_ACTION ssl_filter_client(void *fo, struct clientparam * param, voi
return CONTINUE; return CONTINUE;
} }
static FILTER_ACTION ssl_filter_predata(void *fo, struct clientparam * param){ static FILTER_ACTION ssl_filter_predata(void *fc, struct clientparam * param){
if(param->operation != HTTP_CONNECT && param->operation != CONNECT) return PASS; if(param->operation != HTTP_CONNECT && param->operation != CONNECT) return PASS;
if(!PCONF->mitm) return PASS;
if(dossl(param, NULL, NULL)) { if(dossl(param, NULL, NULL)) {
return REJECT; return REJECT;
} }