From 6e1e7e43bce542e06d8ee6e029bdebde9bb3784f Mon Sep 17 00:00:00 2001 From: bol-van Date: Sun, 6 Apr 2025 11:53:57 +0300 Subject: [PATCH] nfqws: optimize tls mod parse --- nfq/nfqws.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/nfq/nfqws.c b/nfq/nfqws.c index 4c71fe3..31f49ed 100644 --- a/nfq/nfqws.c +++ b/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);