| |
|
| warnings off |
warnings off |
| |
|
| include string.fs |
require string.fs |
| |
|
| Variable url |
Variable url |
| Variable posted |
Variable posted |
| |
|
| \ http server 26mar00py |
\ http server 26mar00py |
| |
|
| |
Defer redirect? ( addr u -- addr' u' t / f ) |
| |
Defer redirect ( addr u -- ) |
| |
:noname 2drop false ; IS redirect? |
| |
|
| : http ( -- ) get-input IF .nok ELSE |
: http ( -- ) get-input IF .nok ELSE |
| IF url $@ 1 /string rework-htmldir |
IF url $@ 1 /string 2dup redirect? IF redirect 2drop ELSE |
| |
rework-htmldir |
| dup 0< IF drop .nofile |
dup 0< IF drop .nofile |
| ELSE .ok 2dup >mime mime search-wordlist |
ELSE .ok 2dup >mime mime search-wordlist |
| 0= IF ['] txt THEN catch IF maxnum off THEN |
0= IF ['] txt THEN catch IF maxnum off THEN |
| THEN THEN THEN outfile-id flush-file throw ; |
THEN THEN THEN THEN outfile-id flush-file throw ; |
| |
|
| : httpd ( n -- ) maxnum ! |
: httpd ( n -- ) maxnum ! |
| BEGIN ['] http catch maxnum @ 0= or UNTIL ; |
BEGIN ['] http catch maxnum @ 0= or UNTIL ; |
| type cr refill 0= UNTIL EXIT THEN |
type cr refill 0= UNTIL EXIT THEN |
| nip source >in @ /string rot - dup 2 + >in +! type ; |
nip source >in @ /string rot - dup 2 + >in +! type ; |
| : <HTML> ( -- ) ." <HTML>" $> ; |
: <HTML> ( -- ) ." <HTML>" $> ; |
| |
|
| |
\ provide transparent proxying |
| |
|
| |
include proxy.fs |