mirror of
https://github.com/3proxy/3proxy.git
synced 2025-02-22 18:15:41 +08:00
removing autogenerated files
This commit is contained in:
parent
053630c6d7
commit
a3ffc7dc3b
2
.gitignore
vendored
2
.gitignore
vendored
@ -14,6 +14,8 @@ tmp/
|
||||
*.bat
|
||||
*.swp
|
||||
version.c
|
||||
doc/html/man3/
|
||||
doc/html/man8/
|
||||
verfile.sh
|
||||
Makefile
|
||||
copytgz.sh
|
||||
|
508
doc/devel/devref.rtf
Normal file
508
doc/devel/devref.rtf
Normal file
@ -0,0 +1,508 @@
|
||||
{\rtf1\adeflang1025\ansi\ansicpg1251\uc1\adeff0\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1049\deflangfe1049{\fonttbl{\f0\froman\fcharset204\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset204\fprq1{\*\panose 02070309020205020404}Courier New;}
|
||||
{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f39\froman\fcharset0\fprq2 Times New Roman;}{\f37\froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\f40\froman\fcharset161\fprq2 Times New Roman Greek;}{\f41\froman\fcharset162\fprq2 Times New Roman Tur;}{\f42\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f43\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\f44\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f45\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f59\fmodern\fcharset0\fprq1 Courier New;}{\f57\fmodern\fcharset238\fprq1 Courier New CE;}
|
||||
{\f60\fmodern\fcharset161\fprq1 Courier New Greek;}{\f61\fmodern\fcharset162\fprq1 Courier New Tur;}{\f62\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f63\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
|
||||
{\f64\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f65\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;
|
||||
\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{
|
||||
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1049\langfe1049\cgrid\langnp1049\langfenp1049 \snext0 Normal;}{\*\cs10 \additive \ssemihidden
|
||||
Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
|
||||
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}
|
||||
{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\listtable{\list\listtemplateid-1938272566{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \fbias0 \fi-360\li360\jclisttab\tx360\lin360 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'03\'00.\'01;}{\levelnumbers\'01\'03;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0
|
||||
\fi-360\li360\jclisttab\tx360\lin360 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'05\'00.\'01.\'02;}{\levelnumbers\'01\'03\'05;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-720\li720
|
||||
\jclisttab\tx720\lin720 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'07\'00.\'01.\'02.\'03;}{\levelnumbers\'01\'03\'05\'07;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-720\li720
|
||||
\jclisttab\tx720\lin720 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'09\'00.\'01.\'02.\'03.\'04;}{\levelnumbers\'01\'03\'05\'07\'09;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0
|
||||
\fi-1080\li1080\jclisttab\tx1080\lin1080 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0b\'00.\'01.\'02.\'03.\'04.\'05;}{\levelnumbers\'01\'03\'05\'07\'09\'0b;}\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \fbias0 \fi-1080\li1080\jclisttab\tx1080\lin1080 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06;}{\levelnumbers
|
||||
\'01\'03\'05\'07\'09\'0b\'0d;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-1440\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
|
||||
\'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-1440\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1
|
||||
\levelspace0\levelindent0{\leveltext\'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f\'11;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-1800\li1800\jclisttab\tx1800\lin1800 }{\listname ;}\listid233053280}
|
||||
{\list\listtemplateid269381388\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid1994686728\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0
|
||||
\fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid-2036938464\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }
|
||||
{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid1578941516\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255
|
||||
\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid936021434\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid-1323636224\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0
|
||||
{\leveltext\leveltemplateid-1892018578\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid-108487922
|
||||
\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid-4969626\'00;}{\levelnumbers;}\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid1135759886\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listname
|
||||
;}\listid243993609}{\list\listtemplateid1411046654{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat2\levelspace0\levelindent0{\leveltext\'01\'00;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li360
|
||||
\jclisttab\tx360\lin360 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat2\levelspace0\levelindent0{\leveltext\'03\'00.\'01;}{\levelnumbers\'01\'03;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li720\jclisttab\tx720\lin720 }
|
||||
{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'05\'00.\'01.\'02;}{\levelnumbers\'01\'03\'05;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-720\li1440\jclisttab\tx1440\lin1440 }{\listlevel
|
||||
\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'07\'00.\'01.\'02.\'03;}{\levelnumbers\'01\'03\'05\'07;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-720\li1800\jclisttab\tx1800\lin1800 }{\listlevel
|
||||
\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'09\'00.\'01.\'02.\'03.\'04;}{\levelnumbers\'01\'03\'05\'07\'09;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-1080\li2520\jclisttab\tx2520\lin2520 }
|
||||
{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0b\'00.\'01.\'02.\'03.\'04.\'05;}{\levelnumbers\'01\'03\'05\'07\'09\'0b;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-1080\li2880
|
||||
\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0d\'00.\'01.\'02.\'03.\'04.\'05.\'06;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d;}\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\fbias0 \fi-1440\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'0f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07;}{\levelnumbers
|
||||
\'01\'03\'05\'07\'09\'0b\'0d\'0f;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-1440\li3960\jclisttab\tx3960\lin3960 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
|
||||
\'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08;}{\levelnumbers\'01\'03\'05\'07\'09\'0b\'0d\'0f\'11;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-1800\li4680\jclisttab\tx4680\lin4680 }{\listname ;}\listid368384829}{\list\listtemplateid1424627480\listhybrid
|
||||
{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid1868871046\'01-;}{\levelnumbers;}\loch\af0\hich\af0\dbch\af0\fbias0 \fi-360\li420\jclisttab\tx420\lin420 }{\listlevel
|
||||
\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid68747267\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1140\jclisttab\tx1140\lin1140 }{\listlevel\levelnfc23\levelnfcn23
|
||||
\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid68747269\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li1860\jclisttab\tx1860\lin1860 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
|
||||
\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid68747265\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2580\jclisttab\tx2580\lin2580 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
|
||||
\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid68747267\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3300\jclisttab\tx3300\lin3300 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
|
||||
\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid68747269\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4020\jclisttab\tx4020\lin4020 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative
|
||||
\levelspace0\levelindent0{\leveltext\leveltemplateid68747265\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li4740\jclisttab\tx4740\lin4740 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0
|
||||
\levelindent0{\leveltext\leveltemplateid68747267\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5460\jclisttab\tx5460\lin5460 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext
|
||||
\leveltemplateid68747269\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6180\jclisttab\tx6180\lin6180 }{\listname ;}\listid634527506}{\list\listtemplateid1914202178\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat1\levelspace0\levelindent0{\leveltext\leveltemplateid745160830\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid-1816475770\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0
|
||||
{\leveltext\leveltemplateid-715330988\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid1569232270
|
||||
\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid-297370836\'00;}{\levelnumbers;}\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid-346936770\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel
|
||||
\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid416698944\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0
|
||||
\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\leveltemplateid-596467262\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0
|
||||
\levelspace0\levelindent0{\leveltext\leveltemplateid11278156\'00;}{\levelnumbers;}\rtlch\fcs1 \af0 \ltrch\fcs0 \jclisttab\tx360 }{\listname ;}\listid1261259807}}{\*\listoverridetable{\listoverride\listid1261259807\listoverridecount0\ls1}
|
||||
{\listoverride\listid634527506\listoverridecount0\ls2}{\listoverride\listid233053280\listoverridecount0\ls3}{\listoverride\listid243993609\listoverridecount0\ls4}{\listoverride\listid368384829\listoverridecount0\ls5}}{\*\rsidtbl \rsid1339617\rsid1586505
|
||||
\rsid1600374\rsid1771507\rsid1986875\rsid2235853\rsid2296829\rsid2567226\rsid2701137\rsid3560132\rsid3671104\rsid3692728\rsid4980816\rsid5776876\rsid5975359\rsid6257560\rsid6570302\rsid7013593\rsid7235628\rsid7749673\rsid8087560\rsid8326885\rsid8672163
|
||||
\rsid8675175\rsid9981679\rsid10440144\rsid10497064\rsid10908886\rsid12060716\rsid12261729\rsid12544729\rsid12806430\rsid13111076\rsid13909505\rsid15236432\rsid15609114\rsid15928529\rsid16077654}{\*\generator Microsoft Word 11.0.0000;}{\info
|
||||
{\title 3proxy developer reference}{\author Vladimir Dubrovin}{\operator Vladimir Dubrovin}{\creatim\yr2007\mo11\dy23\hr19\min28}{\revtim\yr2008\mo1\dy22\hr19\min28}{\version8}{\edmins86}{\nofpages8}{\nofwords2396}{\nofchars13662}{\*\company Sandy}
|
||||
{\nofcharsws16026}{\vern24611}{\*\password 00000000}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}{\xmlns2 urn:schemas-microsoft-com:office:smarttags}}
|
||||
\paperw11906\paperh16838\margl1701\margr850\margt1134\margb1134\gutter0\ltrsect
|
||||
\deftab708\widowctrl\ftnbj\aenddoc\donotembedsysfont1\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin
|
||||
\dghspace180\dgvspace180\dghorigin1701\dgvorigin1134\dghshow1\dgvshow1
|
||||
\jexpand\viewkind1\viewscale130\viewzk2\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\viewnobound1\snaptogridincell
|
||||
\allowfieldendsel\wrppunct\asianbrkrule\rsidroot10497064\newtblstyruls\nogrowautofit \fet0{\*\wgrffmtfilter 013f}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1
|
||||
\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5
|
||||
\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
|
||||
{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
|
||||
\fs24\lang1049\langfe1049\cgrid\langnp1049\langfenp1049 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13111076
|
||||
\par }\pard \ltrpar\qc \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2235853 {\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \fs32\lang1033\langfe1049\langnp1033\insrsid10497064\charrsid12261729 3proxy developer reference}{
|
||||
\rtlch\fcs1 \af0\afs32 \ltrch\fcs0 \fs32\lang1033\langfe1049\langnp1033\insrsid10497064
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1033\langfe1049\langnp1033\insrsid2235853\charrsid12261729 $Id: devref.rtf,v 1.4 2008/01/24 08:44:57 vlad Exp $
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10497064
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid10497064\charrsid12060716 \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\widctlpar
|
||||
\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin720\itap0\pararsid6570302 {\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid10497064\charrsid12060716 Understanding Internal 3proxy structure
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10497064 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10497064
|
||||
\par 3proxy is implemented as multithread application. Server model is implemented as \'93one connection \endash one thread\'94. It means, for every client connection new thre
|
||||
ad is created. This model is effective enough under Windows, because it allows it avoid thread creation on asynchronous operations, yet under most POSIX systems this model can not be considered as most efficient. It\rquote
|
||||
s planned for (very far in future) release to implement more efficient model, where single thread can serve few clients.
|
||||
\par
|
||||
\par
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10497064 \hich\af0\dbch\af0\loch\f0 1.1\tab}}\pard \ltrpar\ql \fi-360\li360\ri0\widctlpar
|
||||
\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls3\ilvl1\adjustright\rin0\lin360\itap0\pararsid6570302 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10497064 main thread:
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6570302 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10497064 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10497064
|
||||
3proxy begins with main thread. This thread parses configuration}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid4980816 file and starts main loop}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10497064 . }{
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163 During configuration file parsing }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid8672163\charrsid8672163 struct extaparam conf;}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163 structure is filled and service threads are started.
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302 Main loop cycle }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137 takes approximately 1 second and }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid6570302 does these tasks:}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10497064
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid6570302 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302 re-reads configuration}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid8672163 file}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302 , if necessary
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302 \hich\af0\dbch\af0\loch\f0 -\tab}performs scheduled tasks
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302 \hich\af0\dbch\af0\loch\f0 -\tab}monitors files (\lquote monitor}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid4980816 \rquote
|
||||
command}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302 )}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137 , approx. once in a minute}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid6570302
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302 \hich\af0\dbch\af0\loch\f0 -\tab}rotates main logfile
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302 \hich\af0\dbch\af0\loch\f0 -\tab}dumps counters to }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137
|
||||
file, approx. once in a minute}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid2701137 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137 performs termination, if required
|
||||
\par }\pard \ltrpar\ql \li60\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin60\itap0\pararsid8672163 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137 I}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163 t\rquote s guaranteed every configuration and schedule command is executed from the same thread.
|
||||
|
||||
\par Main thread is implemented in }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid8672163\charrsid12544729 3proxy.c}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163
|
||||
\par }\pard \ltrpar\ql \li60\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin60\itap0\pararsid6570302 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163 \hich\af0\dbch\af0\loch\f0 1.2\tab}}\pard \ltrpar\ql \fi-360\li360\ri0\widctlpar
|
||||
\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls3\ilvl1\adjustright\rin0\lin360\itap0\pararsid8672163 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163 service thread}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid6570302
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8672163 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163
|
||||
\par Service threads are started immediately, than service command (e.g. \lquote proxy\rquote or \lquote socks\rquote ) are found during configuration file parsing. Each command creates new thread. Thread does these tasks:
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid8672163 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163 parses service command arguments and fills \lquote }{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid8672163\charrsid6257560 struct srvparam srv}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163 \rquote structure with service configuration and \lquote }{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid8672163\charrsid6257560 struct clientparam defparam}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8672163 \rquote structure with default client configuration
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6257560 \hich\af0\dbch\af0\loch\f0 -\tab}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6257560 initializes filters}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132 (filter_open)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6257560\charrsid8672163
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6257560 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid6257560 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6257560 creates }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid2701137 and initializes }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6257560 listening service socket
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid3560132 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137 enters into service loop}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid3560132
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132 \hich\af0\dbch\af0\loch\f0 -\tab}terminates filters (filter_close)
|
||||
\par }\pard \ltrpar\ql \li60\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin60\itap0\pararsid2701137 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137 service loop:
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid2701137 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137
|
||||
checks for configuration reload (approximately every second), thread exits if configuration reloaded or 3proxy is in terminating state.
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137 \hich\af0\dbch\af0\loch\f0 -\tab}accepts client connection and creates \lquote }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\i\lang1033\langfe1049\langnp1033\insrsid2701137 struct clientparam new}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid2701137\charrsid6257560 param}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2701137
|
||||
\rquote structure with client configuration
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132 \hich\af0\dbch\af0\loch\f0 -\tab}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132
|
||||
creates/checks client filters (filter_client)
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132 \hich\af0\dbch\af0\loch\f0 -\tab}creates client thread with newly created \lquote }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\i\lang1033\langfe1049\langnp1033\insrsid3560132 struct clientparam new}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid3560132\charrsid6257560 param}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132
|
||||
\rquote
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid6570302 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid6570302
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5975359 service threads are implemented in }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid7749673\charrsid12544729 proxymain.c}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid5975359\charrsid7749673
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5975359
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132 Please note: struct clientparam is freed and }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132\charrsid3560132 filter_clear}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132 is executed from different (client) thread.
|
||||
\par
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132 \hich\af0\dbch\af0\loch\f0 1.3\tab}}\pard \ltrpar\ql \fi-360\li360\ri0\widctlpar
|
||||
\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls3\ilvl1\adjustright\rin0\lin360\itap0\pararsid3560132 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132 client thread
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid7749673 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid7749673
|
||||
\par Client threads are started from service thread. Client thread:
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid7749673 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid7749673 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid7749673
|
||||
reads client request (except portmappers) with authentication information and request headers (if any).
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 filters request (if any) with }{
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876\charrsid5776876 filter_request}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid7749673
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 filters headers (if any) with }{
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876\charrsid5776876 filter_header_cli}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}performs authentication and authorization
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}established connection with server
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}sends request to server
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid3560132 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 filters server headers (if any)}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid3560132
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 maps client end s
|
||||
erver sockets to transmit data between client and server
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid5776876 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 logs request. Global counters are also updated on this operation
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid3560132 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 clears client filters (}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid5776876\charrsid5776876 filter_clear}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 )
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}frees }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid5776876\charrsid5776876
|
||||
struct clientparam}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 data
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5776876 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10908886 in some point client thread may loop to process few client requests from the same connection (e.g. HTTP \lquote established\rquote connection in \lquote proxy\rquote ).
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 Socket mapping does:
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}}\pard \ltrpar\ql \fi-360\li420\ri0\widctlpar
|
||||
\jclisttab\tx420\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin420\itap0\pararsid5776876 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 caches data in internal client and server buffers
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}delays data transmit to limit bandwidth
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 \hich\af0\dbch\af0\loch\f0 -\tab}performs data filtering (}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid5776876\charrsid5776876 filter_data_cli}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 / }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876\charrsid5776876
|
||||
filter_data_srv}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid5776876 )
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3560132 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3560132
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1586505 client threads are implemented in }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid1586505\charrsid12544729 proxy.c}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid1586505 , }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid1586505\charrsid12544729 socks.c}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1586505 , }{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid1586505\charrsid12544729 pop3p.c}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1586505 etc.
|
||||
\par
|
||||
\par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid1586505\charrsid12060716 \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\widctlpar
|
||||
\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin720\itap0\pararsid1586505 {\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid1586505\charrsid12060716 Hacking into 3proxy code with plugins
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3560132 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1586505
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2296829 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2296829 2.1 }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid1586505 What is 3proxy plugin
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1586505 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1586505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10440144 3proxy plugin is any dynamic/shared library. There is no specific requirement for plugin, actually you can load any dynamic library with \lquote plugin\rquote
|
||||
command. No linking with any libraries are required. However, to interoperate with 3proxy dynamic library must have an export function 3proxy may call to pass the structure with required information.}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid1586505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid10440144\charrsid10440144 typedef int (*PLUGINFUNC) (struct pluginlink *pluginlink, int argc, char** argv);
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10440144
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid10440144\charrsid10440144 struct pluginlink}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10440144
|
||||
is a structure with export information, explained later, argc and argv are argument counter and array of arguments of \'93plugin\'94 command. Plugin should report it\rquote
|
||||
s status with integer return value. 0 is success, positive value indicates non-recoverable error, 3proxy do not parse rest of configuration and enters into termination state, negative value indicates recoverable value, 3proxy logs warning (if possible).}{
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12544729 In case of C++, all 3proxy functions/structures must be extern \'93C\'94.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10440144
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15928529 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529 All 3proxy structures/functions descriptions are located in
|
||||
}{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid15928529\charrsid15928529 structures.h}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529
|
||||
\par }\pard \ltrpar\ql \li360\ri0\widctlpar\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid2296829 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2296829
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2296829 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2296829 2.2 }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid12544729 Understanding pluginlink structure
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12544729 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12544729
|
||||
\par Because there is no linking between 3proxy and plugin, all 3proxy functions and structures are passed with pluginlink structure. Pluginlink is actually a collection of pointers to 3proxy internal structures and functions. Because plug
|
||||
inlink is constantly extending, you should see it\rquote s definitions in }{\rtlch\fcs1 \af0 \ltrch\fcs0 \b\lang1033\langfe1049\langnp1033\insrsid12544729\charrsid12544729 structures.h}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid12544729 .
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505 most important}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12544729 are:
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid13909505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid12544729\charrsid8087560 struct symbol symbols;
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8087560 \'93symbols\'94
|
||||
is a kind of name/value export table, made as a list. It can be used by plugins to exchange information and functions between plugins, e.g. to export functions from one plugin to another, where pluginlink is useless, because it\rquote s static. It
|
||||
\rquote s quite simple:}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12544729
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8087560
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8087560 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid8087560\charrsid8087560 struct symbol \{
|
||||
\par \tab struct symbol *next;
|
||||
\par \tab char * name;
|
||||
\par \tab void * value;
|
||||
\par \};
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8087560
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505 n}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8087560 ame \endash is a name of function or structure
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505 v}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8087560 alue \endash is it\rquote s value.
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8087560 u}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505 se}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8087560
|
||||
pluginlink->fundbyname function to lookup, e.g.
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid8087560\charrsid13909505 anotherplugindata = pluginlink->findbyname(\'93anotherplugindata\'94);
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8087560 To export }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505 something from your plugin, add your structure to this list.}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8087560\charrsid8087560
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12544729 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8087560\charrsid12544729
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid12544729\charrsid13909505 struct extparam *conf;
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12544729 pointer to conf structure, it holds all current 3proxy configuration
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12544729\charrsid12544729
|
||||
\par }\pard \ltrpar\ql \li360\ri0\widctlpar\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid2296829 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2296829
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2296829 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2296829 2.3 }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid12544729 How to get control within plugin}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid10440144
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12544729 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12544729
|
||||
\par There are few points you can get control for your plugin, after it\rquote s loaded with \lquote plugin\rquote command.
|
||||
\par
|
||||
\par {\listtext\tab}}\pard \ltrpar\ql \li0\ri0\widctlpar\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls4\ilvl2\adjustright\rin0\lin0\itap0\pararsid13909505 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2296829 2.3.1 }{\rtlch\fcs1
|
||||
\af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12544729 Adding configuration command processor with struct command structure
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13909505 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505
|
||||
\par A list of configuration file command, available from 3proxy.cfg is extendable. Each command is defined by }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid13909505\charrsid13909505 struct commands}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid13909505 :
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid13909505\charrsid13909505 struct commands \{
|
||||
\par \tab struct commands *next;
|
||||
\par \tab char * command;
|
||||
\par \tab int (* handler)(int argc, unsigned char ** argv);
|
||||
\par \tab int minargs;
|
||||
\par \tab int maxargs;\tab
|
||||
\par \};
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid13909505\charrsid13909505 struct commands *next}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505 - next element in list}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid13909505\charrsid13909505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid13909505\charrsid13909505 char * command}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505 \endash command name
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid13909505\charrsid13909505 int (* handler)(i}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid13909505 nt argc, unsigned char ** argv)}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505 \endash command handler. It\rquote s called than \lquote command\rquote is found in configuration files, argc is a number of arguments, counting command itself, argv is array of arguments.
|
||||
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid13909505\charrsid12060716 minargs}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505 \endash minimum number of arguments command support (>= 1)
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid12060716\charrsid12060716 maxargs}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716 \endash
|
||||
maximum number of arguments command support, 0 means infinity.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505\charrsid13909505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654 Handler r}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104
|
||||
eturn value of 0 indicates command is successfully processed. Positive return value indicates non-recoverable error, 3proxy enter}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654 s}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid3671104 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654 termination state. Negative value indicate
|
||||
s 3proxy to continue to process command list, it makes it possible to set few handlers for the same command.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716 A list of the command is pointed by pluginlinks->}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716\charrsid12060716 commandhandlers}{\rtlch\fcs1
|
||||
\af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716 ; you must insert you command after first one (do not replace pluginlink->}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716\charrsid12060716 commandhandlers}{
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716 ). It\rquote s guaranteed at least 1 dummy command is always present.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716\charrsid12060716
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716
|
||||
\par Example:
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid12060716\charrsid12060716 int mycommandhandler(int argc, unsigned char **argv);
|
||||
\par struct commands mycommand;
|
||||
\par
|
||||
\par mycommand.command = \'93mycommand\'94;
|
||||
\par mycommand.handler = mycommandhandler;
|
||||
\par mycommand.intargs = 1;
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12060716 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid12060716\charrsid12060716 mycommand.intargs = 2;
|
||||
\par mycommand.next = pluginslinks->commandhandlers->next;
|
||||
\par pluginslink->commandhandlers->next = &mycommand;
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716
|
||||
\par Adds processor for \'93mycommand\'94 command with zero on one arguments.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716\charrsid13909505
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13909505 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid13909505
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716 Adding configuration command is useful, if your plugin expects configuration data.
|
||||
\par
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3671104 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104
|
||||
\par {\listtext\tab}}\pard \ltrpar\ql \li0\ri0\widctlpar\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls4\ilvl2\adjustright\rin0\lin0\itap0\pararsid3671104 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2296829 2.3.2 }{\rtlch\fcs1
|
||||
\af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104 Adding authentication method with }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104\charrsid3671104 struct auth}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid3671104
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3671104 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104
|
||||
\par 3proxy supports authentication and authorization. Authentication process determines user account (for example by user
|
||||
name and password), authorization checks, if user account has a right to access given resource and optionally establishes a connection, if required.
|
||||
\par
|
||||
\par \lquote auth\rquote command combines both authentication and authorization method. It\rquote s extandable with struct auth list:
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid3671104\charrsid16077654 struct auth \{
|
||||
\par \tab struct auth *next;
|
||||
\par \tab AUTHFUNC authenticate;
|
||||
\par \tab AUTHFUNC authorize;
|
||||
\par \tab char * desc;
|
||||
\par \};
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid3671104\charrsid16077654 char * desc}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104 \endash name of authentication/authorization method}{\rtlch\fcs1
|
||||
\af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104\charrsid3671104
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13909505 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid3671104\charrsid16077654 authenticate}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104 \endash name of authentication function}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12060716
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid3671104\charrsid16077654 authorize}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104 \endash name of authorization function
|
||||
\par
|
||||
\par pluginlink->}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104\charrsid3671104 authfuncs}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid3671104
|
||||
points to list of authenticataction structures. Like above, new structure must be inserted after fiest one (or to the end of the list).
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654
|
||||
\par First, authentication is called, if authentication indicates OK status (return value 0), authorization is called. Normally, \lquote }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654\charrsid16077654 checkACL}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654 \rquote (pluginlink->checkACL) is called as authorization function to check user\rquote s request matches to standard allow/deny rules.
|
||||
If for some reason you need to avoid this check, you should call pluginlink->alwaysauth to do some dirty job, like establishing outgoing connection.
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid16077654\charrsid4980816 typedef int (*AUTHFUNC)(struct clientparam * param);
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654
|
||||
\par is both authentication and authorization function. \lquote }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654\charrsid16077654 struct clientparam}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654
|
||||
\rquote holds all information about client connection, including username (param->username) and password (param->password).
|
||||
\par
|
||||
\par Return value of 0 indicates successful authentication/authorization, 1}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1600374 and 3}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654 \endash
|
||||
authorization }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1600374 failed (access denied), use {\*\xmlopen\xmlns2{\factoidname metricconverter}{\xmlattr\xmlattrns0{\xmlattrname ProductID}{\xmlattrvalue 3 in}}}3 in{\*\xmlclose}
|
||||
case you want to indicate access is explicitly denied and {\*\xmlopen\xmlns2{\factoidname metricconverter}{\xmlattr\xmlattrns0{\xmlattrname ProductID}{\xmlattrvalue 3 in}}}3 in{\*\xmlclose} case there is no matching rule. 4,5,6,7,8 \endash
|
||||
authentication failed (e.g. username/password do not match). 4 indicates username }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12806430 does not present in request and }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid1600374 must be requested, if possible. 5 indicates username }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12806430 found in request }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid1600374 can not be found in user\rquote s database/list, 6,7,8 \endash username does not match password for different authentication types. 10 \endash user exceeded some limits, e.g. tr
|
||||
affic. You may use some different code to indicate internal problems.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid16077654
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1600374
|
||||
\par Example:
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1600374\charrsid1600374 int myauthfunc(struct clientparam *param);
|
||||
\par struct auth myauth;
|
||||
\par
|
||||
\par myauth.desc = \'93myauth\'94;
|
||||
\par myauth.authenticate = myauthfunc;
|
||||
\par myauth.authorize = pluginlink->checkACL;
|
||||
\par myauth->next = pluginlink->authfuncs->next;
|
||||
\par pluginlink->authfuncs->next = &myauth;
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1600374
|
||||
\par Installs \'93myauthfunc\'94 as authentication function.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid7235628 There is no need to add \lquote auth\rquote command processor for new authentication type, it\rquote
|
||||
s processed by standard \lquote auth\rquote command processor.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12806430
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid7235628
|
||||
\par {\listtext\tab}}\pard \ltrpar\ql \li0\ri0\widctlpar\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls4\ilvl2\adjustright\rin0\lin0\itap0\pararsid12806430 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2296829 2.3.3 }{\rtlch\fcs1
|
||||
\af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12806430 Adding scheduled functions
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12806430 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12806430
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid4980816 Scheduled functions are described by this structure:
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15928529\charrsid15236432 typedef enum \{NONE, MINUTELY, HOURLY, DAILY, WEEKLY, MONTHLY, ANNUALLY, NEVER\} ROTATION;
|
||||
\par
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4980816 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid4980816\charrsid15236432 struct schedule \{
|
||||
\par \tab struct schedule *next;
|
||||
\par \tab ROTATION type;
|
||||
\par \tab void *data;
|
||||
\par \tab int (*function)(void *);
|
||||
\par \tab time_t start_time;
|
||||
\par \};
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12806430 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid4980816
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15928529 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15928529\charrsid15236432 int (*function)(void *)}{\rtlch\fcs1
|
||||
\af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529 \endash scheduled function}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529\charrsid4980816
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15928529\charrsid15236432 void *data}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529 \endash
|
||||
this pointer will be passed as an argument to scheduled functions}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529\charrsid4980816
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15928529\charrsid15236432 ROTATION type}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529 \endash
|
||||
defines how often function is called (once in a minute, hour, etc).
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15928529\charrsid15236432 start_time}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529 \endash time to begin using of scheduled function
|
||||
\par
|
||||
\par Scheduled functions are called every \lquote type\rquote interval after start_time and also on reloading configuration and going to termination state.
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15236432 Schedule function r}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529 eturn value of 1 means function must be
|
||||
removed from the schedule. 3proxy doesn\rquote t free struct schedule.
|
||||
\par
|
||||
\par Schedule list can be empty. Pointer to schedule is pointed by }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15928529\charrsid15236432 struct schedule ** schedule;}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid15928529 in pluginlink.
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15236432 Example:}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15236432
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15236432\charrsid15236432 int myschedfunc(void * data);
|
||||
\par struct schedule myschedule;
|
||||
\par
|
||||
\par myschedule.data = \'93somethinghere\'94;
|
||||
\par myschedule.function = myschedfunc}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15236432 ;}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15236432\charrsid15236432
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12806430 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15236432\charrsid15236432 myschedule.type = MINUTELY;}{\rtlch\fcs1
|
||||
\af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15928529\charrsid15236432
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15236432\charrsid15236432 myschedule.starttime = 0;
|
||||
\par myschedule.next = *pluginlink->schedule;
|
||||
\par *pluginlink->schedule = myschedule;
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15236432
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1049\langnp1033\insrsid15236432\charrsid15236432 NOTE:}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15236432 time_t is different for different compilers.
|
||||
Make sure to compile plugin and 3proxy with same compiler.
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15928529
|
||||
\par {\listtext\tab}}\pard \ltrpar\ql \li0\ri0\widctlpar\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls4\ilvl2\adjustright\rin0\lin0\itap0\pararsid4980816 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid4980816 2.3.4 Filters API
|
||||
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4980816 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid4980816
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15236432 3proxy has filters API, you can use, to process client request and data flowing through proxy. It should be noted, that currently 3proxy doesn\rquote
|
||||
t provide filters with any useful data conversion, so, it\rquote s filter\rquote s task to find data in data flow. In case filter modifies some data, it\rquote s filter\rquote s task again to assure that everything\rquote s fine.}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1771507 If you know some filtering API like MILTER, you will find 3proxy filters very same.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15236432
|
||||
\par
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15236432 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid15236432\charrsid1771507 typedef enum \{
|
||||
\par \tab PASS,
|
||||
\par \tab CONTINUE,
|
||||
\par \tab HANDLED,
|
||||
\par \tab REJECT,
|
||||
\par \tab REMOVE
|
||||
\par \} FILTER_ACTION;
|
||||
\par
|
||||
\par typedef\tab void*\tab \tab FILTER_OPEN(void * idata, struct srvparam * param);
|
||||
\par typedef\tab FILTER_ACTION \tab FILTER_CLIENT(void *fo, struct clientparam * param, void** fc);
|
||||
\par typedef\tab FILTER_ACTION\tab FILTER_BUFFER(void *fc, struct clientparam * param, unsigned char ** buf_p, int * bufsize_p, int offset, int * length_p);
|
||||
\par typedef\tab void\tab \tab FILTER_CLOSE(void *fo);
|
||||
\par
|
||||
\par struct filter \{
|
||||
\par \tab struct filter * next;
|
||||
\par \tab char * instance;
|
||||
\par \tab void * data;
|
||||
\par \tab FILTER_OPEN *filter_open;
|
||||
\par \tab FILTER_CLIENT *filter_client;
|
||||
\par \tab FILTER_BUFFER *filter_request;
|
||||
\par \tab FILTER_BUFFER *filter_header_cli;
|
||||
\par \tab FILTER_BUFFER *filter_header_srv;
|
||||
\par \tab FILTER_BUFFER *filter_data_cli;
|
||||
\par \tab FILTER_BUFFER *filter_data_srv;
|
||||
\par \tab FILTER_CLOSE *filter_clear;
|
||||
\par \tab FILTER_CLOSE *filter_close;
|
||||
\par \};
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15236432
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1771507 {\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1771507\charrsid1771507 char * instance}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1771507 \endash is some instance identifier. You can use it to find required filter in the list. 3proxy itself doesn\rquote t use this field.}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid1771507\charrsid15236432
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid7013593
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1771507\charrsid1771507 void * data}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1771507 \endash this parameter is passed to filter_open function.
|
||||
\par The rest are filtering functions. Section 1 explains where and then each filter is called.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid7013593 data should not be NULL.}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid1771507
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1771507\charrsid1986875 filter_open}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1771507 must always be defined, if you want filter to be ever used. It
|
||||
\rquote s called then new service is created and is given \'93data\'94 from struct filter and struct srvparam (parsed service configuration). If filter_op
|
||||
en for some filter returns NULL, filter will not be used for this service. Non-NULL return value will be used as \'93fo\'94 parameter for every call to filter_client.
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1771507\charrsid1986875 filter_client}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1771507 }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid1986875 is called upon client connect (before any data is sent/received). It\rquote s good plac
|
||||
e to filter client by IP (and is not good place to filter it by hostname, because this operation takes a long time, 3proxy will not be able to accept new connection). fo is a data pointer received from filter_open, param \endash
|
||||
newly created clientparam structu
|
||||
re, fc is return parameter filter_open must initialize, it will be used as an argument to FILTER_BUFFER functions. PASS return value means this filter will be used for this client request. CONTINUE says to install filters. On different values client conne
|
||||
ction is closed and no client thread is created.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1771507\charrsid15236432
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15236432 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1771507
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1986875 f}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1986875\charrsid1771507 ilter_reques}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\i\lang1033\langfe1049\langnp1033\insrsid1986875 t, }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1986875\charrsid1771507 filter_header_cli}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1986875 , }{
|
||||
\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1986875\charrsid1771507 filter_header_srv}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1986875 , }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\i\lang1033\langfe1049\langnp1033\insrsid1986875\charrsid1771507 filter_data_cli}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1986875 , }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\i\lang1033\langfe1049\langnp1033\insrsid1986875\charrsid1771507 filter_data_srv}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid1986875 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1986875
|
||||
are used to process request and data r}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679 eceived from client and server.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid1986875\charrsid1986875
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4980816 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15236432
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679\charrsid1771507 char ** buf_p}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679 is a pointer to current buffer, }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\i\lang1033\langfe1049\langnp1033\insrsid9981679\charrsid1771507 int * bufsize_p}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679 is a pointer to it\rquote s size. In case you change some data and it doesn\rquote
|
||||
t fit to current buffer, you may allocate new buffer (with pluginlink->myalloc), copy data from old buffer, free old buffer (with pluginlink->myfree) and set new values for *}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\i\lang1033\langfe1049\langnp1033\insrsid9981679\charrsid1771507 buf_p}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679 and }{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679 *}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679\charrsid1771507 bufsize_p}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679 .
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679 int }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679\charrsid1771507 * offset_p}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid9981679 offset of the new data in the buffer, }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679\charrsid1771507 int * length_p}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid9981679 length of all data in the buffer. You should filter only (*length_p - *offset_p) characters starting from }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679\charrsid9981679
|
||||
(*buf_p + *offset_p)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679 .}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679\charrsid9981679
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679\charrsid1771507 filter_clear}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679 }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid9981679 is called for each successfule filter_client}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15609114 and should be used to free allocated resources}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid9981679\charrsid9981679
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid9981679\charrsid9981679 filter_close}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679 is called for each successful filter_open}{\rtlch\fcs1 \af0
|
||||
\ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15609114 for the same reason}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679
|
||||
\par
|
||||
\par An example of filter API usage you can find in PCREPlugin (see plugins/}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679\charrsid9981679 PCREPlugin}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679 /
|
||||
}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679\charrsid9981679 pcre_plugin.c}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid9981679 ).
|
||||
\par
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\lang1033\langfe1049\langnp1033\insrsid15609114\charrsid15609114 Note}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15609114 : if }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid15609114\charrsid15609114 param->nooverwritefilter}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15609114
|
||||
is set for FILTER_BUFFER functions, filter may change data in the buffer, but must not change data length. This flag may be set, if data size if already known and is sent to the client. }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid15609114\charrsid15609114
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid15609114\charrsid9981679
|
||||
\par {\listtext\tab}}\pard \ltrpar\ql \li0\ri0\widctlpar\jclisttab\tx360\wrapdefault\aspalpha\aspnum\faauto\ls4\ilvl2\adjustright\rin0\lin0\itap0\pararsid4980816 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid4980816 2.3.5
|
||||
Replacing log functions, traffic counting functions, bandwidth limitation functions
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4980816 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid4980816
|
||||
\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13909505 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8326885
|
||||
Log, traffic and bandwidth function can be directly replaced in any over place. All functions may be replaced in conf (pluginlink->conf->logfunc, pluginlink->conf->bandlim
|
||||
func, pluginlink->conf->trafcountfunc). In this case, these functions will be used for services started after the changes are made. }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2567226 l}{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid8326885 ogfunc may also be changed for }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2567226 struct s}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid8326885
|
||||
rvparam (e.g. within filter_open)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2567226 , bandlimfunc and trafcountfunc may be changed in struct clientparam for every client individually (e.g. within filter_client).}{\rtlch\fcs1
|
||||
\af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid12806430
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2567226
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid2567226\charrsid2567226 typedef void (*LOGFUNC)(struct clientparam * param, const unsigned char * test);
|
||||
\par typedef void (*TRAFCOUNTFUNC)(struct clientparam * param); }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid2567226
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid2567226\charrsid2567226 typedef unsigned (*BANDLIMFUNC)(struct clientparam * param, unsigned nbytesin, unsigned nbytesout);
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2567226
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid2567226\charrsid2567226 struct clientparam * param}{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid2567226 \endash }{\rtlch\fcs1 \af0 \ltrch\fcs0
|
||||
\lang1033\langfe1049\langnp1033\insrsid2567226 information about client request}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2567226\charrsid2567226
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid2567226\charrsid2567226 char * text}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2567226 - text string (e.g. request)
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \i\lang1033\langfe1049\langnp1033\insrsid2567226\charrsid2567226 nbytesin, nbytesout}{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2567226 \endash
|
||||
number of bytes received from / send to server. bandlimfunc returns delay in milliseconds.
|
||||
\par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1033\langfe1049\langnp1033\insrsid2567226\charrsid2567226
|
||||
\par }}
|
File diff suppressed because it is too large
Load Diff
@ -1,268 +0,0 @@
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of 3proxy</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>3proxy</H1>
|
||||
Section: Universal proxy server (8)<BR>Updated: July 2009<BR><A HREF="#index">Index</A>
|
||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<B>3proxy</B>
|
||||
|
||||
- 3[APA3A] tiny proxy server, or trivial proxy server, or free proxy
|
||||
server
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSIS</H2>
|
||||
|
||||
<B>3proxy</B>
|
||||
|
||||
[<I>config_file</I>]
|
||||
|
||||
<BR>
|
||||
|
||||
<B>3proxy</B>
|
||||
|
||||
[<I>--install</I>]
|
||||
|
||||
<BR>
|
||||
|
||||
<B>3proxy</B>
|
||||
|
||||
[<I>--remove</I>]
|
||||
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<B>3proxy</B>
|
||||
|
||||
is universal proxy server. It can be used to provide internal users wuth
|
||||
fully controllable access to external resources or to provide external
|
||||
users with access to internal resources. 3proxy is not developed to replace
|
||||
<B><A HREF="../man8/squid.8.html">squid</A></B>(8),
|
||||
|
||||
but it can extend functionality of existing cashing proxy.
|
||||
It can be used to route requests between different types of clients and proxy
|
||||
servers. Think about it as application level
|
||||
gateway with configuration like hardware router has for network layer.
|
||||
It can establish multiple
|
||||
gateways with HTTP and HTTPS proxy with FTP over HTTP support, SOCKS v4,
|
||||
v4.5 and v5, POP3 proxy, UDP and TCP portmappers. Each gateway is started
|
||||
from configuration file like independant service
|
||||
<B><A HREF="../man8/proxy.8.html">proxy</A></B>(8)
|
||||
|
||||
<B><A HREF="../man8/socks.8.html">socks</A></B>(8)
|
||||
|
||||
<B><A HREF="../man8/pop3p.8.html">pop3p</A></B>(8)
|
||||
|
||||
<B><A HREF="../man8/tcppm.8.html">tcppm</A></B>(8)
|
||||
|
||||
<B><A HREF="../man8/udppm.8.html">udppm</A></B>(8)
|
||||
|
||||
<B><A HREF="../man8/ftppr.8.html">ftppr</A></B>(8)
|
||||
|
||||
<B>dnspr</B>
|
||||
|
||||
but
|
||||
<B>3proxy</B>
|
||||
|
||||
is not a kind of wrapper or superserver for this daemons. It just has same
|
||||
code compiled in, but provides much more functionality. SOCKSv5
|
||||
implementatation allows to use 3proxy with any UDP or TCP based client
|
||||
applications designed without
|
||||
proxy support (with
|
||||
<I>SocksCAP</I>,
|
||||
|
||||
<I>FreeCAP</I>
|
||||
|
||||
or another client-side redirector under Windows of with socksification library
|
||||
under Unix). So you can play your favourite games, listen music, exchange
|
||||
files and messages and even accept incoming connections behind proxy server.
|
||||
<P>
|
||||
|
||||
<I>dnspr</I>
|
||||
|
||||
does not exist as independant service. It' DNS caching proxy (it requires
|
||||
<I>nscache</I>
|
||||
|
||||
and
|
||||
<I>nserver</I>
|
||||
|
||||
to be set in configuration. Only A-records are cached. Please note, the
|
||||
this caching is mostly a 'hack' and has nothing to do with real
|
||||
DNS server, but it works perfectly for SOHO networks.
|
||||
<P>
|
||||
<P>
|
||||
|
||||
3proxy supports access control lists (ACL) like network router. Source
|
||||
and destination networks and destination port can be specified. In addition,
|
||||
usernames and gateway action (for example GET or POST) can be used in ACLs.
|
||||
In order to filter request on username basis user must be authenticated somehow. There are few
|
||||
authentication types including password authentication and authentication by
|
||||
NetBIOS name for Windows clients (it's very like ident authentication).
|
||||
Depending on ACL action request can be allowed, denied or redirected to another
|
||||
host or to another proxy server or even to a chain of proxy servers.
|
||||
<P>
|
||||
|
||||
It supports different types of logging: to logfiles,
|
||||
<B><A HREF="../man3/syslog.3.html">syslog</A></B>(3)
|
||||
|
||||
(only under Unix) or to ODBC database. Logging format is turnable to provide
|
||||
compatibility with existing log file parsers. It makes it possible to use
|
||||
3proxy with IIS, ISA, Apache or Squid log parsers.
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>config_file</B>
|
||||
|
||||
<DD>
|
||||
Name of config file. See
|
||||
<B><A HREF="../man3/3proxy.cfg.3.html">3proxy.cfg</A></B>(3)
|
||||
|
||||
for configuration file format. Under Windows, if config_file is not specified,
|
||||
<B>3proxy</B>
|
||||
|
||||
looks for file named
|
||||
<I>3proxy.cfg</I>
|
||||
|
||||
in the default location (in same directory with executable file and in current
|
||||
directory). Under Unix, if no config file is specified, 3proxy reads
|
||||
configuration from stdin. It makes it possible to use 3proxy.cfg file as
|
||||
executable script just by setting +x mode and adding
|
||||
<BR>
|
||||
|
||||
#!/usr/local/3proxy/3proxy
|
||||
<BR>
|
||||
|
||||
as a first line in 3proxy.cfg
|
||||
<DT><B>--install</B>
|
||||
|
||||
<DD>
|
||||
(Windows NT family only) install
|
||||
<B>3proxy</B>
|
||||
|
||||
as a system service
|
||||
<DT><B>--remove</B>
|
||||
|
||||
<DD>
|
||||
(Windows NT family only) remove
|
||||
<B>3proxy</B>
|
||||
|
||||
from system services
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>SIGNALS</H2>
|
||||
|
||||
Under Unix there are few signals
|
||||
<B>3proxy</B>
|
||||
|
||||
catches. See
|
||||
<B><A HREF="../man1/kill.1.html">kill</A></B>(1).
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>SIGTERM</B>
|
||||
|
||||
<DD>
|
||||
cleanup connections and exit
|
||||
<DT><B>SIGPAUSE</B>
|
||||
|
||||
<DD>
|
||||
stop to accept new connections, on second signal - start and re-read
|
||||
configuration
|
||||
<DT><B>SIGCONT</B>
|
||||
|
||||
<DD>
|
||||
start to accept new conenctions
|
||||
<DT><B>SIGUSR1</B>
|
||||
|
||||
<DD>
|
||||
reload configuration
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Under Windows, if
|
||||
<B>3proxy</B>
|
||||
|
||||
is installed as service you can standard service management to start, stop,
|
||||
pause and continue 3proxy service, for example:
|
||||
<BR>
|
||||
|
||||
<B>net start 3proxy</B>
|
||||
|
||||
<BR>
|
||||
|
||||
<B>net stop 3proxy</B>
|
||||
|
||||
<BR>
|
||||
|
||||
<B>net pause 3proxy</B>
|
||||
|
||||
<BR>
|
||||
|
||||
<B>net continue 3proxy</B>
|
||||
|
||||
<P>
|
||||
|
||||
Web admin service can also be used to reload configuration. Use
|
||||
wget to automate this task.
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>FILES</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><I>/usr/local/3proxy/3proxy.cfg (3proxy.cfg)</I>
|
||||
|
||||
<DD>
|
||||
<B>3proxy</B>
|
||||
|
||||
configuration file
|
||||
</DL>
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
Report all bugs to
|
||||
<B><A HREF="mailto:3proxy@security.nnov.ru">3proxy@security.nnov.ru</A></B>
|
||||
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="../man3/3proxy.cfg.3.html">3proxy.cfg</A>(3), <A HREF="../man8/proxy.8.html">proxy</A>(8), <A HREF="../man8/ftppr.8.html">ftppr</A>(8), <A HREF="../man8/socks.8.html">socks</A>(8), <A HREF="../man8/pop3p.8.html">pop3p</A>(8), <A HREF="../man8/tcppm.8.html">tcppm</A>(8), <A HREF="../man8/udppm.8.html">udppm</A>(8),
|
||||
<A HREF="../man1/kill.1.html">kill</A>(1), <A HREF="../man8/syslogd.8.html">syslogd</A>(8),
|
||||
<BR>
|
||||
|
||||
<A HREF="http://3proxy.ru/">http://3proxy.ru/</A>
|
||||
<A NAME="lbAJ"> </A>
|
||||
<H2>TRIVIA</H2>
|
||||
|
||||
3APA3A is pronounced as ``zaraza''.
|
||||
<A NAME="lbAK"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
3proxy is designed by 3APA3A
|
||||
(<I><A HREF="mailto:3APA3A@security.nnov.ru">3APA3A@security.nnov.ru</A></I>),
|
||||
|
||||
Vladimir Dubrovin
|
||||
(<I><A HREF="mailto:vlad@sandy.ru">vlad@sandy.ru</A></I>)
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">SIGNALS</A><DD>
|
||||
<DT><A HREF="#lbAG">FILES</A><DD>
|
||||
<DT><A HREF="#lbAH">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAI">SEE ALSO</A><DD>
|
||||
<DT><A HREF="#lbAJ">TRIVIA</A><DD>
|
||||
<DT><A HREF="#lbAK">AUTHORS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
using the manual pages.<BR>
|
||||
Time: 21:23:55 GMT, April 07, 2014
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,693 +0,0 @@
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of 3proxy.conf</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>3proxy.conf</H1>
|
||||
Section: Universal proxy server
(5)<BR>Updated: December 2004<BR><A HREF="#index">Index</A>
|
||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<B>3proxy.conf</B>
|
||||
|
||||
- 3proxy configuration file
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
|
||||
|
||||
Common structure:
|
||||
|
||||
Configuration file is a text file 3proxy reads configuration from. Each line
|
||||
of the file is command and is executed immediately, as it was given from
|
||||
console. Each line of the file is treated as a blank (space or tab) separated
|
||||
command line. Additional space characters are ignored.
|
||||
Think about 3proxy as "application level router" with console interface.
|
||||
|
||||
Comments:
|
||||
|
||||
Any string beginning with space character or '#' character is comment. It's
|
||||
ignored. <LF>s are ignored. <CR> is end of command.
|
||||
|
||||
|
||||
Quotation:
|
||||
|
||||
Quotation character is spaces or another special characters. To use quotation character inside
|
||||
quotation character must be dubbed (BASIC convention). For example to use
|
||||
HELLO Good practice is to quote any argument you use.
|
||||
|
||||
File inclusion:
|
||||
|
||||
You can include file by using $FILENAME macro (replace FILENAME with a path
|
||||
to file, for example $/usr/local/etc/3proxy/conf.incl or
|
||||
<BR> $"c:\Program Files\3proxy\include.cfg" Quotation is
|
||||
required in last example because path contains space character.
|
||||
For included file <CR> (end of line characters) is treated as space character
|
||||
(arguments delimiter instead of end of command delimiter).
|
||||
Thus, include files are only useful to store long signle-line commands
|
||||
(like userlist, network lists, etc).
|
||||
To use dollar sign somewhere in argument it must be quoted.
|
||||
Recursion is not allowed.
|
||||
|
||||
Commands:
|
||||
|
||||
<B>proxy</B>
|
||||
|
||||
[options]
|
||||
<BR>
|
||||
|
||||
<B>socks</B>
|
||||
|
||||
[options]
|
||||
<BR>
|
||||
|
||||
<B>pop3p</B>
|
||||
|
||||
[options]
|
||||
<BR>
|
||||
|
||||
<B>ftppr</B>
|
||||
|
||||
[options]
|
||||
<BR>
|
||||
|
||||
<B>admin</B>
|
||||
|
||||
[options]
|
||||
<BR>
|
||||
|
||||
<B>dnspr</B>
|
||||
|
||||
[options]
|
||||
<BR>
|
||||
|
||||
<B>tcppm</B>
|
||||
|
||||
[options]
|
||||
<SRCPORT> <DSTADDR> <DSTPORT>
|
||||
<BR>
|
||||
|
||||
<B>udppm</B>
|
||||
|
||||
[options]
|
||||
<SRCPORT> <DSTADDR> <DSTPORT>
|
||||
|
||||
starts gateway services
|
||||
|
||||
<B>proxy</B>
|
||||
|
||||
- HTTP/HTTPS proxy (default port 3128)
|
||||
<BR>
|
||||
|
||||
<B>socks</B>
|
||||
|
||||
- SOCKS 4/4.5/5 proxy (default port 1080)
|
||||
<BR>
|
||||
|
||||
<B>pop3p</B>
|
||||
|
||||
- POP3 proxy (default port 110)
|
||||
<BR>
|
||||
|
||||
<B>ftppr</B>
|
||||
|
||||
- FTP proxy (default port 21)
|
||||
<BR>
|
||||
|
||||
<B>admin</B>
|
||||
|
||||
- Web interface (default port 80)
|
||||
<BR>
|
||||
|
||||
<B>dnspr</B>
|
||||
|
||||
- caching DNS proxy (default port 53)
|
||||
<BR>
|
||||
|
||||
<B>tcppm</B>
|
||||
|
||||
- TCP portmapper
|
||||
<BR>
|
||||
|
||||
<B>udppm</B>
|
||||
|
||||
- UDP portmapper
|
||||
|
||||
Options:
|
||||
<BR>
|
||||
|
||||
<B>-pNUMBER</B>
|
||||
|
||||
change default server port to NUMBER
|
||||
<BR>
|
||||
|
||||
<B>-n</B>
|
||||
|
||||
disable NTLM authentication (required if passwords are stored in Unix crypt format.
|
||||
<BR>
|
||||
|
||||
Also, all options mentioned for
|
||||
<B><A HREF="../man8/proxy.8.html">proxy</A></B>(8)
|
||||
|
||||
<B><A HREF="../man8/socks.8.html">socks</A></B>(8)
|
||||
|
||||
<B><A HREF="../man8/pop3p.8.html">pop3p</A></B>(8)
|
||||
|
||||
<B><A HREF="../man8/tcppm.8.html">tcppm</A></B>(8)
|
||||
|
||||
<B><A HREF="../man8/udppm.8.html">udppm</A></B>(8)
|
||||
|
||||
<B><A HREF="../man8/ftppr.8.html">ftppr</A></B>(8)
|
||||
|
||||
are also supported.
|
||||
|
||||
Portmapping services listen at SRCPORT and connect to DSTADDR:DSTPORT
|
||||
HTTP and SOCKS proxies are standard.
|
||||
|
||||
POP3 proxy must be configured as POP3 server and requires username in the form of:
|
||||
<A HREF="mailto:pop3username@pop3server">pop3username@pop3server</A>. If POP3 proxy access must be authenticated, you can
|
||||
specify username as proxy_username:proxy_password:<A HREF="mailto:POP3_username@pop3server">POP3_username@pop3server</A>
|
||||
|
||||
DNS proxy is only capable to resolve hostnames (no MX, PTR, SRV, etc) and
|
||||
requires nserver/nscache to be configured.
|
||||
|
||||
FTP proxy can be used as FTP server in any FTP client or configured as FTP
|
||||
proxy on a client with FTP proxy support. Username format is one of
|
||||
<BR> <A HREF="mailto:FTPuser@FTPServer">FTPuser@FTPServer</A>
|
||||
<BR> FTPuser:<A HREF="mailto:FTPpassword@FTPserver">FTPpassword@FTPserver</A>
|
||||
<BR> proxyuser:proxypassword:FTPuser:<A HREF="mailto:FTPpassword@FTPserver">FTPpassword@FTPserver</A>
|
||||
<BR>
|
||||
|
||||
Please note, if you use FTP client interface for FTP proxy
|
||||
do not add FTPpassword and FTPServer to username, because
|
||||
FTP client does it for you. That is, if you use 3proxy with
|
||||
authentication use
|
||||
proxyuser:proxypassword:FTPuser
|
||||
as FTP username, otherwise do not change original FTP user name<TT> </TT><BR>
|
||||
|
||||
<B>config</B>
|
||||
|
||||
<path>
|
||||
<BR>
|
||||
|
||||
Path to configuration file to use on 3proxy restart or to save configuration.
|
||||
|
||||
<B>writable</B>
|
||||
|
||||
<BR>
|
||||
|
||||
ReOpens configuration file for write access via Web interface,
|
||||
and re-reads it. Usually should be first command on config file
|
||||
but in combination with "config" it can be used anywhere to open
|
||||
alternate config file. Think twice before using it.
|
||||
|
||||
<B>end</B>
|
||||
|
||||
<BR>
|
||||
|
||||
End of configuration
|
||||
|
||||
<B>log</B>
|
||||
|
||||
[[@|&]logfile] [<LOGTYPE>]
|
||||
<BR>
|
||||
|
||||
sets logfile for all gateways
|
||||
<BR> @ - (for Unix) use syslog, filename is used as ident name
|
||||
<BR> & - use ODBC, filename consists of comma-delimited datasource,username,password (username and password are optional)
|
||||
<BR> LOGTYPE is one of:
|
||||
<BR> M - Monthly
|
||||
<BR> W - Weekly (starting from Sunday)
|
||||
<BR> D - Daily
|
||||
<BR> H - Hourly
|
||||
if logfile is not specified logging goes to stdout. You can specify individual logging options for gateway by using
|
||||
-l option in gateway configuration.
|
||||
|
||||
<B>rotate</B>
|
||||
|
||||
<n>
|
||||
how many archived log files to keep
|
||||
|
||||
<B>logformat</B>
|
||||
|
||||
<format>
|
||||
|
||||
Format for log record. First symbol in format must be L (local time)
|
||||
or G (absolute Grinwitch time).
|
||||
It can be preceeded with -XXX+Y where XXX is list of characters to be
|
||||
filtered in user input (any non-printable characters are filtered too
|
||||
in this case) and Y is replacement character. For example, "-,%+ L" in
|
||||
the beginning of logformat means comma and percent are replaced
|
||||
with space and all time based elemnts are in local time zone.
|
||||
You can use:
|
||||
|
||||
<BR> %y - Year in 2 digit format
|
||||
<BR> %Y - Year in 4 digit format
|
||||
<BR> %m - Month number
|
||||
<BR> %o - Month abbriviature
|
||||
<BR> %d - Day
|
||||
<BR> %H - Hour
|
||||
<BR> %M - Minute
|
||||
<BR> %S - Second
|
||||
<BR> %t - Timstamp (in seconds since 01-Jan-1970)
|
||||
<BR> %. - milliseconds
|
||||
<BR> %z - timeZone (from Grinvitch)
|
||||
<BR> %D - request duration (in milliseconds)
|
||||
<BR> %b - average send rate per request (in Bytes per second) this speed is typically below connection speed shown by download manager.
|
||||
<BR> %B - average receive rate per request (in Bytes per second) this speed is typically below connection speed shown by download manager.
|
||||
<BR> %U - Username
|
||||
<BR> %N - service Name
|
||||
<BR> %p - service Port
|
||||
<BR> %E - Error code
|
||||
<BR> %C - Client IP
|
||||
<BR> %c - Client port
|
||||
<BR> %R - Remote IP
|
||||
<BR> %r - Remote port
|
||||
<BR> %n - requested hostname
|
||||
<BR> %I - bytes In
|
||||
<BR> %O - bytes Out
|
||||
<BR> %h - Hops (redirections) count
|
||||
<BR> %T - service specific Text
|
||||
<BR> %N1-N2T - (N1 and N2 are positive numbers) - log only fields from N1 thorugh N2 of service specific text
|
||||
in case of ODBC logging logformat specifies SQL statement, for exmample:
|
||||
<BR> logformat "-'+_Linsert into log (l_date, l_user, l_service, l_in, l_out, l_descr) values ('%d-%m-%Y %H:%M:%S', '%U', '%N', %I, %O, '%T')"
|
||||
|
||||
<B>archiver</B>
|
||||
|
||||
<ext> <commandline>
|
||||
<BR>
|
||||
|
||||
Archiver to use for log files. <ext> is file extension produced by
|
||||
archiver. Filename will be last argument to archiver, optionally you
|
||||
can use %A as produced archive name and %F as filename.
|
||||
|
||||
<B>timeouts</B>
|
||||
|
||||
<BYTE_SHORT> <BYTE_LONG> <STRING_SHORT> <STRING_LONG> <CONNECTION_SHORT> <CONNECTION_LONG> <DNS> <CHAIN>
|
||||
Sets timeout values
|
||||
<BR> BYTE_SHORT - short timeout for single byte, is usually used for receiving single byte from stream.
|
||||
<BR> BYTE_LONG - long timeout for single byte, is usually used for receiving first byte in frame (for example first byte in socks request).
|
||||
<BR> STRING_SHORT - short timeout, for character string within stream (for example to wait between 2 HTTP headers)
|
||||
<BR> STRING_LONG - long timeout, for first string in stream (for example to wait for HTTP request).
|
||||
<BR> CONNECTION_SHORT - inactivity timeout for short connections (HTTP, POP3, etc).
|
||||
<BR> CONNECTION_LONG - inactivity timeout for long connection (SOCKS, portmappers, etc).
|
||||
<BR> DNS - timeout for DNS request before requesting next server
|
||||
<BR> CHAIN - timeout for reading data from chained connection
|
||||
|
||||
<B>nserver</B>
|
||||
|
||||
<BR> <ipaddr>
|
||||
<BR>
|
||||
|
||||
Nameserver to use for name resolutions. If none spcified system
|
||||
or name server fails system routines for name resolution will be
|
||||
used. It's better to specify nserver because gethostbyname() may
|
||||
be thread unsafe.
|
||||
|
||||
<B>nscache</B>
|
||||
|
||||
<cachesize>
|
||||
<BR>
|
||||
|
||||
|
||||
Cache <cachesize> records for name resolution. Cachesize usually
|
||||
should be large enougth (for example 65536).
|
||||
|
||||
<B>nsrecord</B>
|
||||
|
||||
<hostname> <hostaddr>
|
||||
<B></B>
|
||||
|
||||
Adds static record to nscache. nscache must be enabled. If 0.0.0.0
|
||||
is used as a hostaddr host will never resolve, it can be used to
|
||||
blacklist something or together with
|
||||
<B>dialer</B>
|
||||
|
||||
command to set up UDL for dialing.
|
||||
|
||||
<B>dialer</B>
|
||||
|
||||
<progname>
|
||||
<BR>
|
||||
|
||||
Execute progname if external name can't be resolved.
|
||||
Hint: if you use nscache, dialer may not work, because names will
|
||||
be resolved through cache. In this case you can use something like
|
||||
<A HREF="http://dial.right.now/">http://dial.right.now/</A> from browser to set up connection.
|
||||
|
||||
|
||||
<B>internal</B>
|
||||
|
||||
<ipaddr>
|
||||
<BR>
|
||||
|
||||
sets ip address of internal interface. This IP address will be used
|
||||
to bind gateways. Alternatively you can use -i option for individual
|
||||
gateways
|
||||
|
||||
<B>external</B>
|
||||
|
||||
<ipaddr>
|
||||
<BR>
|
||||
|
||||
sets ip address of external interface. This IP address will be source
|
||||
address for all connections made by proxy. Alternatively you can use
|
||||
-e option to specify individual address for gateway.
|
||||
<BR>
|
||||
<B>maxconn</B>
|
||||
|
||||
<number>
|
||||
<BR>
|
||||
|
||||
sets maximum number of simulationeous connections to each services
|
||||
started after this command. Default is 100.
|
||||
|
||||
<B>service</B>
|
||||
|
||||
<BR>
|
||||
|
||||
(depricated) Should be specified to launch as Windows 95/98/NT/2000/XP service,
|
||||
no effect for Unix. Is not reqired since 0.6, but you must re-install 3proxy
|
||||
service with --remove and --install.
|
||||
|
||||
<B>daemon</B>
|
||||
|
||||
<BR>
|
||||
|
||||
Should be specified to close console (not required for 'service').
|
||||
At least under FreeBSD 'daemon' should preceed any proxy service
|
||||
and log commands to avoid sockets problem. Always place it in the beginning
|
||||
of the configuration file.
|
||||
|
||||
<B>auth</B>
|
||||
|
||||
<BR>
|
||||
|
||||
Type of user authorization. Currently supported:
|
||||
<BR> none - no authorization required. Note: is auth is none any ip based limitation, redirection, etc will not work.
|
||||
<BR> iponly - authorization by source/destination IP and ports. Appropriate for most cases
|
||||
<BR> nbname - iponly + authorization by NetBIOS name. Messanger
|
||||
service should be started on user's machine. Note, that
|
||||
Windows 95/98 hosts do not have messanger service by default,
|
||||
WinPopup program need to be started.
|
||||
NB: there is no any password check, name may be spoofed.
|
||||
Think about it as about ident for Windows.
|
||||
<BR> Q: Will ident authorization be implemented?
|
||||
<BR> A: Yes, as soon as it will be required by someone.
|
||||
<BR> strong - username/password authentication required. It will work with SOCKSv5, FTP, POP3 and HTTP proxy.
|
||||
|
||||
<B>allow</B>
|
||||
|
||||
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist>
|
||||
<weekdayslist> <timeperiodslist>
|
||||
<BR>
|
||||
|
||||
<B>deny</B>
|
||||
|
||||
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist>
|
||||
<weekdayslist> <timeperiodslist>
|
||||
<BR>
|
||||
|
||||
Access control entries. All lists are comma-separated, no spaces are
|
||||
allowed. Usernames are case sensitive (if used with authtype nbname
|
||||
username must be in uppercase). Source and target lists may contain
|
||||
IP addresses (W.X.Y.Z) or CIDRs (W.X.Y.Z/L). Targetportlist may
|
||||
contain ports (X) or port lists (X-Y).<TT> </TT>For any field * sign means "ANY"<BR>
|
||||
If access list is empty it's assumed to be
|
||||
<BR> allow *
|
||||
If access list is not empty last item in access list is assumed to be
|
||||
<BR> deny *
|
||||
You may want explicitly add "deny *" into the end of access list to prevent
|
||||
HTTP proxy from requesting user's password.
|
||||
Access lists are checked after user have requested any resource.
|
||||
If you want 3proxy to reject connections from specific addresses
|
||||
immediately without any conditions you should either bind proxy
|
||||
to appropriate interface only or to use ip filters.
|
||||
|
||||
Operation is one of:
|
||||
<BR> CONNECT<TT> </TT>- establish outgoing TCP connection<BR>
|
||||
<BR> BIND - bind TCP port for listening
|
||||
<BR> UDPASSOC - make UDP association
|
||||
<BR> ICMPASSOC - make ICMP association (for future use)
|
||||
<BR> HTTP_GET - HTTP GET request
|
||||
<BR> HTTP_PUT - HTTP PUT request
|
||||
<BR> HTTP_POST - HTTP POST request
|
||||
<BR> HTTP_HEAD - HTTP HEAD request
|
||||
<BR> HTTP_CONNECT - HTTP CONNECT request
|
||||
<BR> HTTP_OTHER - over HTTP request
|
||||
<BR> HTTP - matches any HTTP request except HTTP_CONNECT
|
||||
<BR> HTTPS - same as HTTP_CONNECT
|
||||
<BR> FTP_GET - FTP get request
|
||||
<BR> FTP_PUT - FTP put request
|
||||
<BR> FTP_LIST - FTP list request
|
||||
<BR> FTP - matches any FTP request
|
||||
|
||||
Weeksdays are week days numbers or periods (0 or 7 means Sunday, 1 is Monday,
|
||||
1-5 means Monday through Friday). Timeperiodlists is a list of time
|
||||
periods in HH:MM:SS-HH:MM:SS format. For example,
|
||||
<BR> 00:00:00-08:00:00,17:00:00-24:00:00
|
||||
lists non-working hours.
|
||||
<TT> </TT><BR>
|
||||
<B>parent</B>
|
||||
|
||||
<weight> <type> <ip> <port> <username> <password>
|
||||
<BR>
|
||||
|
||||
this command may follow "allow" rule. It extends last allow rule to
|
||||
build proxy chain. Proxy may be grouped. Proxy inside the
|
||||
group is selected randomely. If few groups are specified one proxy
|
||||
is randomely picked from each group and chain of proxies is created
|
||||
(that is second proxy connected through first one and so on).
|
||||
Weight is used to group proxies. Weigt is a number between 1 and 1000.
|
||||
Weights are summed and proxies are grouped together untill weight of
|
||||
group is 1000. That is:
|
||||
<BR> allow *
|
||||
<BR> parent 500 socks5 192.168.10.1 1080
|
||||
<BR> parent 500 connect 192.168.10.1 3128
|
||||
makes 3proxy to randomely choose between 2 proxies for all outgoing
|
||||
connections
|
||||
<BR> allow * * * 80
|
||||
<BR> parent 1000 socks5 192.168.10.1 1080
|
||||
<BR> parent 1000 connect 192.168.20.1 3128
|
||||
<BR> parent 300 socks4 192.168.30.1 1080
|
||||
<BR> parent 700 socks5 192.168.40.1 1080
|
||||
creates chain of 3 proxies: 192.168.10.1, 192.168.20.1 and third
|
||||
is (192.168.30.1 with probability of 0.3 or 192.168.40.1
|
||||
with probability of 0.7) for outgoing web connections.
|
||||
|
||||
type is one of:
|
||||
<BR> tcp - simply redirect connection. TCP is always last in chain.
|
||||
<BR> http - redirect to HTTP proxy. HTTP is always last chain.
|
||||
<BR> pop3 - redirect to POP3 proxy (only local redirection is supported, can not be
|
||||
used for chaining)
|
||||
<BR> ftp - redirect to FTP proxy (only local redirection is supported, can not be
|
||||
used for chaining)
|
||||
<BR> connect - parent is HTTP CONNECT method proxy
|
||||
<BR> socks4 - parent is SOCKSv4 proxy
|
||||
<BR> socks5 - parent is SOCKSv5 proxy
|
||||
|
||||
IP and port are ip addres and port of parent proxy server.
|
||||
If IP is zero, ip is taken from original request, only port is changed.
|
||||
If port is zero, it's taken from original request, only IP is changed.
|
||||
If both IP and port are zero - it's a special case of local redirection,
|
||||
it works only with
|
||||
|
||||
socks
|
||||
proxy. In case of local redirection request is redirected to different service,
|
||||
|
||||
<B>ftppr</B>
|
||||
|
||||
|
||||
<B>pop3p</B>
|
||||
|
||||
|
||||
<B>proxy .</B>
|
||||
|
||||
|
||||
Main purpose of local redirections is to have requested resource
|
||||
(URL or POP3 username) logged and protocol-specific filters to be applied.
|
||||
In case of local redirection ACLs are revied twice: first, by SOCKS proxy up to
|
||||
|
||||
redirected (HTTP, FTP or POP3) after 'parent' command. It means,
|
||||
additional 'allow' command is required for redirected requests, for
|
||||
example:
|
||||
<BR> allow * * * 80
|
||||
<BR> parent 1000 http 0.0.0.0 0
|
||||
<BR> allow * * * 80 HTTP_GET,HTTP_POST
|
||||
<BR> socks
|
||||
redirects all SOCKS requests with target port 80 to local HTTP proxy,
|
||||
local HTTP proxy parses requests and allows only GET and POST requests.
|
||||
|
||||
Optional username and password are used to authenticate on parent
|
||||
proxy. Username of '*' means username must be supplied by user.
|
||||
|
||||
<B>bandlimin</B>
|
||||
|
||||
<rate> <userlist> <sourcelist> <targetlist> <targetportlist> <operationlist>
|
||||
<BR>
|
||||
|
||||
<B>nobandlimin</B>
|
||||
|
||||
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist>
|
||||
<BR>
|
||||
|
||||
bandlim sets bandwith limitation filter to <rate> bps (bits per second)
|
||||
(if you want to specife bytes per second - multiply your value to 8).
|
||||
bandlim rules act in a same manner as allow/deny rules except
|
||||
one thing: bandwidth limiting is applied to all services, not to some
|
||||
specific service.
|
||||
bandlimin and nobandlimin applies to incoming traffic
|
||||
bandlimout and nobandlimout applies to outgoing traffic
|
||||
If tou want to ratelimit your clients with ip's 192.168.10.16/30 (4
|
||||
addresses) to 57600 bps you have to specify 4 rules like
|
||||
<BR> bandlimin 57600 * 192.168.10.16
|
||||
<BR> bandlimin 57600 * 192.168.10.17
|
||||
<BR> bandlimin 57600 * 192.168.10.18
|
||||
<BR> bandlimin 57600 * 192.168.10.19
|
||||
and every of you clients will have 56K channel.<TT> </TT>if you specify<BR>
|
||||
<BR> bandlimin 57600 * 192.168.10.16/30
|
||||
you will have 56K channel shared between all clients.
|
||||
if you want, for example, to limit all speed ecept access to POP3 you can use
|
||||
<BR> nobandlimin * * * 110
|
||||
before the rest of bandlim rules.
|
||||
|
||||
<B>counter</B>
|
||||
|
||||
<filename> <reporttype> <repotname>
|
||||
<BR>
|
||||
|
||||
<B>countin</B>
|
||||
|
||||
<number> <type> <limit> <userlist> <sourcelist> <targetlist> <targetportlist> <operationlist>
|
||||
<BR>
|
||||
|
||||
<B>nocountin</B>
|
||||
|
||||
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist>
|
||||
<BR>
|
||||
|
||||
|
||||
counter, countin, nocountin commands are used to set traffic limit
|
||||
in MB for period of time (day, week or month). Filename is a path
|
||||
to a special file where traffic information is permanently stored.
|
||||
number is sequential number of record in this file. If number is 0
|
||||
no traffic information on this counter is saved in file (that is
|
||||
if proxy restarted all information is loosed) overwise it should be
|
||||
unique sequential number.
|
||||
Type specifies a type of counter. Type is one of:
|
||||
<BR> D - counter is resetted daily
|
||||
<BR> W - counter is resetted weekly
|
||||
<BR> M - counter is resetted monthely
|
||||
reporttype/repotname may be used to generate traffic reports.
|
||||
Reporttype is one of D,W,M,H(hourly) and repotname specifies filename
|
||||
template for reports. Report is text file with counter values in
|
||||
format:
|
||||
<BR> <COUNTERNUMBER> <TRAF*4GB> <TRAF>
|
||||
The rest of parameters is identical to bandlim/nobandlim.
|
||||
|
||||
<B>users</B>
|
||||
|
||||
username[:pwtype:password] ...
|
||||
<BR>
|
||||
|
||||
pwtype is one of:
|
||||
<BR> none (empty) - use system authentication
|
||||
<BR> CL - password is cleartext
|
||||
<BR> CR - password is crypt-style password
|
||||
<BR> NT - password is NT password (in hex)
|
||||
example:
|
||||
<BR> users test1:CL:password1 "test2:CR:$1$lFDGlder$pLRb4cU2D7GAT58YQvY49."
|
||||
<BR> users test3:NT:BD7DFBF29A93F93C63CB84790DA00E63
|
||||
<BR>
|
||||
|
||||
(note: double quotes are requiered because password contains $ sign).<TT> </TT><BR>
|
||||
|
||||
<B>flush</B>
|
||||
|
||||
<BR>
|
||||
|
||||
empty active access list. Access list must be flushed avery time you creating
|
||||
new access list for new service. For example:
|
||||
<BR> allow *
|
||||
<BR> pop3p
|
||||
<BR> flush
|
||||
<BR> allow * 192.168.1.0/24
|
||||
<BR> socks
|
||||
sets different ACLs for
|
||||
<B>pop3p</B>
|
||||
|
||||
and
|
||||
<B>socks</B>
|
||||
|
||||
|
||||
<B>system</B>
|
||||
|
||||
<BR>
|
||||
|
||||
execute system command
|
||||
|
||||
<B>pidfile</B>
|
||||
|
||||
<filename>
|
||||
<BR>
|
||||
|
||||
write pid of current process to file. It can be used to manipulate
|
||||
3proxy with signals under Unix. Currently next signals are available:
|
||||
|
||||
<B>setuid</B>
|
||||
|
||||
<uid>
|
||||
<BR>
|
||||
|
||||
calls setuid(uid), uid must be numeric. Unix only.
|
||||
|
||||
<B>setgid</B>
|
||||
|
||||
<gid>
|
||||
<BR>
|
||||
|
||||
calls setgid(gid), gid must be numeric. Unix only.
|
||||
|
||||
<B>chroot</B>
|
||||
|
||||
<path>
|
||||
<BR>
|
||||
|
||||
calls chroot(path). Unix only.
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="../man8/3proxy.8.html">3proxy</A>(8), <A HREF="../man8/proxy.8.html">proxy</A>(8), <A HREF="../man8/ftppr.8.html">ftppr</A>(8), <A HREF="../man8/socks.8.html">socks</A>(8), <A HREF="../man8/pop3p.8.html">pop3p</A>(8), <A HREF="../man8/tcppm.8.html">tcppm</A>(8), <A HREF="../man8/udppm.8.html">udppm</A>(8), <A HREF="../man8/syslogd.8.html">syslogd</A>(8),
|
||||
<BR>
|
||||
|
||||
<A HREF="http://3proxy.ru/">http://3proxy.ru/</A>
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>TRIVIA</H2>
|
||||
|
||||
3APA3A is pronounced as ``zaraza''.
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
3proxy is designed by 3APA3A
|
||||
(<I><A HREF="mailto:3APA3A@security.nnov.ru">3APA3A@security.nnov.ru</A></I>),
|
||||
|
||||
Vladimir Dubrovin
|
||||
(<I><A HREF="mailto:vlad@sandy.ru">vlad@sandy.ru</A></I>)
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAD">SEE ALSO</A><DD>
|
||||
<DT><A HREF="#lbAE">TRIVIA</A><DD>
|
||||
<DT><A HREF="#lbAF">AUTHORS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
using the manual pages.<BR>
|
||||
Time: GMT, December 11, 2004
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,160 +0,0 @@
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of ftppr</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>ftppr</H1>
|
||||
Section: Universal proxy server (8)<BR>Updated: July 2009<BR><A HREF="#index">Index</A>
|
||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<B>ftppr</B>
|
||||
|
||||
- FTP proxy gateway service
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSIS</H2>
|
||||
|
||||
<B>ftppr </B>[<B>-d</B>]
|
||||
|
||||
<I></I>[<B>-l</B><I></I>[<B></B>[<I>@</I><B></B>]<I>logfile</I><B></B>]]
|
||||
|
||||
<I></I>[<B>-p</B><I>port</I>]
|
||||
|
||||
<I></I>[<B>-i</B><I>internal_ip</I>]
|
||||
|
||||
<I></I>[<B>-e</B><I>external_ip</I>]
|
||||
|
||||
<I></I>[<B>-h</B><I>default_ip[:port]</I>]
|
||||
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<B>ftppr</B>
|
||||
|
||||
is FTP gateway service to allow internal users to access external FTP
|
||||
servers.
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>-I</B>
|
||||
|
||||
<DD>
|
||||
Inetd mode. Standalone service only.
|
||||
<DT><B>-d</B>
|
||||
|
||||
<DD>
|
||||
Daemonise. Detach service from console and run in the background.
|
||||
<DT><B>-t</B>
|
||||
|
||||
<DD>
|
||||
Be silenT. Do not log start/stop/accept error records.
|
||||
<DT><B>-u</B>
|
||||
|
||||
<DD>
|
||||
Never look for username authentication.
|
||||
<DT><B>-e</B>
|
||||
|
||||
<DD>
|
||||
External address. IP address of interface proxy should initiate connections
|
||||
from.
|
||||
By default system will deside which address to use in accordance
|
||||
with routing table.
|
||||
<DT><B>-i</B>
|
||||
|
||||
<DD>
|
||||
Internal address. IP address proxy accepts connections to.
|
||||
By default connection to any interface is accepted. It's usually unsafe.
|
||||
<DT><B>-h</B>
|
||||
|
||||
<DD>
|
||||
Default destination. It's used if targed address is not specified by user.
|
||||
<DT><B>-p</B>
|
||||
|
||||
<DD>
|
||||
Port. Port proxy listens for incoming connections. Default is 21.
|
||||
<DT><B>-l</B>
|
||||
|
||||
<DD>
|
||||
Log. By default logging is to stdout. If
|
||||
<I>logfile</I>
|
||||
|
||||
is specified logging is to file. Under Unix, if
|
||||
'<I>@</I>'
|
||||
|
||||
preceeds
|
||||
<I>logfile</I>,
|
||||
|
||||
syslog is used for logging.
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>CLIENTS</H2>
|
||||
|
||||
You can use any FTP client, regardless of FTP proxy support. For client with
|
||||
FTP proxy support configure
|
||||
<I>internal_ip</I>
|
||||
|
||||
and
|
||||
<I>port</I>
|
||||
|
||||
in FTP proxy parameters.
|
||||
For clients without FTP proxy support use
|
||||
<I>internal_ip</I>
|
||||
|
||||
and
|
||||
<I>port</I>
|
||||
|
||||
as FTP server. Address of real FTP server must be configured as a part of
|
||||
FTP username. Format for username is
|
||||
<I>username</I><B>@</B><I>server</I>,
|
||||
|
||||
where
|
||||
<I>server</I>
|
||||
|
||||
is address of FTP server and
|
||||
<I>username</I>
|
||||
|
||||
is user's login on this FTP server. Login itself may contain '@' sign.
|
||||
Only cleartext authentication is currently supported.
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
Report all bugs to
|
||||
<B><A HREF="mailto:3proxy@security.nnov.ru">3proxy@security.nnov.ru</A></B>
|
||||
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="../man8/3proxy.8.html">3proxy</A>(8), <A HREF="../man8/proxy.8.html">proxy</A>(8), <A HREF="../man8/pop3p.8.html">pop3p</A>(8), <A HREF="../man8/socks.8.html">socks</A>(8), <A HREF="../man8/tcppm.8.html">tcppm</A>(8), <A HREF="../man8/udppm.8.html">udppm</A>(8), <A HREF="../man8/syslogd.8.html">syslogd</A>(8),
|
||||
<BR>
|
||||
|
||||
<A HREF="http://3proxy.ru/">http://3proxy.ru/</A>
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
3proxy is designed by 3APA3A
|
||||
(<I><A HREF="mailto:3APA3A@security.nnov.ru">3APA3A@security.nnov.ru</A></I>),
|
||||
|
||||
Vladimir Dubrovin
|
||||
(<I><A HREF="mailto:vlad@sandy.ru">vlad@sandy.ru</A></I>)
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">CLIENTS</A><DD>
|
||||
<DT><A HREF="#lbAG">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAH">SEE ALSO</A><DD>
|
||||
<DT><A HREF="#lbAI">AUTHORS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
using the manual pages.<BR>
|
||||
Time: 21:23:56 GMT, April 07, 2014
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,155 +0,0 @@
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of icqpr</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>icqpr</H1>
|
||||
Section: Universal proxy server (8)<BR>Updated: July 2009<BR><A HREF="#index">Index</A>
|
||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<B>icqpr</B>
|
||||
|
||||
- ICQ (AOL OSCAR) proxy
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSIS</H2>
|
||||
|
||||
<B>icqpr </B>[<B>-d</B>]
|
||||
|
||||
<I></I>[<B>-l</B><I></I>[<B></B>[<I>@</I><B></B>]<I>logfile</I><B></B>]]
|
||||
|
||||
<I></I>[<B>-i</B><I>internal_ip</I>]
|
||||
|
||||
<I></I>[<B>-e</B><I>external_ip</I>]
|
||||
|
||||
<I>local_port remote_host remote_port</I>
|
||||
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<B>icqpr</B>
|
||||
|
||||
forwards ICQ connections from local to remote ICQ host. Most usual is
|
||||
<B>icqpr 5190 login.icq.com 5190</B>
|
||||
|
||||
Also, icqpr adds UIN / AOL screen name as a username. It makes it possible
|
||||
to control user's access to ICQ/AOL by UIN/screen name (use
|
||||
<B>auth useronly</B>
|
||||
|
||||
in 3proxy).
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>-I</B>
|
||||
|
||||
<DD>
|
||||
Inetd mode. Standalone service only.
|
||||
<DT><B>-d</B>
|
||||
|
||||
<DD>
|
||||
Daemonise. Detach service from console and run in the background.
|
||||
<DT><B>-t</B>
|
||||
|
||||
<DD>
|
||||
Be silenT. Do not log start/stop/accept error records.
|
||||
<DT><B>-e</B>
|
||||
|
||||
<DD>
|
||||
External address. IP address of interface proxy should initiate connections
|
||||
from.
|
||||
By default system will deside which address to use in accordance
|
||||
with routing table.
|
||||
<DT><B>-i</B>
|
||||
|
||||
<DD>
|
||||
Internal address. IP address proxy accepts connections to.
|
||||
By default connection to any interface is accepted. It's usually unsafe.
|
||||
<DT><B>-l</B>
|
||||
|
||||
<DD>
|
||||
Log. By default logging is to stdout. If
|
||||
<I>logfile</I>
|
||||
|
||||
is specified logging is to file. Under Unix, if
|
||||
'<I>@</I>'
|
||||
|
||||
preceeds
|
||||
<I>logfile</I>,
|
||||
|
||||
syslog is used for logging.
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>ARGUMENTS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><I>local_port</I>
|
||||
|
||||
<DD>
|
||||
- port icqpr accepts connection
|
||||
<DT><I>remote_host</I>
|
||||
|
||||
<DD>
|
||||
- IP address of the host connection is forwarded to
|
||||
<DT><I>remote_port</I>
|
||||
|
||||
<DD>
|
||||
- remote port connection is forwarded to
|
||||
</DL>
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>CLIENTS</H2>
|
||||
|
||||
You can use any ICQ/AOL client where server address configuration is supported
|
||||
or spoof login server name (e.g. login.icq.com) with IP address of proxy server
|
||||
via DNS record or hosts file. Transparent redirection is also possible. Use
|
||||
<I>internal_ip</I>
|
||||
|
||||
and
|
||||
<I>local_port</I>
|
||||
|
||||
as a destination in client application. Connection is forwarded to
|
||||
<I>remote_host</I>:<I>remote_port</I>
|
||||
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
Report all bugs to
|
||||
<B><A HREF="mailto:3proxy@security.nnov.ru">3proxy@security.nnov.ru</A></B>
|
||||
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="../man8/3proxy.8.html">3proxy</A>(8), <A HREF="../man8/proxy.8.html">proxy</A>(8), <A HREF="../man8/ftppr.8.html">ftppr</A>(8), <A HREF="../man8/socks.8.html">socks</A>(8), <A HREF="../man8/pop3p.8.html">pop3p</A>(8), <A HREF="../man8/udppm.8.html">udppm</A>(8), <A HREF="../man8/syslogd.8.html">syslogd</A>(8),
|
||||
<BR>
|
||||
|
||||
<A HREF="http://3proxy.ru/">http://3proxy.ru/</A>
|
||||
<A NAME="lbAJ"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
3proxy is designed by 3APA3A
|
||||
(<I><A HREF="mailto:3APA3A@security.nnov.ru">3APA3A@security.nnov.ru</A></I>),
|
||||
|
||||
Vladimir Dubrovin
|
||||
(<I><A HREF="mailto:vlad@sandy.ru">vlad@sandy.ru</A></I>)
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">ARGUMENTS</A><DD>
|
||||
<DT><A HREF="#lbAG">CLIENTS</A><DD>
|
||||
<DT><A HREF="#lbAH">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAI">SEE ALSO</A><DD>
|
||||
<DT><A HREF="#lbAJ">AUTHORS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
using the manual pages.<BR>
|
||||
Time: 21:23:56 GMT, April 07, 2014
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,154 +0,0 @@
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of pop3p</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>pop3p</H1>
|
||||
Section: Universal proxy server (8)<BR>Updated: July 2009<BR><A HREF="#index">Index</A>
|
||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<B>pop3p</B>
|
||||
|
||||
- POP3 proxy gateway service
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSIS</H2>
|
||||
|
||||
<B>pop3p </B>[<B>-d</B>]
|
||||
|
||||
<I></I>[<B>-l</B><I></I>[<B></B>[<I>@</I><B></B>]<I>logfile</I><B></B>]]
|
||||
|
||||
<I></I>[<B>-p</B><I>port</I>]
|
||||
|
||||
<I></I>[<B>-i</B><I>internal_ip</I>]
|
||||
|
||||
<I></I>[<B>-e</B><I>external_ip</I>]
|
||||
|
||||
<I></I>[<B>-h</B><I>default_ip[:port]</I>]
|
||||
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<B>pop3p</B>
|
||||
|
||||
is POP3 gateway service to allow internal users to access external POP3
|
||||
servers.
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>-I</B>
|
||||
|
||||
<DD>
|
||||
Inetd mode. Standalone service only.
|
||||
<DT><B>-d</B>
|
||||
|
||||
<DD>
|
||||
Daemonise. Detach service from console and run in the background.
|
||||
<DT><B>-t</B>
|
||||
|
||||
<DD>
|
||||
Be silenT. Do not log start/stop/accept error records.
|
||||
<DT><B>-u</B>
|
||||
|
||||
<DD>
|
||||
Never look for username authentication.
|
||||
<DT><B>-e</B>
|
||||
|
||||
<DD>
|
||||
External address. IP address of interface proxy should initiate connections
|
||||
from.
|
||||
By default system will deside which address to use in accordance
|
||||
with routing table.
|
||||
<DT><B>-i</B>
|
||||
|
||||
<DD>
|
||||
Internal address. IP address proxy accepts connections to.
|
||||
By default connection to any interface is accepted. It's usually unsafe.
|
||||
<DT><B>-p</B>
|
||||
|
||||
<DD>
|
||||
Port. Port proxy listens for incoming connections. Default is 110.
|
||||
<DT><B>-h</B>
|
||||
|
||||
<DD>
|
||||
Default destination. It's used if targed address is not specified by user.
|
||||
<DT><B>-l</B>
|
||||
|
||||
<DD>
|
||||
Log. By default logging is to stdout. If
|
||||
<I>logfile</I>
|
||||
|
||||
is specified logging is to file. Under Unix, if
|
||||
'<I>@</I>'
|
||||
|
||||
preceeds
|
||||
<I>logfile</I>,
|
||||
|
||||
syslog is used for logging.
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>CLIENTS</H2>
|
||||
|
||||
You can use any MUA (Mail User Agent) with POP3 support. Set client to use
|
||||
<I>internal_ip</I>
|
||||
|
||||
and
|
||||
<I>port</I>
|
||||
|
||||
as a POP3 server. Address of real POP3 server must be configured as a part of
|
||||
POP3 username. Format for username is
|
||||
<I>username</I><B>@</B><I>server</I>,
|
||||
|
||||
where
|
||||
<I>server</I>
|
||||
|
||||
is address of POP3 server and
|
||||
<I>username</I>
|
||||
|
||||
is user's login on this POP3 server. Login itself may contain '@' sign.
|
||||
Only cleartext authentication is supported, because challenge-response
|
||||
authentication (APOP, CRAM-MD5, etc) requires challenge from server before
|
||||
we know which server to connect.
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
Report all bugs to
|
||||
<B><A HREF="mailto:3proxy@security.nnov.ru">3proxy@security.nnov.ru</A></B>
|
||||
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="../man8/3proxy.8.html">3proxy</A>(8), <A HREF="../man8/ftppr.8.html">ftppr</A>(8), <A HREF="../man8/proxy.8.html">proxy</A>(8), <A HREF="../man8/socks.8.html">socks</A>(8), <A HREF="../man8/tcppm.8.html">tcppm</A>(8), <A HREF="../man8/udppm.8.html">udppm</A>(8), <A HREF="../man8/syslogd.8.html">syslogd</A>(8),
|
||||
<BR>
|
||||
|
||||
<A HREF="http://3proxy.ru/">http://3proxy.ru/</A>
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
3proxy is designed by 3APA3A
|
||||
(<I><A HREF="mailto:3APA3A@security.nnov.ru">3APA3A@security.nnov.ru</A></I>),
|
||||
|
||||
Vladimir Dubrovin
|
||||
(<I><A HREF="mailto:vlad@sandy.ru">vlad@sandy.ru</A></I>)
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">CLIENTS</A><DD>
|
||||
<DT><A HREF="#lbAG">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAH">SEE ALSO</A><DD>
|
||||
<DT><A HREF="#lbAI">AUTHORS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
using the manual pages.<BR>
|
||||
Time: 21:23:56 GMT, April 07, 2014
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,147 +0,0 @@
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of proxy</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>proxy</H1>
|
||||
Section: Universal proxy server (8)<BR>Updated: July 2009<BR><A HREF="#index">Index</A>
|
||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<B>proxy</B>
|
||||
|
||||
- HTTP proxy gateway service
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSIS</H2>
|
||||
|
||||
<B>proxy </B>[<B>-d</B>][<B>-a</B>]
|
||||
|
||||
<I></I>[<B>-l</B><I></I>[<B></B>[<I>@</I><B></B>]<I>logfile</I><B></B>]]
|
||||
|
||||
<I></I>[<B>-p</B><I>port</I>]
|
||||
|
||||
<I></I>[<B>-i</B><I>internal_ip</I>]
|
||||
|
||||
<I></I>[<B>-e</B><I>external_ip</I>]
|
||||
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<B>proxy</B>
|
||||
|
||||
is HTTP gateway service with HTTPS and FTP over HTTPS support.
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>-I</B>
|
||||
|
||||
<DD>
|
||||
Inetd mode. Standalone service only.
|
||||
<DT><B>-d</B>
|
||||
|
||||
<DD>
|
||||
Daemonise. Detach service from console and run in the background.
|
||||
<DT><B>-t</B>
|
||||
|
||||
<DD>
|
||||
Be silenT. Do not log start/stop/accept error records.
|
||||
<DT><B>-u</B>
|
||||
|
||||
<DD>
|
||||
Never ask for username authentication
|
||||
<DT><B>-e</B>
|
||||
|
||||
<DD>
|
||||
External address. IP address of interface proxy should initiate connections
|
||||
from.
|
||||
By default system will deside which address to use in accordance
|
||||
with routing table.
|
||||
<DT><B>-i</B>
|
||||
|
||||
<DD>
|
||||
Internal address. IP address proxy accepts connections to.
|
||||
By default connection to any interface is accepted. It's usually unsafe.
|
||||
<DT><B>-a</B>
|
||||
|
||||
<DD>
|
||||
Anonymous. Hide information about client.
|
||||
<DT><B>-a1</B>
|
||||
|
||||
<DD>
|
||||
Anonymous. Show fake information about client.
|
||||
<DT><B>-p</B>
|
||||
|
||||
<DD>
|
||||
Port. Port proxy listens for incoming connections. Default is 3128.
|
||||
<DT><B>-l</B>
|
||||
|
||||
<DD>
|
||||
Log. By default logging is to stdout. If
|
||||
<I>logfile</I>
|
||||
|
||||
is specified logging is to file. Under Unix, if
|
||||
'<I>@</I>'
|
||||
|
||||
preceeds
|
||||
<I>logfile</I>,
|
||||
|
||||
syslog is used for logging.
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>CLIENTS</H2>
|
||||
|
||||
You should use client with HTTP proxy support or configure router to redirect
|
||||
HTTP traffic to proxy (transparent proxy). Configure client to connect to
|
||||
<I>internal_ip</I>
|
||||
|
||||
and
|
||||
<I>port</I>.
|
||||
|
||||
HTTPS support allows to use almost any TCP based protocol. If you need to
|
||||
limit clients, use
|
||||
<B><A HREF="../man8/3proxy.8.html">3proxy</A></B>(8)
|
||||
|
||||
instead.
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
Report all bugs to
|
||||
<B><A HREF="mailto:3proxy@security.nnov.ru">3proxy@security.nnov.ru</A></B>
|
||||
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="../man8/3proxy.8.html">3proxy</A>(8), <A HREF="../man8/ftppr.8.html">ftppr</A>(8), <A HREF="../man8/socks.8.html">socks</A>(8), <A HREF="../man8/pop3p.8.html">pop3p</A>(8), <A HREF="../man8/tcppm.8.html">tcppm</A>(8), <A HREF="../man8/udppm.8.html">udppm</A>(8), <A HREF="../man8/syslogd.8.html">syslogd</A>(8),
|
||||
<BR>
|
||||
|
||||
<A HREF="http://3proxy.ru/">http://3proxy.ru/</A>
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
3proxy is designed by 3APA3A
|
||||
(<I><A HREF="mailto:3APA3A@security.nnov.ru">3APA3A@security.nnov.ru</A></I>),
|
||||
|
||||
Vladimir Dubrovin
|
||||
(<I><A HREF="mailto:vlad@sandy.ru">vlad@sandy.ru</A></I>)
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">CLIENTS</A><DD>
|
||||
<DT><A HREF="#lbAG">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAH">SEE ALSO</A><DD>
|
||||
<DT><A HREF="#lbAI">AUTHORS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
using the manual pages.<BR>
|
||||
Time: 21:23:56 GMT, April 07, 2014
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,155 +0,0 @@
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of smtpp</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>smtpp</H1>
|
||||
Section: Universal proxy server (8)<BR>Updated: July 2009<BR><A HREF="#index">Index</A>
|
||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<B>smtpp</B>
|
||||
|
||||
- SMTP proxy gateway service
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSIS</H2>
|
||||
|
||||
<B>smtpp </B>[<B>-d</B>]
|
||||
|
||||
<I></I>[<B>-l</B><I></I>[<B></B>[<I>@</I><B></B>]<I>logfile</I><B></B>]]
|
||||
|
||||
<I></I>[<B>-p</B><I>port</I>]
|
||||
|
||||
<I></I>[<B>-i</B><I>internal_ip</I>]
|
||||
|
||||
<I></I>[<B>-e</B><I>external_ip</I>]
|
||||
|
||||
<I></I>[<B>-h</B><I>default_ip[:port]</I>]
|
||||
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<B>smtpp</B>
|
||||
|
||||
is SMTP gateway service to allow internal users to access external SMTP
|
||||
servers.
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>-I</B>
|
||||
|
||||
<DD>
|
||||
Inetd mode. Standalone service only.
|
||||
<DT><B>-d</B>
|
||||
|
||||
<DD>
|
||||
Daemonise. Detach service from console and run in the background.
|
||||
<DT><B>-t</B>
|
||||
|
||||
<DD>
|
||||
Be silenT. Do not log start/stop/accept error records.
|
||||
<DT><B>-u</B>
|
||||
|
||||
<DD>
|
||||
Never look for username authentication.
|
||||
<DT><B>-e</B>
|
||||
|
||||
<DD>
|
||||
External address. IP address of interface proxy should initiate connections
|
||||
from.
|
||||
By default system will deside which address to use in accordance
|
||||
with routing table.
|
||||
<DT><B>-i</B>
|
||||
|
||||
<DD>
|
||||
Internal address. IP address proxy accepts connections to.
|
||||
By default connection to any interface is accepted. It's usually unsafe.
|
||||
<DT><B>-p</B>
|
||||
|
||||
<DD>
|
||||
Port. Port proxy listens for incoming connections. Default is 25.
|
||||
<DT><B>-h</B>
|
||||
|
||||
<DD>
|
||||
Default destination. It's used if targed address is not specified by user.
|
||||
<DT><B>-l</B>
|
||||
|
||||
<DD>
|
||||
Log. By default logging is to stdout. If
|
||||
<I>logfile</I>
|
||||
|
||||
is specified logging is to file. Under Unix, if
|
||||
'<I>@</I>'
|
||||
|
||||
preceeds
|
||||
<I>logfile</I>,
|
||||
|
||||
syslog is used for logging.
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>CLIENTS</H2>
|
||||
|
||||
You can use any MUA (Mail User Agent) with SMTP authentication support.
|
||||
Set client to use
|
||||
<I>internal_ip</I>
|
||||
|
||||
and
|
||||
<I>port</I>
|
||||
|
||||
as a SMTP server. Address of real SMTP server must be configured as a part of
|
||||
SMTP username. Format for username is
|
||||
<I>username</I><B>@</B><I>server</I>,
|
||||
|
||||
where
|
||||
<I>server</I>
|
||||
|
||||
is address of SMTP server and
|
||||
<I>username</I>
|
||||
|
||||
is user's login on this SMTP server. Login itself may contain '@' sign.
|
||||
Only cleartext authentication is supported, because challenge-response
|
||||
authentication (CRAM-MD5, SPA, etc) requires challenge from server before
|
||||
we know which server to connect.
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
Report all bugs to
|
||||
<B><A HREF="mailto:3proxy@security.nnov.ru">3proxy@security.nnov.ru</A></B>
|
||||
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="../man8/3proxy.8.html">3proxy</A>(8), <A HREF="../man8/ftppr.8.html">ftppr</A>(8), <A HREF="../man8/proxy.8.html">proxy</A>(8), <A HREF="../man8/socks.8.html">socks</A>(8), <A HREF="../man8/tcppm.8.html">tcppm</A>(8), <A HREF="../man8/udppm.8.html">udppm</A>(8), <A HREF="../man8/syslogd.8.html">syslogd</A>(8),
|
||||
<BR>
|
||||
|
||||
<A HREF="http://3proxy.ru/">http://3proxy.ru/</A>
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
3proxy is designed by 3APA3A
|
||||
(<I><A HREF="mailto:3APA3A@security.nnov.ru">3APA3A@security.nnov.ru</A></I>),
|
||||
|
||||
Vladimir Dubrovin
|
||||
(<I><A HREF="mailto:vlad@sandy.ru">vlad@sandy.ru</A></I>)
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">CLIENTS</A><DD>
|
||||
<DT><A HREF="#lbAG">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAH">SEE ALSO</A><DD>
|
||||
<DT><A HREF="#lbAI">AUTHORS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
using the manual pages.<BR>
|
||||
Time: 21:23:56 GMT, April 07, 2014
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,148 +0,0 @@
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of socks</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>socks</H1>
|
||||
Section: Universal proxy server (8)<BR>Updated: July 2009<BR><A HREF="#index">Index</A>
|
||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<B>socks</B>
|
||||
|
||||
- SOCKS 4/4.5/5 gateway service
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSIS</H2>
|
||||
|
||||
<B>socks </B>[<B>-d</B>]
|
||||
|
||||
<I></I>[<B>-l</B><I></I>[<B></B>[<I>@</I><B></B>]<I>logfile</I><B></B>]]
|
||||
|
||||
<I></I>[<B>-p</B><I>port</I>]
|
||||
|
||||
<I></I>[<B>-i</B><I>internal_ip</I>]
|
||||
|
||||
<I></I>[<B>-e</B><I>external_ip</I>]
|
||||
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<B>socks</B>
|
||||
|
||||
is SOCKS server. It supports SOCKSv4, SOCKSv4.5 (extension to v4 for
|
||||
server side name resolution) and SOCKSv5. SOCKSv5 specification allows both
|
||||
outgoing and reverse TCP connections and UDP portmapping.
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>-I</B>
|
||||
|
||||
<DD>
|
||||
Inetd mode. Standalone service only.
|
||||
<DT><B>-d</B>
|
||||
|
||||
<DD>
|
||||
Daemonise. Detach service from console and run in the background.
|
||||
<DT><B>-t</B>
|
||||
|
||||
<DD>
|
||||
Be silenT. Do not log start/stop/accept error records.
|
||||
<DT><B>-u</B>
|
||||
|
||||
<DD>
|
||||
Never ask for username authentication
|
||||
<DT><B>-e</B>
|
||||
|
||||
<DD>
|
||||
External address. IP address of interface proxy should initiate connections
|
||||
from. External IP must be specified if you need incoming connections.
|
||||
By default system will deside which address to use in accordance
|
||||
with routing table.
|
||||
<DT><B>-i</B>
|
||||
|
||||
<DD>
|
||||
Internal address. IP address proxy accepts connections to.
|
||||
By default connection to any interface is accepted. It's usually unsafe.
|
||||
<DT><B>-p</B>
|
||||
|
||||
<DD>
|
||||
Port. Port proxy listens for incoming connections. Default is 1080.
|
||||
<DT><B>-l</B>
|
||||
|
||||
<DD>
|
||||
Log. By default logging is to stdout. If
|
||||
<I>logfile</I>
|
||||
|
||||
is specified logging is to file. Under Unix, if
|
||||
'<I>@</I>'
|
||||
|
||||
preceeds
|
||||
<I>logfile</I>,
|
||||
|
||||
syslog is used for logging.
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>CLIENTS</H2>
|
||||
|
||||
You should use client with SOCKS support or use some socksification support
|
||||
(for example
|
||||
<I>SocksCAP</I>
|
||||
|
||||
or
|
||||
<I>FreeCAP</I>).
|
||||
|
||||
Configure client to use
|
||||
<I>internal_ip</I>
|
||||
|
||||
and
|
||||
<I>port</I>.
|
||||
|
||||
SOCKS allows to use almost any application protocol without limitation. This
|
||||
implementation also allows to open priviledged port on server (if socks has
|
||||
sufficient privileges). If you need to control access use
|
||||
<B><A HREF="../man8/3proxy.8.html">3proxy</A></B>(8)
|
||||
|
||||
instead.
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
Report all bugs to
|
||||
<B><A HREF="mailto:3proxy@security.nnov.ru">3proxy@security.nnov.ru</A></B>
|
||||
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="../man8/3proxy.8.html">3proxy</A>(8), <A HREF="../man8/proxy.8.html">proxy</A>(8), <A HREF="../man8/ftppr.8.html">ftppr</A>(8), <A HREF="../man8/pop3p.8.html">pop3p</A>(8), <A HREF="../man8/tcppm.8.html">tcppm</A>(8), <A HREF="../man8/udppm.8.html">udppm</A>(8), <A HREF="../man8/syslogd.8.html">syslogd</A>(8),
|
||||
<BR>
|
||||
|
||||
<A HREF="http://3proxy.ru/">http://3proxy.ru/</A>
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
3proxy is designed by 3APA3A
|
||||
(<I><A HREF="mailto:3APA3A@security.nnov.ru">3APA3A@security.nnov.ru</A></I>),
|
||||
|
||||
Vladimir Dubrovin
|
||||
(<I><A HREF="mailto:vlad@sandy.ru">vlad@sandy.ru</A></I>)
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">CLIENTS</A><DD>
|
||||
<DT><A HREF="#lbAG">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAH">SEE ALSO</A><DD>
|
||||
<DT><A HREF="#lbAI">AUTHORS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
using the manual pages.<BR>
|
||||
Time: 21:23:56 GMT, April 07, 2014
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,146 +0,0 @@
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of tcppm</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>tcppm</H1>
|
||||
Section: Universal proxy server (8)<BR>Updated: July 2009<BR><A HREF="#index">Index</A>
|
||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<B>tcppm</B>
|
||||
|
||||
- TCP port mapper
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSIS</H2>
|
||||
|
||||
<B>tcppm </B>[<B>-d</B>]
|
||||
|
||||
<I></I>[<B>-l</B><I></I>[<B></B>[<I>@</I><B></B>]<I>logfile</I><B></B>]]
|
||||
|
||||
<I></I>[<B>-i</B><I>internal_ip</I>]
|
||||
|
||||
<I></I>[<B>-e</B><I>external_ip</I>]
|
||||
|
||||
<I>local_port remote_host remote_port</I>
|
||||
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<B>tcppm</B>
|
||||
|
||||
forwards connections from local to remote TCP port
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>-I</B>
|
||||
|
||||
<DD>
|
||||
Inetd mode. Standalone service only.
|
||||
<DT><B>-d</B>
|
||||
|
||||
<DD>
|
||||
Daemonise. Detach service from console and run in the background.
|
||||
<DT><B>-t</B>
|
||||
|
||||
<DD>
|
||||
Be silenT. Do not log start/stop/accept error records.
|
||||
<DT><B>-e</B>
|
||||
|
||||
<DD>
|
||||
External address. IP address of interface proxy should initiate connections
|
||||
from.
|
||||
By default system will deside which address to use in accordance
|
||||
with routing table.
|
||||
<DT><B>-i</B>
|
||||
|
||||
<DD>
|
||||
Internal address. IP address proxy accepts connections to.
|
||||
By default connection to any interface is accepted. It's usually unsafe.
|
||||
<DT><B>-l</B>
|
||||
|
||||
<DD>
|
||||
Log. By default logging is to stdout. If
|
||||
<I>logfile</I>
|
||||
|
||||
is specified logging is to file. Under Unix, if
|
||||
'<I>@</I>'
|
||||
|
||||
preceeds
|
||||
<I>logfile</I>,
|
||||
|
||||
syslog is used for logging.
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>ARGUMENTS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><I>local_port</I>
|
||||
|
||||
<DD>
|
||||
- port tcppm accepts connection
|
||||
<DT><I>remote_host</I>
|
||||
|
||||
<DD>
|
||||
- IP address of the host connection is forwarded to
|
||||
<DT><I>remote_port</I>
|
||||
|
||||
<DD>
|
||||
- remote port connection is forwarded to
|
||||
</DL>
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>CLIENTS</H2>
|
||||
|
||||
Any TCP based application can be used as a client. Use
|
||||
<I>internal_ip</I>
|
||||
|
||||
and
|
||||
<I>local_port</I>
|
||||
|
||||
as a destination in client application. Connection is forwarded to
|
||||
<I>remote_host</I>:<I>remote_port</I>
|
||||
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
Report all bugs to
|
||||
<B><A HREF="mailto:3proxy@security.nnov.ru">3proxy@security.nnov.ru</A></B>
|
||||
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="../man8/3proxy.8.html">3proxy</A>(8), <A HREF="../man8/proxy.8.html">proxy</A>(8), <A HREF="../man8/ftppr.8.html">ftppr</A>(8), <A HREF="../man8/socks.8.html">socks</A>(8), <A HREF="../man8/pop3p.8.html">pop3p</A>(8), <A HREF="../man8/udppm.8.html">udppm</A>(8), <A HREF="../man8/syslogd.8.html">syslogd</A>(8),
|
||||
<BR>
|
||||
|
||||
<A HREF="http://3proxy.ru/">http://3proxy.ru/</A>
|
||||
<A NAME="lbAJ"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
3proxy is designed by 3APA3A
|
||||
(<I><A HREF="mailto:3APA3A@security.nnov.ru">3APA3A@security.nnov.ru</A></I>),
|
||||
|
||||
Vladimir Dubrovin
|
||||
(<I><A HREF="mailto:vlad@sandy.ru">vlad@sandy.ru</A></I>)
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">ARGUMENTS</A><DD>
|
||||
<DT><A HREF="#lbAG">CLIENTS</A><DD>
|
||||
<DT><A HREF="#lbAH">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAI">SEE ALSO</A><DD>
|
||||
<DT><A HREF="#lbAJ">AUTHORS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
using the manual pages.<BR>
|
||||
Time: 21:23:57 GMT, April 07, 2014
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,153 +0,0 @@
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of udppm</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>udppm</H1>
|
||||
Section: Universal proxy server (8)<BR>Updated: July 2009<BR><A HREF="#index">Index</A>
|
||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<B>udppm</B>
|
||||
|
||||
- UDP port mapper
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSIS</H2>
|
||||
|
||||
<B>pop3p </B>[<B>-ds</B>]
|
||||
|
||||
<I></I>[<B>-l</B><I></I>[<B></B>[<I>@</I><B></B>]<I>logfile</I><B></B>]]
|
||||
|
||||
<I></I>[<B>-i</B><I>internal_ip</I>]
|
||||
|
||||
<I></I>[<B>-e</B><I>external_ip</I>]
|
||||
|
||||
<I>local_port remote_host remote_port</I>
|
||||
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<B>udppm</B>
|
||||
|
||||
forwards datagrams from local to remote UDP port
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><B>-I</B>
|
||||
|
||||
<DD>
|
||||
Inetd mode. Standalone service only.
|
||||
<DT><B>-d</B>
|
||||
|
||||
<DD>
|
||||
Daemonise. Detach service from console and run in the background.
|
||||
<DT><B>-t</B>
|
||||
|
||||
<DD>
|
||||
Be silenT. Do not log start/stop/accept error records.
|
||||
<DT><B>-e</B>
|
||||
|
||||
<DD>
|
||||
External address. IP address of interface proxy should initiate datagrams
|
||||
from.
|
||||
By default system will deside which address to use in accordance
|
||||
with routing table.
|
||||
<DT><B>-i</B>
|
||||
|
||||
<DD>
|
||||
Internal address. IP address proxy accepts datagrams to.
|
||||
By default connection to any interface is accepted. It's usually unsafe.
|
||||
<DT><B>-l</B>
|
||||
|
||||
<DD>
|
||||
Log. By default logging is to stdout. If
|
||||
<I>logfile</I>
|
||||
|
||||
is specified logging is to file. Under Unix, if
|
||||
'<I>@</I>'
|
||||
|
||||
preceeds
|
||||
<I>logfile</I>,
|
||||
|
||||
syslog is used for logging.
|
||||
<DT><B>-s</B>
|
||||
|
||||
<DD>
|
||||
Single packet. By default only one client can use udppm service, but
|
||||
if -s is specified only one packet will be forwarded between client and server.
|
||||
It allows to share service between multiple clients for single packet services
|
||||
(for example name lookups).
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>ARGUMENTS</H2>
|
||||
|
||||
<DL COMPACT>
|
||||
<DT><I>local_port</I>
|
||||
|
||||
<DD>
|
||||
- port udppm accepts datagrams
|
||||
<DT><I>remote_host</I>
|
||||
|
||||
<DD>
|
||||
- IP address of the host datagrams are forwarded to
|
||||
<DT><I>remote_port</I>
|
||||
|
||||
<DD>
|
||||
- remote port datagrams are forwarded to
|
||||
</DL>
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>CLIENTS</H2>
|
||||
|
||||
Any UDP based application can be used as a client. Use
|
||||
<I>internal_ip</I>
|
||||
|
||||
and
|
||||
<I>local_port</I>
|
||||
|
||||
as a destination in client application. All datagrams are forwarded to
|
||||
<I>remote_host</I>:<I>remote_port</I>
|
||||
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
Report all bugs to
|
||||
<B><A HREF="mailto:3proxy@security.nnov.ru">3proxy@security.nnov.ru</A></B>
|
||||
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="../man8/3proxy.8.html">3proxy</A>(8), <A HREF="../man8/proxy.8.html">proxy</A>(8), <A HREF="../man8/ftppr.8.html">ftppr</A>(8), <A HREF="../man8/socks.8.html">socks</A>(8), <A HREF="../man8/pop3p.8.html">pop3p</A>(8), <A HREF="../man8/udppm.8.html">udppm</A>(8), <A HREF="../man8/syslogd.8.html">syslogd</A>(8),
|
||||
<BR>
|
||||
|
||||
<A HREF="http://3proxy.ru/">http://3proxy.ru/</A>
|
||||
<A NAME="lbAJ"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
3proxy is designed by 3APA3A
|
||||
(<I><A HREF="mailto:3APA3A@security.nnov.ru">3APA3A@security.nnov.ru</A></I>),
|
||||
|
||||
Vladimir Dubrovin
|
||||
(<I><A HREF="mailto:vlad@sandy.ru">vlad@sandy.ru</A></I>)
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">ARGUMENTS</A><DD>
|
||||
<DT><A HREF="#lbAG">CLIENTS</A><DD>
|
||||
<DT><A HREF="#lbAH">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAI">SEE ALSO</A><DD>
|
||||
<DT><A HREF="#lbAJ">AUTHORS</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
using the manual pages.<BR>
|
||||
Time: 21:23:57 GMT, April 07, 2014
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,7 +0,0 @@
|
||||
D/WindowsAuthentication////
|
||||
D/TrafficPlugin////
|
||||
D/PCREPlugin////
|
||||
D/FilePlugin////
|
||||
D/TransparentPlugin////
|
||||
D/utf8tocp1251////
|
||||
D/SSLPlugin////
|
@ -1 +0,0 @@
|
||||
3proxy-0.5a/src/plugins
|
@ -1 +0,0 @@
|
||||
/cygdrive/m/MEDIA/H/CVS
|
@ -1,4 +0,0 @@
|
||||
/Makefile.inc/1.1/Sun Sep 20 17:13:29 2009//
|
||||
/FilePlugin.h/1.4/Fri Oct 9 11:36:00 2009//
|
||||
/FilePlugin.c/1.8/Wed Apr 11 23:01:22 2012//
|
||||
D
|
@ -1 +0,0 @@
|
||||
3proxy-0.5a/src/plugins/FilePlugin
|
@ -1 +0,0 @@
|
||||
/cygdrive/m/MEDIA/H/CVS
|
@ -1,2 +0,0 @@
|
||||
/pcre_plugin.c/1.11/Wed Apr 25 18:17:22 2012//
|
||||
D
|
@ -1 +0,0 @@
|
||||
3proxy-0.5a/src/plugins/PCREPlugin
|
@ -1 +0,0 @@
|
||||
/cygdrive/m/MEDIA/H/CVS
|
@ -1 +0,0 @@
|
||||
D
|
@ -1 +0,0 @@
|
||||
3proxy-0.5a/src/plugins/SSLPlugin
|
@ -1 +0,0 @@
|
||||
/cygdrive/m/MEDIA/H/CVS
|
@ -1,2 +0,0 @@
|
||||
/TrafficPlugin.c/1.4/Mon Mar 19 10:24:40 2007//
|
||||
D
|
@ -1 +0,0 @@
|
||||
3proxy-0.5a/src/plugins/TrafficPlugin
|
@ -1 +0,0 @@
|
||||
/cygdrive/m/MEDIA/H/CVS
|
@ -1,2 +0,0 @@
|
||||
/TrafficPlugin.c/1.11/Fri Aug 14 10:20:01 2009//
|
||||
D
|
@ -1 +0,0 @@
|
||||
3proxy-0.5a/src/plugins/TrafficPlugin
|
@ -1 +0,0 @@
|
||||
/cygdrive/m/MEDIA/H/CVS
|
@ -1 +0,0 @@
|
||||
D
|
@ -1 +0,0 @@
|
||||
3proxy-0.5a/src/plugins/TransparentPlugin
|
@ -1 +0,0 @@
|
||||
/cygdrive/m/MEDIA/H/CVS
|
@ -1,4 +0,0 @@
|
||||
/Makefile/1.3/Tue Jan 23 15:46:31 2007//
|
||||
/Makefile.inc/1.5/Fri Apr 6 14:12:06 2007//
|
||||
/WindowsAuthentication.c/1.12/Tue Apr 12 13:05:58 2011//
|
||||
D
|
@ -1 +0,0 @@
|
||||
3proxy-0.5a/src/plugins/WindowsAuthentication
|
@ -1 +0,0 @@
|
||||
/cygdrive/m/MEDIA/H/CVS
|
@ -1 +0,0 @@
|
||||
D
|
@ -1 +0,0 @@
|
||||
3proxy-0.5a/src/plugins/utf8tocp1251
|
@ -1 +0,0 @@
|
||||
/cygdrive/m/MEDIA/H/CVS
|
Loading…
Reference in New Issue
Block a user