support serving Access-Control-Allow-Origin header (#19)

support serving Access-Control-Allow-Origin header

Closes #17.
This commit is contained in:
Scott Lamb
2018-03-03 06:43:36 -08:00
committed by GitHub
parent 760b8d95fb
commit 672a327ee2
3 changed files with 30 additions and 6 deletions

View File

@@ -58,11 +58,15 @@ Options:
--sample-file-dir=DIR Set the directory holding video data.
This is typically on a hard drive.
[default: /var/lib/moonfire-nvr/sample]
--ui-dir=DIR Set the directory with the user interface files (.html, .js, etc).
--ui-dir=DIR Set the directory with the user interface files
(.html, .js, etc).
[default: /usr/local/lib/moonfire-nvr/ui]
--http-addr=ADDR Set the bind address for the unencrypted HTTP server.
[default: 0.0.0.0:8080]
--read-only Forces read-only mode / disables recording.
--allow-origin=ORIGIN If present, adds a Access-Control-Allow-Origin:
header to HTTP responses. This may be useful for
Javascript development.
"#;
#[derive(Debug, Deserialize)]
@@ -72,6 +76,7 @@ struct Args {
flag_http_addr: String,
flag_ui_dir: String,
flag_read_only: bool,
flag_allow_origin: Option<String>,
}
fn setup_shutdown_future(h: &reactor::Handle) -> Box<Future<Item = (), Error = ()>> {
@@ -101,7 +106,8 @@ pub fn run() -> Result<(), Error> {
let dir = dir::SampleFileDir::new(&args.flag_sample_file_dir, db.clone()).unwrap();
info!("Database is loaded.");
let s = web::Service::new(db.clone(), dir.clone(), Some(&args.flag_ui_dir), resolve_zone())?;
let s = web::Service::new(db.clone(), dir.clone(), Some(&args.flag_ui_dir),
args.flag_allow_origin, resolve_zone())?;
// Start a streamer for each camera.
let shutdown_streamers = Arc::new(AtomicBool::new(false));