[rygel] server: Add "Sever:" header



commit d78337c4ebd565a7c4ef4411f56f8bfbf6384f65
Author: Jens Georg <mail jensge org>
Date:   Sun Feb 14 00:02:38 2016 +0100

    server: Add "Sever:" header
    
    We append a Server header to the HTTP response.
    
    Default is plugin/version g_get_prgname()/version DLNA/1.51 UPnP/1.0
    
    It is configurable on a per-plugin base using the key "server-name"
    
    Signed-off-by: Jens Georg <mail jensge org>
    
    https://bugzilla.gnome.org/show_bug.cgi?id=747816

 src/librygel-server/rygel-http-get.vala    |    2 ++
 src/librygel-server/rygel-http-server.vala |   14 ++++++++++++++
 2 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/src/librygel-server/rygel-http-get.vala b/src/librygel-server/rygel-http-get.vala
index 053a142..c737b22 100644
--- a/src/librygel-server/rygel-http-get.vala
+++ b/src/librygel-server/rygel-http-get.vala
@@ -221,6 +221,8 @@ public class Rygel.HTTPGet : HTTPRequest {
 
         // Add headers
         this.handler.add_response_headers (this);
+        this.msg.response_headers.append ("Server",
+                                          this.http_server.server_name);
 
         var response = this.handler.render_body (this);
 
diff --git a/src/librygel-server/rygel-http-server.vala b/src/librygel-server/rygel-http-server.vala
index 517c4bd..d6ea55e 100644
--- a/src/librygel-server/rygel-http-server.vala
+++ b/src/librygel-server/rygel-http-server.vala
@@ -31,6 +31,7 @@ using Gee;
 
 public class Rygel.HTTPServer : GLib.Object, Rygel.StateMachine {
     public string path_root { get; private set; }
+    public string server_name { get; set; }
 
     // Reference to root container of associated ContentDirectory
     public MediaContainer root_container;
@@ -41,10 +42,23 @@ public class Rygel.HTTPServer : GLib.Object, Rygel.StateMachine {
 
     public Cancellable cancellable { get; set; }
 
+    private const string SERVER_TEMPLATE = "%s/%s %s/%s DLNA/1.51 UPnP/1.0";
+
     public HTTPServer (ContentDirectory content_dir,
                        string           name) {
         base ();
 
+        try {
+            var config = MetaConfig.get_default ();
+            this.server_name = config.get_string (name, "server-name");
+        } catch (Error error) {
+            this.server_name = SERVER_TEMPLATE.printf
+                                        (name,
+                                         BuildConfig.PACKAGE_VERSION,
+                                         Environment.get_prgname (),
+                                         BuildConfig.PACKAGE_VERSION);
+        }
+
         this.root_container = content_dir.root_container;
         this.context = content_dir.context;
         this.requests = new ArrayList<HTTPRequest> ();


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]