Mercurial > urweb
comparison src/settings.sml @ 1799:3d922a28370b
Basis.getenv
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Thu, 02 Aug 2012 16:33:25 -0400 |
parents | 2f8b8952fe27 |
children | 3c56aa6a0f55 |
comparison
equal
deleted
inserted
replaced
1798:10a2cb93d175 | 1799:3d922a28370b |
---|---|
398 | 398 |
399 val url = ref ([] : rule list) | 399 val url = ref ([] : rule list) |
400 val mime = ref ([] : rule list) | 400 val mime = ref ([] : rule list) |
401 val request = ref ([] : rule list) | 401 val request = ref ([] : rule list) |
402 val response = ref ([] : rule list) | 402 val response = ref ([] : rule list) |
403 val env = ref ([] : rule list) | |
403 | 404 |
404 fun setUrlRules ls = url := ls | 405 fun setUrlRules ls = url := ls |
405 fun setMimeRules ls = mime := ls | 406 fun setMimeRules ls = mime := ls |
406 fun setRequestHeaderRules ls = request := ls | 407 fun setRequestHeaderRules ls = request := ls |
407 fun setResponseHeaderRules ls = response := ls | 408 fun setResponseHeaderRules ls = response := ls |
409 fun setEnvVarRules ls = env := ls | |
408 | 410 |
409 fun getUrlRules () = !url | 411 fun getUrlRules () = !url |
410 fun getMimeRules () = !mime | 412 fun getMimeRules () = !mime |
411 fun getRequestHeaderRules () = !request | 413 fun getRequestHeaderRules () = !request |
412 fun getResponseHeaderRules () = !response | 414 fun getResponseHeaderRules () = !response |
415 fun getEnvVarRules () = !env | |
413 | 416 |
414 fun check f rules s = | 417 fun check f rules s = |
415 let | 418 let |
416 fun chk (ls : rule list) = | 419 fun chk (ls : rule list) = |
417 case ls of | 420 case ls of |
435 end | 438 end |
436 | 439 |
437 val checkUrl = check (fn _ => true) url | 440 val checkUrl = check (fn _ => true) url |
438 | 441 |
439 val validMime = CharVector.all (fn ch => Char.isAlphaNum ch orelse ch = #"/" orelse ch = #"-" orelse ch = #".") | 442 val validMime = CharVector.all (fn ch => Char.isAlphaNum ch orelse ch = #"/" orelse ch = #"-" orelse ch = #".") |
443 val validEnv = CharVector.all (fn ch => Char.isAlphaNum ch orelse ch = #"_" orelse ch = #".") | |
440 | 444 |
441 val checkMime = check validMime mime | 445 val checkMime = check validMime mime |
442 val checkRequestHeader = check validMime request | 446 val checkRequestHeader = check validMime request |
443 val checkResponseHeader = check validMime response | 447 val checkResponseHeader = check validMime response |
448 val checkEnvVar = check validEnv env | |
444 | 449 |
445 | 450 |
446 type protocol = { | 451 type protocol = { |
447 name : string, | 452 name : string, |
448 compile : string, | 453 compile : string, |