diff options
author | David Schleef <ds@schleef.org> | 2013-02-24 00:25:05 -0800 |
---|---|---|
committer | David Schleef <ds@schleef.org> | 2013-02-24 00:25:05 -0800 |
commit | e3db77f056222d86ee6d931f745eb107defcbd8b (patch) | |
tree | 1b7f8eddea9080e165dc6b7c983a2dc5d5a4d9f9 | |
parent | 1ae5de0d327debfc6473fb8d937182bfca6443a2 (diff) |
server: check for kiosk resource
-rw-r--r-- | gst-streaming-server/gss-resource.h | 1 | ||||
-rw-r--r-- | gst-streaming-server/gss-server.c | 13 |
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) { |