diff options
| -rw-r--r-- | entry/src/kni_entry.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/entry/src/kni_entry.cpp b/entry/src/kni_entry.cpp index e1097e6..aab72c2 100644 --- a/entry/src/kni_entry.cpp +++ b/entry/src/kni_entry.cpp @@ -1706,15 +1706,21 @@ char first_data_process(struct streaminfo *stream, struct pme_info *pmeinfo, str pmeinfo->protocol = srt_process_context_get_protocol(session_context); const char *domain = srt_process_context_get_domain(session_context); - pmeinfo->domain_len = MIN(strlen(domain), (int)sizeof(pmeinfo->domain) - 1); - - if(pmeinfo->protocol == PROTO_HTTP) + if(domain != NULL) { - strncpy(pmeinfo->domain.host, domain, pmeinfo->domain_len); + pmeinfo->domain_len = MIN(strlen(domain), (int)sizeof(pmeinfo->domain) - 1); + if(pmeinfo->protocol == PROTO_HTTP) + { + strncpy(pmeinfo->domain.host, domain, pmeinfo->domain_len); + } + if(pmeinfo->protocol == PROTO_SSL) + { + strncpy(pmeinfo->domain.sni, domain, pmeinfo->domain_len); + } } - if(pmeinfo->protocol == PROTO_SSL) + else { - strncpy(pmeinfo->domain.sni, domain, pmeinfo->domain_len); + pmeinfo->domain_len = 0; } pmeinfo->action = KNI_ACTION_INTERCEPT; |
