[pulseaudio-commits] [SCM] PulseAudio Sound Server branch, stable-queue, updated. v0.9.22-65-g4f67775

Colin Guthrie gitmailer-noreply at 0pointer.de
Fri Apr 15 11:31:56 PDT 2011


This is an automated email from the git hooks/post-receive script. It was
generated because of a push to the "PulseAudio Sound Server" repository.

The stable-queue branch has been updated
      from  93e7a19ee67f172980f96447d50beca996fcfc8c (commit)

- Log -----------------------------------------------------------------
4f67775 http: support HTTP HEAD
-----------------------------------------------------------------------

Summary of changes:
 src/pulsecore/protocol-http.c |   47 ++++++++++++++++++++++++++++++++++++++--
 1 files changed, 44 insertions(+), 3 deletions(-)

-----------------------------------------------------------------------

commit 4f677758b5771933b44743d1a97e1e99e891e26e
Author: Matthijs Kooijman <matthijs at stdin.nl>
Date:   Sun Feb 21 21:46:06 2010 +0100

    http: support HTTP HEAD
    
    http://pulseaudio.org/ticket/781

diff --git a/src/pulsecore/protocol-http.c b/src/pulsecore/protocol-http.c
index c09e534..83067f8 100644
--- a/src/pulsecore/protocol-http.c
+++ b/src/pulsecore/protocol-http.c
@@ -80,6 +80,11 @@ enum state {
     STATE_DATA
 };
 
+enum method {
+    METHOD_GET,
+    METHOD_HEAD
+};
+
 struct connection {
     pa_http_protocol *protocol;
     pa_iochannel *io;
@@ -89,6 +94,7 @@ struct connection {
     pa_client *client;
     enum state state;
     char *url;
+    enum method method;
     pa_module *module;
 };
 
@@ -327,6 +333,11 @@ static void html_response(
 
     http_response(c, code, msg, MIME_HTML);
 
+    if (c->method == METHOD_HEAD) {
+        pa_ioline_defer_close(c->line);
+        return;
+    }
+
     if (!text)
         text = msg;
 
@@ -363,6 +374,11 @@ static void handle_root(struct connection *c) {
 
     http_response(c, 200, "OK", MIME_HTML);
 
+    if (c->method == METHOD_HEAD) {
+        pa_ioline_defer_close(c->line);
+        return;
+    }
+
     pa_ioline_puts(c->line,
                    HTML_HEADER(PACKAGE_NAME" "PACKAGE_VERSION)
                    "<h1>"PACKAGE_NAME" "PACKAGE_VERSION"</h1>\n"
@@ -402,6 +418,11 @@ static void handle_css(struct connection *c) {
 
     http_response(c, 200, "OK", MIME_CSS);
 
+    if (c->method == METHOD_HEAD) {
+        pa_ioline_defer_close(c->line);
+        return;
+    }
+
     pa_ioline_puts(c->line,
                    "body { color: black; background-color: white; }\n"
                    "a:link, a:visited { color: #900000; }\n"
@@ -420,6 +441,12 @@ static void handle_status(struct connection *c) {
     pa_assert(c);
 
     http_response(c, 200, "OK", MIME_TEXT);
+
+    if (c->method == METHOD_HEAD) {
+        pa_ioline_defer_close(c->line);
+        return;
+    }
+
     r = pa_full_status_string(c->protocol->core);
     pa_ioline_puts(c->line, r);
     pa_xfree(r);
@@ -439,6 +466,11 @@ static void handle_listen(struct connection *c) {
                    "<h2>Sinks</h2>\n"
                    "<p>\n");
 
+    if (c->method == METHOD_HEAD) {
+        pa_ioline_defer_close(c->line);
+        return;
+    }
+
     PA_IDXSET_FOREACH(sink, c->protocol->core->sinks, idx) {
         char *t, *m;
 
@@ -566,6 +598,10 @@ static void handle_listen_prefix(struct connection *c, const char *source_name)
     http_response(c, 200, "OK", t);
     pa_xfree(t);
 
+    if(c->method == METHOD_HEAD) {
+        connection_unlink(c);
+        return;
+    }
     pa_ioline_set_callback(c->line, NULL, NULL);
 
     if (pa_ioline_is_drained(c->line))
@@ -606,10 +642,15 @@ static void line_callback(pa_ioline *line, const char *s, void *userdata) {
 
     switch (c->state) {
         case STATE_REQUEST_LINE: {
-            if (!pa_startswith(s, "GET "))
+            if (pa_startswith(s, "GET ")) {
+                c->method = METHOD_GET;
+                s +=4;
+            } else if (pa_startswith(s, "HEAD ")) {
+                c->method = METHOD_HEAD;
+                s +=5;
+            } else {
                 goto fail;
-
-            s +=4;
+            }
 
             c->url = pa_xstrndup(s, strcspn(s, " \r\n\t?"));
             c->state = STATE_MIME_HEADER;

-- 
hooks/post-receive
PulseAudio Sound Server



More information about the pulseaudio-commits mailing list