[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