mirror of
https://github.com/3proxy/3proxy.git
synced 2025-12-06 14:52:36 +08:00
maxseg / TCP_MAXSEG support added
Some checks failed
C/C++ CI / ${{ matrix.target }} (macos-15) (push) Has been cancelled
C/C++ CI / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Has been cancelled
C/C++ CI / ${{ matrix.target }} (ubuntu-latest) (push) Has been cancelled
C/C++ CI / ${{ matrix.target }} (windows-2022) (push) Has been cancelled
Some checks failed
C/C++ CI / ${{ matrix.target }} (macos-15) (push) Has been cancelled
C/C++ CI / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Has been cancelled
C/C++ CI / ${{ matrix.target }} (ubuntu-latest) (push) Has been cancelled
C/C++ CI / ${{ matrix.target }} (windows-2022) (push) Has been cancelled
This commit is contained in:
parent
5450ca4cdf
commit
fe53378596
12
src/conf.c
12
src/conf.c
@ -466,6 +466,11 @@ static int h_rotate(int argc, unsigned char **argv){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int h_maxseg(int argc, unsigned char **argv){
|
||||||
|
conf.maxseg = atoi((char *)argv[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int h_logformat(int argc, unsigned char **argv){
|
static int h_logformat(int argc, unsigned char **argv){
|
||||||
unsigned char * old = conf.logformat;
|
unsigned char * old = conf.logformat;
|
||||||
conf.logformat = (unsigned char *)mystrdup((char *)argv[1]);
|
conf.logformat = (unsigned char *)mystrdup((char *)argv[1]);
|
||||||
@ -1645,11 +1650,12 @@ struct commands commandhandlers[]={
|
|||||||
{commandhandlers+61, "force", h_force, 1, 1},
|
{commandhandlers+61, "force", h_force, 1, 1},
|
||||||
{commandhandlers+62, "noforce", h_noforce, 1, 1},
|
{commandhandlers+62, "noforce", h_noforce, 1, 1},
|
||||||
{commandhandlers+63, "parentretries", h_parentretries, 2, 2},
|
{commandhandlers+63, "parentretries", h_parentretries, 2, 2},
|
||||||
{commandhandlers+64, "auto", h_proxy, 1, 0},
|
{commandhandlers+64, "auto", h_proxy, 1, 0},
|
||||||
{commandhandlers+65, "backlog", h_backlog, 2, 2},
|
{commandhandlers+65, "backlog", h_backlog, 2, 2},
|
||||||
{commandhandlers+66, "tlspr", h_proxy, 1, 0},
|
{commandhandlers+66, "tlspr", h_proxy, 1, 0},
|
||||||
|
{commandhandlers+67, "maxseg", h_maxseg, 2, 2},
|
||||||
#ifndef NORADIUS
|
#ifndef NORADIUS
|
||||||
{commandhandlers+67, "radius", h_radius, 3, 0},
|
{commandhandlers+68, "radius", h_radius, 3, 0},
|
||||||
#endif
|
#endif
|
||||||
{specificcommands, "", h_noop, 1, 0}
|
{specificcommands, "", h_noop, 1, 0}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -170,6 +170,9 @@ struct socketoptions sockopts[] = {
|
|||||||
#endif
|
#endif
|
||||||
#ifdef TCP_FASTOPEN_CONNECT
|
#ifdef TCP_FASTOPEN_CONNECT
|
||||||
{TCP_FASTOPEN_CONNECT, "TCP_FASTOPEN_CONNECT"},
|
{TCP_FASTOPEN_CONNECT, "TCP_FASTOPEN_CONNECT"},
|
||||||
|
#endif
|
||||||
|
#ifdef TCP_MAXSEG
|
||||||
|
{TCP_MAXSEG, "TCP_MAXSEG"},
|
||||||
#endif
|
#endif
|
||||||
{0, NULL}
|
{0, NULL}
|
||||||
};
|
};
|
||||||
@ -193,6 +196,12 @@ void setopts(SOCKET s, int opts){
|
|||||||
int i, opt, set;
|
int i, opt, set;
|
||||||
for(i = 0; opts >= (opt = (1<<i)); i++){
|
for(i = 0; opts >= (opt = (1<<i)); i++){
|
||||||
set = 1;
|
set = 1;
|
||||||
|
#ifdef TCP_MAXSEG
|
||||||
|
if(sockopts[i].opt == TCP_MAXSEG){
|
||||||
|
if(!conf.maxseg) continue;
|
||||||
|
set = conf.maxseg;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if(opts & opt) setsockopt(s, *sockopts[i].optname == 'T'? IPPROTO_TCP:
|
if(opts & opt) setsockopt(s, *sockopts[i].optname == 'T'? IPPROTO_TCP:
|
||||||
#ifdef SOL_IP
|
#ifdef SOL_IP
|
||||||
*sockopts[i].optname == 'I'? SOL_IP:
|
*sockopts[i].optname == 'I'? SOL_IP:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user