mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-11 07:37:27 +05:00
nfqws: optimize tls mod parse
This commit is contained in:
parent
d04419a60c
commit
6e1e7e43bc
22
nfq/nfqws.c
22
nfq/nfqws.c
@ -950,12 +950,12 @@ static bool parse_ip_list(char *opt, ipset *pp)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool parse_tlsmod_list(char *opt, uint32_t *mod, char *sni, size_t sni_buf_len)
|
||||
static bool parse_tlsmod_list(char *opt, struct fake_tls_mod *tls_mod)
|
||||
{
|
||||
char *e,*e2,*p,c,c2;
|
||||
|
||||
*mod &= FAKE_TLS_MOD_SAVE_MASK;
|
||||
*mod |= FAKE_TLS_MOD_SET;
|
||||
tls_mod->mod &= FAKE_TLS_MOD_SAVE_MASK;
|
||||
tls_mod->mod |= FAKE_TLS_MOD_SET;
|
||||
for (p=opt ; p ; )
|
||||
{
|
||||
for (e2=p ; *e2 && *e2!=',' && *e2!='=' ; e2++);
|
||||
@ -975,20 +975,20 @@ static bool parse_tlsmod_list(char *opt, uint32_t *mod, char *sni, size_t sni_bu
|
||||
e2=NULL;
|
||||
|
||||
if (!strcmp(p,"rnd"))
|
||||
*mod |= FAKE_TLS_MOD_RND;
|
||||
tls_mod->mod |= FAKE_TLS_MOD_RND;
|
||||
else if (!strcmp(p,"rndsni"))
|
||||
*mod |= FAKE_TLS_MOD_RND_SNI;
|
||||
tls_mod->mod |= FAKE_TLS_MOD_RND_SNI;
|
||||
else if (!strcmp(p,"sni"))
|
||||
{
|
||||
*mod |= FAKE_TLS_MOD_SNI;
|
||||
tls_mod->mod |= FAKE_TLS_MOD_SNI;
|
||||
if (!e2 || !e2[1] || e2[1]==',') goto err;
|
||||
strncpy(sni,e2+1,sni_buf_len-1);
|
||||
sni[sni_buf_len-1]=0;
|
||||
strncpy(tls_mod->sni,e2+1,sizeof(tls_mod->sni)-1);
|
||||
tls_mod->sni[sizeof(tls_mod->sni)-1-1]=0;
|
||||
}
|
||||
else if (!strcmp(p,"padencap"))
|
||||
*mod |= FAKE_TLS_MOD_PADENCAP;
|
||||
tls_mod->mod |= FAKE_TLS_MOD_PADENCAP;
|
||||
else if (!strcmp(p,"dupsid"))
|
||||
*mod |= FAKE_TLS_MOD_DUP_SID;
|
||||
tls_mod->mod |= FAKE_TLS_MOD_DUP_SID;
|
||||
else if (strcmp(p,"none"))
|
||||
goto err;
|
||||
|
||||
@ -2128,7 +2128,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
break;
|
||||
case 40: /* dpi-desync-fake-tls-mod */
|
||||
if (!parse_tlsmod_list(optarg,&dp->tls_mod_last.mod,dp->tls_mod_last.sni,sizeof(dp->tls_mod_last.sni)))
|
||||
if (!parse_tlsmod_list(optarg,&dp->tls_mod_last))
|
||||
{
|
||||
DLOG_ERR("Invalid tls mod : %s\n",optarg);
|
||||
exit_clean(1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user