]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
http server: allow to change the 'Server:' header, fixes #3710
authorJaroslav Kysela <perex@perex.cz>
Tue, 23 May 2017 10:02:27 +0000 (12:02 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 23 May 2017 10:02:27 +0000 (12:02 +0200)
src/config.c
src/config.h
src/http.c

index a46d0010d90003d177e4d8013b7ff3b83dd1c0f4..c7c564fa43bda0d0ac305132189e5dbb9d47b12b 100644 (file)
@@ -1751,6 +1751,8 @@ config_boot ( const char *path, gid_t gid, uid_t uid )
   htsmsg_destroy(config2);
   if (config.server_name == NULL || config.server_name[0] == '\0')
     config.server_name = strdup("Tvheadend");
+  if (config.http_server_name == NULL || config.http_server_name[0] == '\0')
+    config.http_server_name = strdup("HTS/tvheadend");
   if (!config_scanfile_ok)
     config_muxconfpath_notify(&config.idnode, NULL);
 }
@@ -1773,6 +1775,7 @@ config_init ( int backup )
     config.version = ARRAY_SIZE(config_migrate_table);
     tvh_str_set(&config.full_version, tvheadend_version);
     tvh_str_set(&config.server_name, "Tvheadend");
+    tvh_str_set(&config.http_server_name, "HTS/tvheadend");
     idnode_changed(&config.idnode);
   
   /* Perform migrations */
@@ -1788,6 +1791,7 @@ void config_done ( void )
   /* note: tvhlog is inactive !!! */
   free(config.wizard);
   free(config.full_version);
+  free(config.http_server_name);
   free(config.server_name);
   free(config.language);
   free(config.language_ui);
@@ -2078,6 +2082,15 @@ const idclass_t config_class = {
       .off    = offsetof(config_t, server_name),
       .group  = 1
     },
+    {
+      .type   = PT_STR,
+      .id     = "http_server_name",
+      .name   = N_("HTTP server name"),
+      .desc   = N_("The server name for 'Server:' HTTP headers."),
+      .off    = offsetof(config_t, http_server_name),
+      .opts   = PO_HIDDEN | PO_EXPERT,
+      .group  = 1
+    },
     {
       .type   = PT_BOOL,
       .id     = "hbbtv",
index cef8e4b35b5a06c456ca65b194afd6261443e642..65c63f07a0dd4a7db22e8c8d9cff91f1e02f2f30 100644 (file)
@@ -40,6 +40,7 @@ typedef struct config {
   char *wizard;
   char *full_version;
   char *server_name;
+  char *http_server_name;
   char *language;
   char *info_area;
   char *language_ui;
index 2d6c3c798092ec4671c9b45b3c2fb673a8580094..6319240add153181a6462d87f792f3c348bde160 100644 (file)
@@ -333,7 +333,7 @@ http_send_header(http_connection_t *hc, int rc, const char *content,
                 http_ver2str(hc->hc_version), rc, http_rc2str(rc));
 
   if (hc->hc_version != RTSP_VERSION_1_0){
-    htsbuf_append_str(&hdrs, "Server: HTS/tvheadend\r\n");
+    htsbuf_qprintf(&hdrs, "Server: %s\r\n", config.http_server_name ?: "HTV/tvheadend");
     if (config.cors_origin && config.cors_origin[0]) {
       htsbuf_qprintf(&hdrs, "Access-Control-Allow-Origin: %s\r\n", config.cors_origin);
       htsbuf_append_str(&hdrs, "Access-Control-Allow-Methods: POST, GET, OPTIONS\r\n");