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

version 1.2, 2000/11/19 22:45:38 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 27  Create crlf #cr c, #lf c, Line 27  Create crlf #cr c, #lf c,
   
 : request ( host u request u proxy-host u port -- fid )  : request ( host u request u proxy-host u port -- fid )
     open-socket >r      open-socket >r
     2dup type ."  HTTP/1.1" cr  
     r@ write-file throw s"  HTTP/1.1" r@ writeln      r@ write-file throw s"  HTTP/1.1" r@ writeln
     s" Host: " r@ write-file throw r@ writeln      s" Host: " r@ write-file throw r@ writeln
     ." Connection: close" cr  
     s" Connection: close" r@ writeln      s" Connection: close" r@ writeln
     s" User-Agent: " r@ write-file throw      s" User-Agent: " r@ write-file throw
     User-Agent @ IF      User-Agent @ IF
Line 38  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 69  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 83  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 132  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 158  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 191  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 210  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.2  
changed lines
  Added in v.1.8


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