version 1.9, 2003/08/25 14:17:47
|
version 1.14, 2010/09/25 20:29:25
|
Line 1
|
Line 1
|
\ a http proxy |
\ a http proxy |
|
|
\ Copyright (C) 2000,2002,2003 Free Software Foundation, Inc. |
\ Copyright (C) 2000,2002,2003,2006,2007 Free Software Foundation, Inc. |
|
|
\ This file is part of Gforth. |
\ This file is part of Gforth. |
|
|
\ Gforth is free software; you can redistribute it and/or |
\ Gforth is free software; you can redistribute it and/or |
\ modify it under the terms of the GNU General Public License |
\ modify it under the terms of the GNU General Public License |
\ as published by the Free Software Foundation; either version 2 |
\ as published by the Free Software Foundation, either version 3 |
\ of the License, or (at your option) any later version. |
\ of the License, or (at your option) any later version. |
|
|
\ This program is distributed in the hope that it will be useful, |
\ This program is distributed in the hope that it will be useful, |
Line 15
|
Line 15
|
\ GNU General Public License for more details. |
\ GNU General Public License for more details. |
|
|
\ You should have received a copy of the GNU General Public License |
\ You should have received a copy of the GNU General Public License |
\ along with this program; if not, write to the Free Software |
\ along with this program. If not, see http://www.gnu.org/licenses/. |
\ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. |
|
|
|
require unix/socket.fs |
require unix/socket.fs |
|
require string.fs |
|
|
Create crlf #cr c, #lf c, |
Create crlf #cr c, #lf c, |
|
|
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" proxy" proxy $! \ replace that with your proxy host |
Variable proxy \ s" proxy" proxy $! \ replace that with your proxy host |
Variable proxy-port 3128 proxy-port ! \ replace that with your proxy port |
Variable proxy-port \ 8080 proxy-port ! \ replace that with your proxy port |
|
|
: proxy-open ( host u request u -- fid ) |
\ set proxy to your local proxy, and proxy-port to your local proxy port |
proxy $@ proxy-port @ request ; |
\ if you need any. |
|
|
: http-open ( host u request u -- fid ) |
: http-open ( host u request u -- fid ) |
2over 80 request ; |
proxy @ 0= IF 2over 80 ELSE proxy $@ proxy-port @ THEN request ; |
|
|
wordlist Constant response |
wordlist Constant response |
wordlist Constant response-values |
wordlist Constant response-values |
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" str= 0= IF |
Transfer-Encoding $@ s" chunked" str= IF |
r> read-chunked EXIT THEN THEN |
r> read-chunked EXIT THEN THEN |
r> read-to-end ; |
r> read-to-end ; |
|
|
Line 189 DOES> ( -- addr u )
|
Line 189 DOES> ( -- addr u )
|
IF 2drop false ELSE redir$ @ 0<> THEN ; |
IF 2drop false ELSE redir$ @ 0<> THEN ; |
|
|
: (redirect) ( -- ) |
: (redirect) ( -- ) |
host$ $@ redir$ $@ proxy-open handle-request maxnum off ; |
host$ $@ redir$ $@ http-open handle-request maxnum off ; |
|
|
' (redirect?) IS redirect? |
' (redirect?) IS redirect? |
' (redirect) IS redirect |
' (redirect) IS redirect |
Line 200 redirects set-current
|
Line 200 redirects set-current
|
get-order redirects swap 1+ set-order |
get-order redirects swap 1+ set-order |
|
|
Vocabulary systems |
Vocabulary systems |
|
Vocabulary humor |
|
|
also systems definitions |
also systems definitions |
|
|
redirect: bigforth bigforth.sourceforge.net"http://bigforth.sourceforge.net/" |
redirect: bigforth bigforth.sourceforge.net"/" |
|
|
|
humor definitions |
|
|
|
redirect: bush www.jwdt.com"/~paysan/bush/" |
|
|
previous previous definitions |
previous previous definitions |