summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2013-02-24 00:25:05 -0800
committerDavid Schleef <ds@schleef.org>2013-02-24 00:25:05 -0800
commite3db77f056222d86ee6d931f745eb107defcbd8b (patch)
tree1b7f8eddea9080e165dc6b7c983a2dc5d5a4d9f9
parent1ae5de0d327debfc6473fb8d937182bfca6443a2 (diff)
server: check for kiosk resource
-rw-r--r--gst-streaming-server/gss-resource.h1
-rw-r--r--gst-streaming-server/gss-server.c13
2 files changed, 14 insertions, 0 deletions
diff --git a/gst-streaming-server/gss-resource.h b/gst-streaming-server/gss-resource.h
index 9722a6e..51d12b4 100644
--- a/gst-streaming-server/gss-resource.h
+++ b/gst-streaming-server/gss-resource.h
@@ -36,6 +36,7 @@ typedef enum {
GSS_RESOURCE_HTTPS_ONLY = (1<<3),
GSS_RESOURCE_ONETIME = (1<<4),
GSS_RESOURCE_USER = (1<<5),
+ GSS_RESOURCE_KIOSK = (1<<6),
} GssResourceFlags;
struct _GssResource {
diff --git a/gst-streaming-server/gss-server.c b/gst-streaming-server/gss-server.c
index 8686683..84428a5 100644
--- a/gst-streaming-server/gss-server.c
+++ b/gst-streaming-server/gss-server.c
@@ -926,6 +926,19 @@ gss_server_resource_callback (SoupServer * soupserver, SoupMessage * msg,
gss_html_error_404 (server, msg);
return;
}
+
+ if (gss_addr_range_list_check_address (server->kiosk_arl,
+ soup_client_context_get_address (client)) &&
+ !(resource->flags & GSS_RESOURCE_KIOSK)) {
+ GssTransaction t;
+
+ /* This is kind of a hack */
+ memset (&t, 0, sizeof (t));
+ t.msg = msg;
+ gss_transaction_redirect (&t, "/kiosk");
+
+ return;
+ }
}
if (resource->flags & GSS_RESOURCE_HTTPS_ONLY) {