Diff for /gforth/proxy.fs between versions 1.3 and 1.8

version 1.3, 2000/11/19 22:47:54 version 1.8, 2003/03/09 15:16:52
Line 1 Line 1
 \ a http proxy  \ a http proxy
   
 \ Copyright (C) 2000 Free Software Foundation, Inc.  \ Copyright (C) 2000,2002 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 36  Create crlf #cr c, #lf c, Line 36  Create crlf #cr c, #lf c,
     ELSE  s" Gforth Proxy 0.1"  THEN  r@ writeln      ELSE  s" Gforth Proxy 0.1"  THEN  r@ writeln
     s" " r@ writeln r> ;      s" " r@ writeln r> ;
   
 Variable proxy s" localhost" proxy $!  Variable proxy          s" proxy" proxy $! \ replace that with your proxy host
 Variable proxy-port     3128 proxy-port !  Variable proxy-port     3128 proxy-port !  \ replace that with your proxy port
   
 : proxy-open ( host u request u -- fid )  : proxy-open ( host u request u -- fid )
     proxy $@ proxy-port @ request ;      proxy $@ proxy-port @ request ;
Line 67  Forth definitions Line 67  Forth definitions
   
 response: Allow:  response: Allow:
 response: Age:  response: Age:
   response: Accept-Ranges:
 response: Cache-Control:  response: Cache-Control:
 response: Connection:  response: Connection:
 response: Proxy-Connection:  response: Proxy-Connection:
Line 81  response: Content-Type: Line 82  response: Content-Type:
 response: Date:  response: Date:
 response: ETag:  response: ETag:
 response: Expires:  response: Expires:
 response: Last-modified:  response: Last-Modified:
 response: Location:  response: Location:
 response: Mime-Version:  response: Mime-Version:
 response: Proxy-Authenticate:  response: Proxy-Authenticate:
   response: Proxy-Connection:
 response: Public:  response: Public:
 response: Retry-After:  response: Retry-After:
 response: Server:  response: Server:
Line 130  Variable data-buffer Line 132  Variable data-buffer
     Content-Length @ IF      Content-Length @ IF
         Content-Length $@ s>number drop r> read-sized  EXIT  THEN          Content-Length $@ s>number drop r> read-sized  EXIT  THEN
     Transfer-Encoding @ IF      Transfer-Encoding @ IF
         Transfer-Encoding $@ s" chunked" compare 0= IF          Transfer-Encoding $@ s" chunked" str= 0= IF
             r> read-chunked  EXIT  THEN  THEN              r> read-chunked  EXIT  THEN  THEN
     r> read-to-end ;      r> read-to-end ;
   
Line 156  Variable data-buffer Line 158  Variable data-buffer
   
 \ handle proxy request  \ handle proxy request
   
 : proxy-request ( host u request u -- )  : handle-request ( fid -- )
     proxy-open  
     dup >r get-response throw  
     r@ read-data r> close-file throw  
     convert-data write-response write-data ;  
   
 : http-request ( host u request u -- )  
     http-open  
     dup >r get-response throw      dup >r get-response throw
     r@ read-data r> close-file throw      r@ read-data r> close-file throw
     convert-data write-response write-data ;      convert-data write-response write-data ;
Line 189  DOES> ( -- addr u ) Line 184  DOES> ( -- addr u )
 : (redirect?) ( addr u -- addr' u' t / f )  : (redirect?) ( addr u -- addr' u' t / f )
     htmldir $! htmldir $@ bounds ?DO      htmldir $! htmldir $@ bounds ?DO
         I c@ '/ = IF  #lf I c!  THEN  LOOP          I c@ '/ = IF  #lf I c!  THEN  LOOP
     redirects 1 set-order      redirects 1 set-order redir$ $off
     htmldir $@ ['] evaluate catch      htmldir $@ ['] evaluate catch
     IF  2drop false  ELSE  true  THEN ;      IF  2drop false  ELSE  redir$ @ 0<>  THEN ;
   
 : (redirect) ( addr u -- )  : (redirect) ( -- )
     host$ $@ 2swap proxy-request maxnum off ;      host$ $@ redir$ $@ proxy-open handle-request maxnum off ;
   
 ' (redirect?) IS redirect?  ' (redirect?) IS redirect?
 ' (redirect) IS redirect  ' (redirect) IS redirect
Line 208  Vocabulary systems Line 203  Vocabulary systems
   
 also systems definitions  also systems definitions
   
 redirect: bigforth www.jwdt.com"http://www.jwdt.com/~paysan/"  redirect: bigforth bigforth.sourceforge.net"http://bigforth.sourceforge.net/"
   
 previous previous definitions  previous previous definitions

Removed from v.1.3  
changed lines
  Added in v.1.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>