Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- proc on404 {method resource} {
- echo "<h1>404 Sorry</h1>"
- }
- proc webcall {method resource} {
- global mime_types
- set dir_list [split $resource /]
- foreach dir $dir_list {
- if {[string compare $dir ".."]==0} {
- echo "Nope Nope Nope Nope"
- return
- }
- }
- unset dir_list
- if {[string compare $resource "/"]==0} {
- set resource "./static/index.html"
- } else {
- set resource "./static$resource"
- }
- if {[file exists $resource] && [file isfile $resource]} {
- set fd [open $resource r]
- set data [read $fd]
- set extension_find [split $resource "."]
- if {[dict exists $mime_types [lindex $extension_find end]]} {
- response header "HTTP/1.1 200 OK\r\nContent-Type: [dict get $mime_types [lindex $extension_find end]]\r\nConncetion: close\r\nContent-Length: [string length $data]\r\n\r\n"
- } else {
- response header "HTTP/1.1 200 OK\r\nContent-Type: application/octet-stream\r\nConncetion: close\r\nContent-Length: [string length $data]\r\n\r\n"
- }
- echo $data
- close $fd
- unset data
- unset extension_find
- unset resource
- } else {
- on404 $method $resource
- }
- }
Add Comment
Please, Sign In to add comment