summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--entry/src/kni_entry.cpp18
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;