Changelog 64 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220
  1. 10.04.2014
  2. ! switching to 64-bit integers where possible.
  3. proxy should now support downloading for files > 4GB.
  4. 08.04.2014
  5. Releasing as 0.7
  6. Significant changes since 0.6.1:
  7. !! auth iponly by default
  8. ! maxconn is 500 by default
  9. ! Improved HTTP/1.1 compatibility
  10. ! Functionality bugfixes
  11. + Few new plugins
  12. 11.07.2012
  13. ! fixed: counters over 4GB in webadmin
  14. 26.06.2012
  15. ! OpenSSL thread support functions added to SSL plugin
  16. 10.05.2012
  17. ! SSL plugin works. Commands to enable/disable SSL spoofing will be added later.
  18. 25.04.2012
  19. ! pcre_rewrite slash sequence logic corrected
  20. 16.04.2012
  21. + Added: SSLPlugin for SSL decryption with certificates spoofing
  22. 12.04.2012
  23. + Added: new filter callback function type (pre data filter) for things like SSL/TLS, gzip, etc.
  24. WARNING: all plugins with filter functions need to be reviewed for compatibility
  25. 06.02.2012
  26. + Added: transparent redirection plugin for linux. Automatically detects redirection
  27. address if traffic is redirected via iptables
  28. 15.08.2011
  29. ! Fixed: 100% CPU because of usleep with large value on NetBSD
  30. 11.06.2011
  31. + Support for extusername/extpassword added to smtpp
  32. 04.06.2011
  33. ! Fixed: web admin access
  34. ! Fixed: wrong error code in logfile in some rare cases
  35. ! Migrated to VC 9.0 compiler
  36. 14.04.2011
  37. ! Authentication: do not request username/password in mixed authentication
  38. if all modules deny access.
  39. 12.04.2011
  40. ! Minor code cleanup
  41. 17.12.2010
  42. - Debugging output to stdout removed
  43. 09.12.2010
  44. ! Code cleanup for sockets mapping and chunked encoding,
  45. ! Content-Length up to 4GB
  46. 25.11.2010
  47. + System locale handling added for mixed case username in WindowAuthentication
  48. 13.11.2010
  49. + Plugin utf8tocp1251 added to automatically detect UTF-8 (used by Chrome and
  50. Opera in username/password.
  51. usage
  52. plugin "utf8tocp1251" utf8tocp1251
  53. auth utf8tocp1251 strong
  54. or
  55. auth utf8tocp1251 cache windows
  56. 11.11.2010
  57. ! encoding paramter added to WWW-Authenticate and Proxy-Authenticate headers in
  58. .3ps files according to
  59. http://tools.ietf.org/id/draft-reschke-basicauth-enc-01.txt
  60. 12.08.2010
  61. ! Removed getservbyport() from webadmin to avoid potential race condition
  62. 09.08.2010
  63. ! Default .3ps files corrected
  64. 26.06.2010
  65. ! Fixed: keep-alive connections detection for HTTP/1.1
  66. 10.12.2009
  67. ! Fixed: external address may be incorrectly set if few requests are
  68. received in single connection.
  69. 02.12.2009
  70. ! zero sockaddr before bind for some FreeBSD versions compatibity
  71. 26.10.2009
  72. ! Some changes for MD4/MD5 libraries 64-bit compatibility
  73. 01.10.2009
  74. ! Fixed: Content-Length is sent twice to server if there are content-handling
  75. plugins.
  76. 17.09.2009
  77. ! Makefile.Linux: add3proxyuser.sh moved to INSTALL_CFG_OBJS
  78. (thanks to Martin Wanicki)
  79. + Functionality added to intercept all socket-related calls for plugins
  80. 03.09.2009
  81. ! Fixed: client connection was not closed on removed Content-Length (may
  82. cause connection hang for timeout at the end of large file transfer
  83. if filtering plugins are used).
  84. 24.08.2009
  85. + Added transparent redirection to ICQ and MSN proxy
  86. + Added (untested) Last.fm ripper plugin - initial version, code needs to be
  87. cleaned to work under *nix. Thanks to Denis Stanishevskiy.
  88. 14.08.2009
  89. + WinCE (Windows Mobile) support added
  90. 27.07.2009
  91. ! Fixed: use authnserver for name match check if configured
  92. 22.07.2009
  93. + authnserver command added (nserver to use only with auth dnsname)
  94. 13.07.2009
  95. + man pages for smtpp and icqpr added
  96. ! traffic correction plugin logics fixed
  97. 10.07.2009
  98. + 3proxy configuration parser: support added for empty strings ("").
  99. 09.07.2009
  100. + dnsname authentication added (auth dnsname) - puts validated reverse DNS
  101. record (PTR) instead of username
  102. + PCREPlugin: Added: \r, \n support from pcre_rewrite rewrite string. Use \0
  103. for empty string
  104. + PCREPlugin: Added: * may be used instead of regex (no regex is created
  105. and checked in this case)
  106. 24.06.2009
  107. ! random redirections are really fixed (incomplete fix on 08.04.2009)
  108. ! icqpr "Need recync" problem fixed
  109. ! disable NTLM by default (because of Windows Vista) until NTLMv2 implemented
  110. ! set auth iponly to be default
  111. 08.04.2009
  112. ! Fixed: distribution between parent proxies was not even because of
  113. non-linear probability
  114. 18.03.2009
  115. ! Marking as 0.7-devel
  116. 06.03.2009
  117. ! Fixed: filters were applied in reverse order
  118. 25.02.2009
  119. ! Fixed: beginning of HTTP data may be not passed to filter
  120. 22.02.2009
  121. ! handle Content-Length as unsigned long to allow files > 2GB.
  122. 10.02.2009
  123. ! Ldapauth plugin corrected according to changes on 02.02.2009
  124. 02.02.2009
  125. + countout / nocountout commands added
  126. ! Added workaround for Mac OS X / iPhone OS poll() (mis)behaviour.
  127. 30.01.2009
  128. ! Flush buffer in case of POLLxxx - probably required for Mac OS X / iPhone OS
  129. 24.01.2009
  130. ! Changed WindowsAuthentication to convert username to lowercase
  131. 10.12.2008
  132. ! Fixed: login may hang in ftppr in case of large server banner
  133. 30.10.2008
  134. ! WindowsAuthentication plugin may sometimes fail with 100122 error
  135. on startup because of uninitialized variable.
  136. 30.09.2008
  137. ! -lXXX moved to $LIBS in Makefiles for linkers compatibility
  138. + 3proxy for Dummies v.1.2 by Kurmaeff Halit added (in Russian)
  139. 26.08.2008
  140. ! Fixed: end of chunked-encoded page may be incorrectly detected
  141. 24.07.2008
  142. ! Fixed: buffering problem on multiple chunks
  143. 21.07.2008
  144. ! Previous fix was incomplete
  145. 13.07.2008
  146. Thanks to Hostile Fork:
  147. ! Fixed directory listing building for some rare FTP servers (e.g. HP)
  148. ! Fixed (probably) chunked encoding should now work. REQUIRES TESTING.
  149. please report, if you have problems with chunked.
  150. 11.05.2008
  151. + minor plugin interface additions
  152. 03.05.2008
  153. + pcre_options implemented
  154. 24.04.2008
  155. ! Fixed: bandlimsout may not work if both bandlimsin and bandlimsout
  156. are configured.
  157. 01.04.2008
  158. ! Fixed: chunked was actually converted to non-chunked
  159. 25.03.2008
  160. + HTTP chunked support (hopefully) added, not tested yet
  161. 13.02.2008
  162. ! Do not shutdown listening socket
  163. ! FTPPR was broken on 10.02 fix
  164. ! ':' may be encoded in ftp:// URI's in proxy
  165. 12.02.2008
  166. ! LOGIN and PLAIN authentication were swapped in smtpp.
  167. 10.02.2008
  168. ! FTPPR: potential race condition on socket close fixed
  169. 07.02.2008
  170. ! MSN: message channels were not captured
  171. 05.02.2008
  172. ! Use CDATA for XML data in webadmin module
  173. 03.02.2008
  174. + MSN / Live messenger proxy (msnpr) addded
  175. 02.02.2008
  176. ! Fixed: counters may be flushed on configureation reload
  177. 01.02.2008
  178. ! Work with counters with more safe way on configuration reload
  179. 28.01.2008
  180. ! Do not compile empty PCRE
  181. 17.01.2008
  182. + APPE support added to ftppr
  183. ! Fixed problem with counters dumping on reload
  184. 16.01.2008
  185. + reqip/reqport added to XML data export
  186. 15.01.2008
  187. ! cache auth: set default cache type to user/password with 600 sec timeout
  188. 14.01.2008
  189. ! Fixed EAGAIN handling in sockmap
  190. ! Fixed: plugins: some data may be sent to the filter functions more than once
  191. on incomplete send.
  192. ! int * offset_p changed to int offset in plugins interface
  193. 13.01.2008
  194. ! icqpr: fixed new services request hijacking
  195. 12.01.2008
  196. + icqpr: added support for ICQ 6.0 greeting
  197. + icqpr: added support for insecure authentication
  198. + icqpr: added support for server migration
  199. 11.01.2008
  200. + Support for new service requests hijacking added to icqpr
  201. ! Fixed: icqpr: sequence number can be > 0x8000 in current protocol verion
  202. 10.01.2008
  203. ! Fixed few rare cases where small amount of data may pass in/out statistics
  204. (e.g parent proxy request/response).
  205. 09.01.2008
  206. + Initial version of icqpr (ICQ proxy). Use it as portmapper to ICQ server:
  207. You can also control access by UIN (use 'auth useronly'):
  208. auth useronly
  209. allow 1369139,1234567
  210. icqpr 5190 login.icq.com 5190
  211. ! Corrected seconds fractions calculation in poll() emulation code
  212. (probably did not affected any functionality)
  213. ! PCRE library updated to 7.4
  214. 07.01.2008
  215. !! Error code is now 5-digit
  216. 27.12.2007
  217. + StringsPlugin now supports strings substitution for 'admin' service (Kirill Lopuchov)
  218. + PamAuth plugin added (Kirill Lopuchov)
  219. + LdapPlugin added (Kirill Lopuchov)
  220. 19.12.2007
  221. Copyright text fixed in source files
  222. 18.12.2007
  223. + Export added for weadmin strings to use/replace in plugins
  224. 17.12.2007
  225. + Proxy-support: Session-Based-Authentication added for compatibility
  226. with NTLM/Negotiate authentication in IE7.
  227. 03.12.2007
  228. ! StringPlugin fixed
  229. 23.11.2007
  230. + Developer's documentation added
  231. 19.11.2007
  232. ! StringPlugin fixes (by Kirill Lopuchov)
  233. 09.11.2007
  234. ! Fixed: SOCKS5 authentication was broken some time ago
  235. 28.10.2007
  236. ! Fixed: do flush() if logged to file given with -l
  237. 25.10.2007
  238. ! Improper extparam structure initialization fixed (caused invalid behavior
  239. smtpp/pop3p/ftppr if no 'delimchar' configured after 11.10.2007)
  240. 19.10.2007
  241. ! StringsPlugin cleanup
  242. 11.10.2007
  243. + delimchar command added
  244. 10.10.2007
  245. ! Fixed: filters are lost on configuration reload
  246. + Added chkconfig support to rc.d script
  247. 09.10.2007
  248. ! Fixed double addition of authentication function on WindowsAuthentication
  249. plugin
  250. 25.09.2007
  251. ! Outgoing AUTH LOGIN fixed for smtpp
  252. ! Fixed multiline banners in smtpp
  253. + smtpp: default server (-h) may be used without authentication
  254. 11.09.2007
  255. ! Documentation corrections, thanx to Vladimir Fesko
  256. 30.08.2007
  257. ! Fixed PCRE filter behaviour on configuration reload
  258. 29.08.2007
  259. ! Support added for in-line auth plain SMTP authentication. Default parent
  260. authentication is changed to LOGIN.
  261. 25.08.2007
  262. ! Fixed -h feature (double memory free after second connect)
  263. + smtpp (SMTP proxy added). Supports both PLAIN and LOGIN for both client
  264. and server, supports default SMTP server.
  265. 23.08.2007
  266. + %e format specificator added for exaternal IP logging.
  267. 22.08.2007
  268. ! dighost corrected to do not change file, if no replay from the server
  269. received.
  270. 20.08.2007
  271. + authcache password added
  272. ! authcache user and user,ip corrected and crash fixed
  273. 17.08.2007
  274. + Documentation added for authentication cache
  275. 16.08.2007
  276. + Authentication cache created! New command:
  277. authcache authtype time
  278. e.g.
  279. authcache ip 600
  280. and new authentication type: cache, e.g.
  281. auth iponly cache strong
  282. Doesn't work with NTLM, Requires proxy -n!
  283. 07.08.2007
  284. ! define _MAX__TIME64_T, because Microsoft only mentions it in configuration
  285. and never actually defines it. Prevents crash on malformed/older counter
  286. file.
  287. 03.08.2007
  288. + 'nolog' command added to extend allow/deny rules (prevent logging
  289. for requests mathing allow/deny rules). nolog only affects last allow
  290. or deny command.
  291. + 'weight' command added to extend allow/deny rules. E.g. 'weight 100'.
  292. weight only affects last allow/deny rule.
  293. 31.07.2007
  294. ! Error code changed to 100 on failed SOCKSv5 name resolution
  295. + FAQ and documentation updates
  296. + New command 'logdump' added, to create intermediate log records then given
  297. amount of data is archieved through connection
  298. + New command 'filtermaxsize' to prevent filtering if expected Content-Length
  299. is greater than given value.
  300. 21.07.2007
  301. ! rm changed to del in Windows makefiles
  302. 07.07.2007
  303. + HTTP proxy code fixed to pre-buffer traffic and fix Content-Length in case of
  304. short files. For longer files Content-Length is not sent to client. It's safe
  305. now to change HTTP content within plugin.
  306. Result: pcre_rewrite works perfectly.
  307. 05.07.2007
  308. + Documentation improved.
  309. 28.06.2007
  310. + FTP server authentication fixed
  311. 26.06.2007
  312. + Request authentication for FTP server in HTTP proxy if anonymous logon fails
  313. 18.06.2007
  314. ! Documentation fixes
  315. 11.06.2007
  316. ! Fixed: \r in *nix installation scripts
  317. 31.05.2007
  318. ! PCRE: Fixed: replace on the string of different size
  319. ! PCRE: Fixed: replace only replaces first match
  320. ? PCRE: known problem: in HTTP if size changes after replacement it doesn't
  321. match Content-Length any more. Any workaround suggestions? Remove
  322. Content-Length on HTTP requests?
  323. 07.05.2007
  324. ! PCRE plugin only used first rule
  325. 21.04.2007
  326. ! Avoid usage of large stack buffer in proxy
  327. + PCREPlugin is now somehow usefull
  328. 20.04.2007
  329. ! Minor code cleanup
  330. 18.04.2007
  331. ! Fixed: TraffCorrect plugin doesn't NULLify pointer after free()
  332. 13.04.2007
  333. !! Potential buffer overflow fixed on transparent request handling
  334. thanks to big_gad_(at)_mail.ru
  335. 12.04.2007
  336. ! missed authentication type check in Windows Authentication plugin
  337. ! fixed minor memory leak in tcppm
  338. 11.04.2007
  339. ! Compilation issue for structures.h introduced on 09.04 fixed
  340. 09.04.2007
  341. ! Minor code cleanup, documentation fixes, rus-win1251.3ps grammatics fixed.
  342. ! *nix plugins compilation issue fixed
  343. 08.04.2007
  344. ! Bug fixed on socket mapping (introduced 06.04)
  345. ! Some internal code review without functional changes
  346. ! "parent type IP 0" is now used to specify external IP
  347. (like -eIP, but only for connections matching "allow")
  348. 06.04.2007
  349. + PCREPlugin added. Still in development, not all functionality is implemented.
  350. 05.04.2007
  351. + StringsPlugin by Kirill Lopuchov is imported
  352. 21.03.07
  353. ! Fixed: FTP listing is not shown on long FTP server greeting in HTTP proxy
  354. ! Fixed: FTP listing may noy be shown on specific server timing in HTTP proxy
  355. 19.03.07
  356. ! TraffCorrect plugin NULL pointer fixed
  357. 16.03.07
  358. + It's now possible to use hostnames and patterns in destination ACL. Hostname
  359. is checked against requested hostname. Hostnames and networks may be mixed.
  360. Example:
  361. deny * * *sex*,*porn*,localhost,192.168.0.0/16
  362. '*' can not be uses in the middle of the hostname. www*com is invalid
  363. pattern.
  364. ! BINDIR changed to BUILDDIR in Makefiles to avoid collision with install
  365. on Linux.
  366. 15.03.07
  367. ! Documentation update
  368. 13.03.07
  369. + It's possible to use hostnames in ACL, but it should not be dynamic or
  370. multihomed host because hotname is translated to IP immediately.
  371. 01.03.07
  372. ! fixed: unnecessary mutex_unlock on trafcounter mutex
  373. ! Cosmetic changes
  374. 28.02.07
  375. + FTP put support added for HTTP proxy
  376. ! Code cleanups (few warnings fixed)
  377. ! Makefile.Linux changed (by request of Jari Aalto)
  378. 22.02.07
  379. ! fixed: ftppr may delay on file uploading
  380. 20.02.07
  381. + Minor improvements in schedule-handling code
  382. 14.02.07
  383. ! Previous FTP (24.12.06) fix was ineffective (operation after break)
  384. 01.02.07
  385. ! Documentation typo with portnumber in fordummies.html fixed
  386. 25.01.07
  387. ! Typo fixed in gethostbyname_r
  388. 23.01.07
  389. ! Plugins are added to main code tree
  390. 20.01.07
  391. ! Use gethostbyname_r on Linux and Solaris
  392. 18.01.07
  393. ! Set reload flag on Web interface reload, but do not call reload() function.
  394. to process reloads in uniform way.
  395. 08.01.07
  396. ! Rotate counters with '0' number
  397. + Scheduling interface added
  398. 29.12.06
  399. ! udppm code cleanup
  400. 24.12.06
  401. ! Point ident for openlog to saved copy of string to prevent garbage in syslog
  402. ! Fixed: FTP though parent proxy
  403. ! Fixed: problem fixed for final FTP server response received before data
  404. (slow connection).
  405. 22.12.06
  406. ! socks4 parent redirection fixed
  407. ! Makefile.Solaris and Makefile.Solaris-gcc are corrected against -o problem
  408. in Solaris.
  409. 21.12.06
  410. + FAQ additions
  411. 19.12.06
  412. ! Fixed: POST request problem with NTLM authentication
  413. + Access to reload / exit status and proxy stringtable from plugin API
  414. 05.12.06
  415. ! Fixed: imcomlete pages through HTTP proxy (Internet Explorer hangs)
  416. ! Minor changes in trafcount/bandlimit for better plugin compatibility
  417. 30.12.06
  418. ! Fixed: two 3xx replies on USER command in ftppr.
  419. 27.11.06
  420. ! Changed to SAFESQL because actually only Microsoft and Oracle
  421. seems to follow ODBC standards.
  422. 19.11.06
  423. + SITE command support in addition to OPEN for ftppr
  424. 18.11.06
  425. + -I added to standalone services to be executed from inetd.
  426. 14.11.06
  427. ! Fixed behaviour on failed ODBC log attempt
  428. + Filtering HTTP request API now works
  429. 10.11.06
  430. + Try to fallback to stdlog if odbclog fails
  431. 07.11.06
  432. + Filtering API is partially implemented
  433. 01.11.06
  434. + -h option added to use as default hostname:port for ftppr/pop3pr.
  435. 15.10.06
  436. ! WindowsAuthentication.dll version updated to match current internal
  437. structures and changes in plugins API.
  438. 13.10.06
  439. ! Exit service on non-recoverable service error
  440. 11.10.06
  441. ! Fixed: hostname:xx causes name resolution problem (introduced on 09.10).
  442. ! Fixed: wrong target ports for tcppm/udppm (introduced on 09.10).
  443. 09.10.06
  444. ! %Q and %q added to track requested IP/port. Hopefully also problems with
  445. ACL checks on redirected applications are finally fixed.
  446. 06.10.06
  447. ! WindowsAuthentication.dll replaced with static version in distro
  448. 04.10.06
  449. ! Some compilation warnings cleaned
  450. ! Back to static linking
  451. ! Errors introduced with filters corrected
  452. 03.10.06
  453. ! Add .manifest files to distribution
  454. 28.09.06
  455. ! Compile 3proxy with msvcr80.dll
  456. + include msvcr80.dll into distribution
  457. 27.09.06
  458. + FAQ updated.
  459. + Filtering functionality added (incomplete yet).
  460. ! SOCKS BIND/UDPASSOC problems fixed (based on Artem Rebrov's patch)
  461. 25.09.06
  462. ! Traffic report name is now generated based on 'last traffic in report'
  463. date/time and is not overwritten on service startup. Today traffic report
  464. will only be seen tomorrow, but counters may be checked with 'countersutil'
  465. or web interface.
  466. 13.09.06
  467. + Examples of compatible log formats added to 3proxy.cfg.sample
  468. 11.09.06
  469. ! Name hash length changed from 64 to 128 bits.
  470. 06.09.06
  471. ! Documentation regarding to Unix compilation corrected
  472. 05.09.06
  473. ! Fixed: buffered input may double some data on empty reads
  474. + FTP diagnostics improved for FTP login problems
  475. + Add ".." to directory listing
  476. 25.08.06
  477. ! Fixed: endless loop on configuration parsing if ACL weekdays are given as
  478. a comma delimited list (reported Andrey S. Alexeenko).
  479. 23.08.06
  480. ! Fixed: compilation under Solaris
  481. + Solaris/gcc Makefile added
  482. 17.08.06
  483. ! Fixed: NTLM authentication doesn't work for NT-encoded passwords
  484. ! Fixed: offer NTLM authentication before basic
  485. 15.08.06
  486. ! Reset client address after hostname parsing
  487. ! Warn on counterfile time_t incompatibility
  488. 10.08.06
  489. ! Fixed: \r's in few Makefiles
  490. 09.08.06
  491. ! Documentation corrections.
  492. 04.08.06
  493. ! Documentation corrections.
  494. 28.07.06
  495. ! Fixed: invalid traffic prediction for large downloads on traffic limits over
  496. 4GB.
  497. 26.07.06
  498. ! nbname auth rejects, if no NetBIOS name determined. Use
  499. auth nbname,iponly
  500. to emulate old behaviour
  501. ! It's now possible to use "-" in ACLs to match empty username.
  502. ! No need to specify L/G for filename template in "log" (local time is
  503. always used).
  504. 25.07.06
  505. + "log" command now supports same format specifications for filename template
  506. as "logformat" (if filename contains '%' sign it's believed to be template).
  507. As with "logformat" filename must begin with "L" or "G".
  508. 08.07.06
  509. ! nreads/nwrites/nconnects fields added to internal client paramters structure
  510. for plugin developments
  511. 07.07.06
  512. ! FTP_DATA operation added for FTP data connection ACLs.
  513. 04.07.06
  514. ! Scripts/Makefiles corrections
  515. 03.07.06
  516. ! Fixed: dnspr 822 error on Windows (seems like a bug with multithreading on
  517. latest Visual C compiler, ioctlsocket() resets parameters of setsockopt().
  518. ! Fixed: wrong limit and traffic on counters on the web
  519. 30.06.06
  520. ! Fixed: wrong traffic displayed on web for traffic > 4GB
  521. 28.06.06
  522. ! Fixed path to binary in scripts/rc.d/proxy.sh
  523. 27.06.06
  524. ! Fixed: limitations for traffic over 1GB work incorrectly
  525. + Start/stop script example added to distribution
  526. 22.06.06
  527. + -u parameter added to services to avoid username authentication request/usage
  528. 16.06.06
  529. + Windows authentication plugin added to binary Windows distribution
  530. 14.06.06
  531. ! Added workaround for broken HTTP client (e.g. SUM - SUN update manager) with
  532. incomplete URI in HTTP request.
  533. 11.06.06
  534. ! bind FTP data connection socket to external interface
  535. + FTPPR fully supports parent proxy (SOCKS 4/5, HTTPS/CONNECT)
  536. + FTPPR supports FTP_GET/FTP_PUT/FTP_LIST ACL actions limitations
  537. 09.06.06
  538. + 'auth' can be used with few authentication types now. It makes it possible
  539. to request password only on demand with
  540. auth ipony strong
  541. 08.06.06
  542. ! 'admin' redirect type added for redirection to local web administration
  543. service (works like admin -s).
  544. 31.05.06
  545. ! Log '-' instead of username if username exists but is empty
  546. 29.05.06
  547. !!!! Warning: counters file format changed on Windows since 0.5.2
  548. because of different sizeof(time_t) on Visual C++ 2005 compiler.
  549. + countersutil utility added to manage counters. To convert 3proxy.exe
  550. 0.5.2 counter file to 3proxy.exe current run
  551. countersutil oldexport counterfile tmpfile
  552. countersutil import counterfile tmpfile
  553. 25.05.2006
  554. ! Fixed: dnspr command lost from command list
  555. 17.05.2006
  556. ! Fixed: nobandlimin actually works like nobandlimout
  557. 16.05.2006
  558. !! Fixed: crash if more than one "users" command in configuration
  559. ! Fixed: timezone display for FreeBSD and Windows
  560. + added %o format specification for 3-character mOnth abbriviation
  561. ! Fixed: check EINTR on poll() (avoids "Interrupted system call" in logs
  562. and broken connection on USR1 signal.
  563. 12.05.2006
  564. ! Fixed: log rotation was broken after client code rewrite
  565. 11.05.2006
  566. ! Cleaned: "mypoll" error if compiled with GCC withoout WITH_POLL
  567. 10.05.2006
  568. ! Use SO_REUSEPORT if defined
  569. 06.05.06
  570. ! Minor HTTP proxy redirections code cleanup
  571. 03.05.06
  572. + socks error codes improved
  573. 02.05.2006
  574. ! Fixed: compilation for Unix (plugins)
  575. 01.05.2006
  576. ! Fixed: names for authentication types turned back for compatibility
  577. ! Fixed: no warning given for unknown authentication type
  578. ! Fixed: bandlimout doesn't work if bandlimin presents for same connection
  579. 30.04.2006
  580. ! Fixed: nobandlimin/nobandlimout commands missed
  581. ++ plugin command added to load dynamic library
  582. 25.04.06
  583. ! Internal structures moved to diffent header file
  584. 20.04.06
  585. ! Fixed: few problems with logging after latest modification (out of memory
  586. reference on hostname).
  587. SQL injections now are filtered even if \' is not in filtered characters.
  588. 17.04.06
  589. ! Few bugs introduced on 13.04 (especially 'nocountin' crash) fixed
  590. ! Significant changes to internal structures
  591. ! Compilation problems under Linux/Unix fixed
  592. 13.04.2006
  593. ! 3proxy.c configuration reading major code rewrite
  594. ! Fixed: memory leaks on configuration reload
  595. ! Changed from CreateThread to _beginthreadex according to MS reccomendations
  596. ! Changed: FTP start data transfer code from 101 to 125 in FTPPR
  597. + NLST support added to ftppr
  598. 05.04.2006
  599. + Minor documentation and help screen updates
  600. 30.03.2006
  601. !! Windows distribution compiler changed to MSVC 8.0
  602. ++ bin64 (Windows XP/2003 64 bit edition x64) added
  603. 29.03.2006
  604. ! Socket leak fixed on FTP data connection failure under Windows
  605. ! minor 64 bit compatibility code cleanup
  606. + x64/amd64 Windows XP/2003 64 bit edition makefile added
  607. 24.03.2006
  608. ! Minor FAQ dummy compatibility updates
  609. 18.03.2006
  610. + Parameters descriptions and XML stylesheet added to webadmin services view
  611. ! Potential problem (wrong type dereference) fixed in webadmin services
  612. 12.03.2006
  613. ! Restore sasize after receivefrom
  614. 10.03.2006
  615. ! Fixed: CONNECT with http parent
  616. + bandlimout / nobandlimout implemented
  617. ! Copyrights and banners fixed
  618. 08.03.2006
  619. ! Minor poll() code cleanup
  620. 06.03.2006
  621. ! Socks 4a name resolution fixed
  622. ! Name resolution function was not cleared after configuration reload
  623. 03.03.06
  624. ! Print comments in traffic report
  625. 26.02.06
  626. ! Check POLLERR / POLLHUP for revents
  627. 21.02.06
  628. + "monitor" command added to reload 3proxy if monitored file changes
  629. 13.02.06
  630. ! Some files are renamed for autotools compatibility
  631. 07.02.06
  632. ! Fixed: insufficient timeout on buffers flushing, leads to loss
  633. of data if connection to client is worse than connection to server.
  634. 06.02.06
  635. + -b (bufsize) parameter added to every service
  636. ! flushing improved to prevent data loss at the end of output
  637. 03.02.06
  638. ! Documentation corrected
  639. 10.01.06
  640. + Documentation updated
  641. ! Buffered UDP data loss on exit is fixed for sockmap
  642. 30.12.05
  643. ! Minor interface fixes
  644. 27.12.05
  645. + English FAQ added
  646. 20.12.05
  647. ! Fixed: crash on counters in webadmin if "NONE" counter rotation type
  648. is used.
  649. 09.12.05
  650. ! Use bind port from BIND request for SOCKSv5 server
  651. 30.11.05
  652. ! Do not buffer UDP packets
  653. 30.11.05
  654. ! Do not drop connection on unknown command
  655. 29.11.05
  656. ! Do not drop connection on POP3 CAPA.
  657. 28.11.05
  658. ! Fixed: recv() may be called with small buffer on UDPPM
  659. 23.11.05
  660. ! Fixed: programming bug in $ file inclusing
  661. ! Fixed: webadmin conter type uses stack for return value
  662. 17.11.05
  663. + Makefile.Solaris added, thanks to 'pqr'.
  664. ! Cleaned pointer conversion warnings
  665. 15.11.05
  666. ! define PTHREAD_STACK_MIN if not defined to compile under Solaris
  667. ! S_NONE renamed to S_NOSERVICE to compile under Solaris
  668. 14.11.05
  669. ! Linger period is set to STRING_L (60 sec default)
  670. 10.10.05
  671. ! Add some grace period to shutdown services before exit
  672. 03.10.05
  673. ! Linger added to FTP socket to avoid data loss on socket close
  674. 29.09.05
  675. + Added H (hour) and C (minute) routation support to countin
  676. 22.08.05
  677. ! Fixed: UDP resolver (nserver) fails to resolve name if reply contains
  678. no additional records (for example dnscache from djbdns).
  679. 06.08.05
  680. !!Workaround added for Windows XP SP2 / Windows 2003 SP1 problem with
  681. 2 selects on single datagram socket. udppm -s and dnspr hang on random
  682. time while sending packets to client, sometimes causing client timeouts.
  683. 05.08.05
  684. ! Fixed problem with UDP mappings
  685. ! Workaround for strange Windows XP bug with sendto() delay for 2 secs
  686. if no select() was performed on socket
  687. 30.07.05
  688. ! Error handling on SOCKSv5 parent improved
  689. 28.07.05
  690. + Support for parent SOCKS4b/SOCKS5b (broken implementation with shortened
  691. server reply) added. I never saw such server by they say there are.
  692. socks4b, socks5b options for parent proxy.
  693. 22.07.05
  694. + Name resolution for parent CONNECT, SOCKSv5 and SOCKSv4a proxy server
  695. added, should work with "fakeresolve" option (connect+, socks4+
  696. socks5+ options for parent proxy).
  697. 13.07.05
  698. ! Fixed: reading behind allocated memory in myrand() entropy
  699. gathering function (leads to occasional craches) intrdoduced
  700. on June, 20.
  701. 12.07.05
  702. ! Use client port only for portmappers
  703. ! Code reviewed for possible double close()
  704. 10.07.05
  705. ! Improved quote handling in config files. No any string can be quoted
  706. (for example Thi"s is a test" is same as "This is a test", fixed a
  707. problem with using quotes with $ macro.
  708. 01.07.05
  709. + Added RSA copyright text to 'mycrypt' to allow binary redistribution
  710. for this tool only.
  711. 22.06.05
  712. + try to use same (unprivileged) port as client for outgoing connections
  713. for portmappers
  714. ! admin -s now only shows counters related to user
  715. ! Fixed: impossible to set traffic limit to even number of GB
  716. 20.06.05
  717. ! -a option corrected again (had inverted action)
  718. + -a1 option added to report random information about client IP
  719. + -s option added to 'admin' to allow safe-only commands (user mode)
  720. 26.05.2005
  721. ! -a option corrected
  722. 25.05.2005
  723. + 'Y' (annually) option added to counters, logfile rotations, etc
  724. + -a (anonymous) option added to proxy server
  725. 21.05.2005
  726. ! socks: only allow UDP mapping from same IP with control connection
  727. ! socks: always log network parameters for control connection
  728. ! check timeout to be below 2000000
  729. 20.05.2005
  730. ! invalid sendto() argument fixed (may affect UDP mapping and sometimes
  731. TCP under very rare configurations)
  732. ! set sasize before sendto
  733. ! socks checks requested address to be non-zero
  734. ! socks checks requested port to be non-zero
  735. ! socks: do not change UDP client parameters before UDP packet received
  736. 19.05.2005
  737. + 'include' command added to 3proxy (include one config file from another
  738. config file)
  739. ! handle EAGAIN on send()/recv()
  740. 18.05.2005
  741. ! More detailed problem code in mapping code
  742. 17.05.2005
  743. ! Fixed typo with dnspr logging
  744. 16.05.2005
  745. + dnspr can now resolve records different from hostname (request is proxied to
  746. first DNS server in the list, reply is not cached).
  747. 14.05.2005
  748. ! Fixed: mishandled socket error in dnspr code
  749. 13.05.2005
  750. ! Few minor fixes in HTTP proxy code (timeout in initial handshake lefts
  751. some garbage in request buffer).
  752. ! Fixed short timeout in FTP proxy code
  753. ! Mapping code is changed to leave unsent data on buffer
  754. 06.05.2005
  755. ! Prevent race conditions with 100% CPU usage in socksmap (introduced 30.04)
  756. 03.05.2005
  757. ! Fixed: double free() in authentication (probably introduced on 04.04)
  758. ! Changed to POLLIN/POLLOUT/POLLPRI for more compatibility
  759. 30.04.2005
  760. ! Fixed: double free() in FTP over HTTP (probably introduced on 04.04)
  761. ! Fixed: in very rare situation may loose some data at the and of connection
  762. 27.04.2005
  763. ! stack size increased (reported problems under some OSs)
  764. ! Fixed: -l option for service executable leads to NULL-pointer reference
  765. !!! Moved from select() to poll() on *nix. Please upgrade your Makefiles.
  766. 25.04.2005
  767. ! set thread stack size explicitly to prevent problems with some Linux 2.6
  768. kernels.
  769. 22.04.2005
  770. ! Never fallback to gethostbyname() if nameservers are configured to prevent
  771. locking on *nix platforms
  772. !!Fixed: name resolution is called while mutex is locked in HTTP proxy
  773. leading to long lasting blocking.
  774. 21.04.2005
  775. ! Fixed: dnspr returns A record of invalid class (fails with some resolvers)
  776. !! Socket I/O is now non-blocking
  777. 19.04.2005
  778. ! bandlimits changed to avoid floating point operations
  779. 11.04.2005
  780. + Log if new connections delayed because of too many accepted connections
  781. 04.04.2005
  782. ! Fixed few minor rare memory leaks
  783. 03.04.2005
  784. ! Fixed: HTTP proxy should ignore Content-Length for 304 response
  785. 14.03.2005
  786. ! MD5 password hashin within mycrypt utility fixed
  787. ! dnspr logging now shows DNS server IP instead of resolved IP, resolver IP
  788. is shown in additional info
  789. 11.02.2005
  790. ! Configuration reload removed from signal handler
  791. 31.01.2005
  792. ! Limit for maximum log string size increased to ~4K
  793. ! large FD_SETSIZE and FD_SETSIZE check is not required under Windows
  794. 28.01.2005
  795. ! Fixed: -s options for udppm
  796. 17.01.2005
  797. ! Fixed: invalid IP may appear in logs and bandlimits on redirection
  798. 13.01.2005
  799. + fakeresolve option added
  800. 21.12.2004
  801. ! Fixed: traffic limits are set improperly for traffic over 1Gb
  802. 11.12.2004
  803. ! 0.6 development started
  804. 11.12.2004
  805. Commited as 0.5b
  806. 11/12/2004 3[APA3A]tiny proxy 0.5b
  807. New features marked with !.
  808. Features:
  809. 1. General
  810. + HTTP/1.1 Proxy with keep-alive client and server support,
  811. transparent proxy support.
  812. + FTP over HTTP support.
  813. + DNS caching with built-in resolver
  814. + HTTPS (CONNECT) proxy
  815. + SOCKSv4/4.5 Proxy
  816. + SOCKSv5 Proxy
  817. ! UDP and bind support for SOCKSv5 (fully compatible with
  818. SocksCAP/FreeCAP for UDP)
  819. + Transparent SOCKS->HTTP redirection
  820. ! Transparent SOCKS->FTP redirection
  821. ! Transparent SOCKS->POP3 redirection
  822. + POP3 Proxy
  823. ! FTP proxy
  824. ! DNS proxy
  825. + TCP port mapper
  826. + UDP port mapper
  827. + Threaded application (no child process).
  828. ! Web administration and statistics
  829. 2. Proxy chaining
  830. + Parent proxy support for any type of incoming connection
  831. + Username/password authentication for parent proxy(s).
  832. + HTTPS/SOCKS4/SOCKS5 and redirection parent support
  833. + Random parent selection
  834. + Chain building (multihop proxing)
  835. 3. Logging
  836. + turnable log format compatible with any log parser
  837. + stdout logging
  838. + file logging
  839. + syslog logging (Unix)
  840. + ODBC logging (Windows and Unix)
  841. + log file rotation (hourly, daily, weekly, monthly)
  842. + automatic log file comperssion with external archiver (for files)
  843. + automatic removal of older log files
  844. ! Character filtering for log files
  845. ! different log files for different servces are supported
  846. 4. Access control
  847. + ACL-driven (user/source/destination/protocol/weekday/daytime or
  848. combined) bandwith limitation
  849. + ACL-driven (user/source/destination/protocol/weekday/daytime or
  850. combined) traffic limitation per day, week or month
  851. + User authorization by NetBIOS messanger name
  852. + Access control by username, source IP, destination IP, destination
  853. port and destination action (POST, PUT, GET, etc), weekday and daytime.
  854. + Access control by username/password for SOCKSv5 and HTTP/HTTPS/FTP
  855. + Cleartext or encrypted (crypt/MD5 or NT) passwords.
  856. + Connection redirection
  857. + Access control by requested action (CONNECT/BIND,
  858. HTTP GET/POST/PUT/HEAD/OTHER).
  859. ! NTLM authentication for HTTP proxy access
  860. ! All access controle entries now support weekday and daytime
  861. limitations.
  862. 5. Configuration
  863. + support for configuration files
  864. + support for includes in configuration files
  865. + interface binding
  866. + running as daemon process
  867. + utility for automated networks list building
  868. Unix
  869. + support for chroot
  870. + support for setgid
  871. + support for setuid
  872. ! support for signals
  873. Windows NT/2K/XP/2K3
  874. + support --install as service
  875. + support --remove as service
  876. + support for service START, STOP, PAUSE and CONTINUE commands (on
  877. PAUSE no new connection accepted, but active connections still in
  878. progress, on CONTINUE configuration is reloaded)
  879. Windows 95/98/ME
  880. ! support --install as service
  881. ! support --remove as service
  882. 6. Compilation
  883. + MSVC (msvcrt.dll)
  884. + Intel Windows Compiler (msvcrt.dll)
  885. + Windows/gcc (msvcrt.dll)
  886. + Cygwin/gcc (cygwin.dll)
  887. + Unix/gcc
  888. + Unix/ccc
  889. Known bugs:
  890. report to 3proxy@security.nnov.ru
  891. Planned for future (0.6) release:
  892. - External modules API
  893. - Addon URL, antiviral, HTTP cache filters modules, authentication
  894. modules for different protocols (RADIUS, PAM, integrated system, etc).
  895. $Id: Changelog,v 1.154 2006/03/08 18:44:00 vlad Exp $
  896. 11.12.2004
  897. + man page for 3proxy.cfg added
  898. 09.12.2004
  899. ! restarting SQL on reloading configuration
  900. 08.12.2004
  901. ! Typo fixed in sockmap preventing portmappers from functioning
  902. 06.12.2004
  903. + Network input is now buffered, decreasing CPU usage
  904. - Debugging printf() removed from ftppr
  905. 30.11.2004
  906. !! Fixed: memory content may be leaked on FTP error in HTTP proxy
  907. ! Few race conditions with double socket closing fixed in FTP proxy
  908. + Content-Length is checked to do not allow traffic overdraft via HTTP proxy
  909. + Connection now can be aborted due to traffic limit (code 90)
  910. 24.11.2004
  911. ! 333 error removed - no longer required
  912. 23.11.2004
  913. ! Deadlock in checkACL() (introduced 18.11) fixed
  914. 20.11.2004
  915. ! All mutex operation are now atomic to prvent deadlocks
  916. ! Race conditions with bamdlimits on reload fixed
  917. 18.11.2004
  918. ! Mutex logic overwritten, should clear reload races completely
  919. ! Fixed socket leak on some failed FTP operations
  920. ! FD_SETSIZE increased, check for FD_SETSIZE added
  921. 04.11.2004
  922. ! Fixed: Maxconn limitation doesn't work, may lead to resource exhaustion
  923. attacks
  924. ! Fixed: reference to unallocated memory if fails to create new thread
  925. (may lead to crash together with previous bug).
  926. 03.11.2004
  927. ! Fixed: Wrong type for "ace.users" in datatypes.c
  928. ! Partially fixed: race conditions on reload in alwaysauth()
  929. 02.11.2004
  930. ! race condition in sql_init on reload fixed
  931. ! minor code cleanup
  932. ! typo with SQL deadlock introduced on last fix fixed
  933. ! checked few memory allocation calls missed with debug library (myalloc)
  934. 30.10.2004
  935. ! Fixed: minor memory leak on SQL error
  936. 28.10.2004
  937. + HTTP parent redirection for FTP requests
  938. 23.10.2004
  939. ! Fixed: access to free()'d memory in ODBC functions after few
  940. configuration reloads
  941. ! Configuration reload is more (but not yet completely) thread safe
  942. now.
  943. 17.10.2004
  944. ! Fixed: Content-Type: missed in web interface
  945. 16.10.2004
  946. ! Fixed: log may show invalid IP/port for parent proxy connection
  947. 12.10.2004
  948. - Debug printing to stdout in webadmin removed
  949. 11.10.2004
  950. ! Race conditions fixed, could cause 3proxy to crash on configuration reload
  951. 28.09.2004
  952. ! Limitation for maximum string length in config file removed (for included files)
  953. 26.09.2004
  954. ! Typo corrected preventing compilation under *nix
  955. 18.09.2004
  956. ! URL decoding corrected (affect HTTP over FTP clients)
  957. + "writable" command added to allow config modification via Web interface
  958. + Config file can be edited via web interface
  959. 14.09.2004
  960. ! Crash on HTTP redirections introduced on 08.09 fixed.
  961. 11.09.2004
  962. + Weekday based access control is now possible
  963. + Time based access control added
  964. ! Speed improved in ACL checks
  965. 08.09.2004
  966. + * can be used as external username with a meaning of username should be
  967. requested from user.
  968. + %n1-n2T is now available in logformat to log only few field of service
  969. specific text
  970. + -t (silent start) option added
  971. 20.08.2004
  972. ! Yesterday fix was broken, corrected.
  973. 19.08.2004
  974. ! Fixed: target address is logged instead of proxy address in a case
  975. of redirection
  976. 09.08.2004
  977. ! Fixed: under *nix if service fails to bind() port for few hours it falls
  978. into endless loop with logging and high CPU usage.
  979. 03.08.2004
  980. ! Fixed: select() changes tv value on some Linux kernels (100% CPU usage)
  981. 02.08.2004
  982. ! Fixed: wrong initialization for counter descriptor (causes some stdout
  983. noise).
  984. ! Fixed: no HTTP proxy diagnostic message if host name doesn't resolve
  985. ! Fixed: NULL pointer crash if no format specified
  986. 30.07.2004
  987. ! Few bugs with counters and bandlimits introduced yesterday fixed
  988. 29.07.2004
  989. ! Fixed few memory leaks on restart
  990. ! Some code cleanup for configuration information storing
  991. + Statistics extended
  992. + Added "Zombie" threads support (service thread waiting for child shutdown
  993. to exit).
  994. + Every service can now have different log format and character filtering
  995. + It's now possible to set logformat for service from command line
  996. 28.07.2004
  997. ! Fixed: ACLs are not cleared on reload
  998. ! Fixed: bind() warnings on reload under *nix
  999. !! Fixed potential race conditions DoS on some Unix systems with thread
  1000. exit on aborted connection (accept(): Software caused connection abort)
  1001. 24.07.2004
  1002. + Web interface shows information about all currently running services and
  1003. clients (plain format just for debugging, will be rewrtitten later)
  1004. 23.07.2004
  1005. ! Fixed: wrong external ip/port in logs sometimes on internal redirection
  1006. + HowTo and FAQ (Russian) added to documentation, documentation corrected
  1007. 22.07.2004
  1008. + Added logging options for request duration and average send/recieve
  1009. speed per request
  1010. 20.07.2004
  1011. ! Changed default password for anonymous FTP
  1012. ! Improved diagnostic messages for FTP over HTTP errors
  1013. 19.07.2004
  1014. ! Changed FTP behaviour for some RFC ignorant sites
  1015. 17.07.2004
  1016. + services and clients are now registered for future extensions
  1017. ! counters show wrong result problem introduced yesterday fixed
  1018. ! fixed descriptor leak on configuration reload
  1019. ! fixed theoretical problem with client number limitations
  1020. ! few theoretical mutex leaks fixed
  1021. 16.07.2004
  1022. + 3proxy can now read configuration from stdin under *nix,
  1023. 3proxy.cfg can be executable
  1024. + 'config' command added to allow 3proxy reload configuration in chroot'ed
  1025. environment or if configured from stdin.
  1026. + 'end' command added
  1027. + Man pages in HTML added
  1028. 14.07.2004
  1029. ! Minor casting issues, Unix compilation issues fixed
  1030. + counters sample added
  1031. 13.07.2004
  1032. + Configuration improved and repacked
  1033. 08.07.2004
  1034. ! Problem introduced yesteday (after rotation logs do not print to
  1035. logfile) fixed.
  1036. 07.07.2004
  1037. ! Fixed FTP behaviour on RFC ignoring FTP sites (ftp.drweb.ru).
  1038. ! Config file example updated with FTP proxy service configuration
  1039. + Logging changed to allow personal log files for every service (without
  1040. rotation) and to work on older FreeBSD systems.
  1041. 05.07.2004
  1042. ! Fixed call to free'ed memory (could cause crash on reloading 3proxy
  1043. configuration in 0.5b-devel after 28.06.2004)
  1044. 30.06.2004
  1045. ! Fixed redirection crash if parent username/password is not specified
  1046. ! Fixed documentation buf (%h instead of %n for hostname in logformat)
  1047. 28.06.2004
  1048. ! Minor changes in error messages generation
  1049. 25.06.2004
  1050. ! distributive repacked, some Russian documentation by Kirill Lopuchov
  1051. added
  1052. 24.06.2004
  1053. ! realm sometimes is not shown in proxy-authentication
  1054. 23.06.2004
  1055. ! fixed maxconn parameter was not set to default value on proxy reload.
  1056. ! fixed typo in pop3p causing it to fail
  1057. 22.06.2004
  1058. ! ftppr.c typo corrected, preventing compilation under unix.
  1059. 19.06.2004
  1060. + FTP proxy (compatible with both USER and OPEN mode). Redirection to
  1061. FTP proxy from SOCKS
  1062. 18.06.2004
  1063. + Local redirection to POP3 proxy is now awailable.
  1064. ! Fixed race conditions with double socket closing in POP3 proxy
  1065. 17.06.2004
  1066. !! Threading problem causing minor memory leak and preventing 3proxy
  1067. from functioning under few OS versions (including Linux) after
  1068. some number of requests fixed.
  1069. 16.06.2004
  1070. ! Authentication problem introduced on 05.06 fixed
  1071. 15.06.2004
  1072. ! FTP over HTTP proxy supports spaces, quotes and 0x255 in filenames.
  1073. !! Potential security risk fixed: FTP password may appear in log if
  1074. URL ftp://user:password@server is used.
  1075. 09.06.2004
  1076. ! NTLM is enabled by default. Use proxy -n to disable NTLM for proxy service
  1077. (for example, if crypt passwords are used).
  1078. 05.06.2004
  1079. !! Potential security leak fixed: POP3 proxy password can appear in log if
  1080. proxy username is configured as proxyuser:proxypassword:pop3user@pop3server
  1081. in POP3 client program
  1082. ! Child invocation code rewritten to avoid code dupclication.
  1083. 27.05.2004
  1084. ! Reloading is now fast (new thread starts before old one dies)
  1085. ! Milliseconds are printed as .3 (not .4) in logs
  1086. 22.05.2004
  1087. + Reload command added to Web interface and SIGUSR1 handling
  1088. ! Problem fixed: no mode is given to open() with O_CREAT for counter files,
  1089. counter file can be created as read only under Windows or with invalid mask
  1090. under Unix.
  1091. ! Do not fail if bind() fails
  1092. ! Setsockopt for integer options corrected
  1093. ! REUSEADDR added to avoid "Address already in use" problem if restarted
  1094. under Unix
  1095. 18.05.2004
  1096. + Installation/removal as a service under Windows 95/98/ME now supported.
  1097. 17.05.2004
  1098. ! Fixed: 3proxy hangs on socket error during config reading
  1099. 14.05.2004
  1100. ! For HTTP proxy NTLM authentication both ntlm and basic are now advertized
  1101. to client for compatibility
  1102. ! Optimization parameters are changed and stack protection is turned on for
  1103. MSVC (Windows default) compilation.
  1104. ! Fixed: exiting thread shows last client IP in log
  1105. 27.04.2004
  1106. ! Fixed: Microsoft domain authentication to web server may fail via
  1107. transparent HTTP proxy with some IE versions.
  1108. ! HTTP HEAD now recognized
  1109. 23.04.2004
  1110. ! Fixed compilation issues under Unix
  1111. 22.04.2004
  1112. + Configuration now can be dynamically reloaded with
  1113. net pause 3proxy / net continue 3proxy or by sending SIGPAUSE twice
  1114. without breaking connections
  1115. ! 3proxy is now distributed compiled with Microsoft Visual C++, thanx
  1116. to MS for releasing "Microsoft Visual C++ Toolkit 2003" for free.
  1117. ! Few bugs introduced in latest versions (username/password for parent proxy,
  1118. dnspr and single packet UDP are fixed)
  1119. 13.04.2004
  1120. + NTLM authentication for proxy server (yes, it works under *nix). It will
  1121. not work with crypt password, only CL or NT. Use proxy -n to allow NTLM.
  1122. ! potential DoS (NULL pointer) condition fixed in configuration with crypted
  1123. passwords
  1124. 08.04.2004
  1125. + %n (hostname) added to logformat
  1126. 05.04.04
  1127. ! compilation problem under Unix fixed
  1128. 01.04.04
  1129. ! problem with portmappers fixed (introduced on last modification)
  1130. 20.03.04
  1131. + FTP messages are shown now
  1132. ! FTP problem with links with absolute paths fixed
  1133. ! No more authentication requested for user if ACL denies access to resource
  1134. in HTTP proxy.
  1135. ! ACLs are now stored in predefined container. It's required for future
  1136. improvement (Cisco-like ACL configuration and configuration reload without
  1137. restarting proxy). As a backside, number of ACLs is now limited to 256.
  1138. ! Function for configuration reading implemented for future improvements.
  1139. 12.03.2004
  1140. ! error text generation changed for pthread_create (use return code
  1141. instead of errno). Memory leak on failed pthread_create fixed.
  1142. 02.03.2004
  1143. ! Transparent proxy fixed to work with ports different from 80.
  1144. ! Workarond for Internet Explorer invalid Host: header bug
  1145. 28.02.2004
  1146. + -+ options added to logformat for character filtering
  1147. ! ' character now filtered only if logged via ODBC
  1148. ! few bugs fixed in ODBC logging reliability code. Now 3proxy should better
  1149. handle broken database connections.
  1150. 26.02.2004
  1151. ! user32 added to library list for MSVC
  1152. 24.02.2004
  1153. ! Ask installation confirmation before installation
  1154. 23.02.2004
  1155. ! ttl now is real for DNS proxy proxy reply
  1156. 21.02.2004
  1157. + dnspr - DNS caching proxy added to 3proxy module. Listens on UDP/53
  1158. and answers hostname requests. Requires nserver/nscache to be configured.
  1159. ! 3proxy wanrs user if installed as Windows service
  1160. ! 3proxy child threads are now started faster
  1161. 22.01.2004
  1162. ! mutex deadlock fixed if gethostbyname() is used under Unix
  1163. 19.01.2004
  1164. ! compilation issue fixed for MSVC (definition inside code)
  1165. 15.01.2004
  1166. ! bug fixed in configuration reading getip() called befor WSAStartup
  1167. (thanks to Kerd)
  1168. ! bug fixed with parent CONNECT proxy (thanks to Kerd)
  1169. 11.01.2003
  1170. + Few man pages added
  1171. 06.01.2003
  1172. + now it's possible to use "" inside quotation for double quote sign (for
  1173. example "say ""hello world"""
  1174. 04.01.2004
  1175. + maxconn configuration option added
  1176. 19.12.2003
  1177. + New "safe" memory allocation library implemented. It may slow down
  1178. performance but is thread safe and never cause memory fragmentation.
  1179. ! Memory leak in redirection SOCKS->HTTP fixed
  1180. 11.12.2003
  1181. ! Memory leak in UDPPM fixed
  1182. 29.11.2003
  1183. + Copyrights added to banners
  1184. !! Few signed/unsigned mismatches fixed (including potentially dangerous)
  1185. 27.11.2003
  1186. ! 'redirect' now can be used with hostname instead of ip address
  1187. 21.11.2003
  1188. ! POP3 proxy bug fixed
  1189. 04.11.2003
  1190. ! '@' situation in username for POP3 proxy corrected
  1191. (pop3name@pop3realm@pop3server)
  1192. 03.11.2003
  1193. ! One more bug with 'archiver' causing 3proxy to crash on log archieving
  1194. fixed
  1195. 29.10.2003
  1196. ! Some threading safety is added for logging (inet_ntoa and ODBC
  1197. re-initialisation)
  1198. 28.10.2003
  1199. ! Bug causing daily log filename to work as weekly fixed
  1200. ! 'daemon' example moved to beginning of configuration file
  1201. 16.10.2003
  1202. + pidfile configuration option added
  1203. + processing for SIGCONT (pause/resume) and SIGTERM (termination) added
  1204. under Unix
  1205. 01.10.2003
  1206. ! Weekly log filename now is generated by the date of last Sunday.
  1207. ! Do not strip executable for Unix (must be stripped during installation).
  1208. 21.09.2003
  1209. ! Bug fixed in "log" command processing (wrong buffer was used
  1210. for filename generation)
  1211. 16.09.2003
  1212. ! socksmapping algorythm changed to handle incomlete send() (for *BSD).
  1213. 15.09.2003
  1214. ! mutex added to gethostbyname() to avoid thread unsafety. It slows
  1215. down proxy if no nserver configured (it MUST be for *nix!) but prevents
  1216. crashing on active usage.
  1217. ! signal() handling is added for SIGPIPE. It seems to be some race conditions
  1218. on FreeBSD between send() and gethostbyname() somewhere causing SIGPIPE on
  1219. gethostbyname().
  1220. 13.09.2003
  1221. ! NULL reference corrected if rotate is given without archiver
  1222. 11.09.2003
  1223. ! Few additional checks added for open()/fopen() to do not crash on invalid
  1224. files in config
  1225. ! Buffer moved from stack to heap in socks.c to eliminate crash on FreeBSD
  1226. 10.09.2003
  1227. ! Bug in SOCKSv5 UDP mapping corrected. Now it works fine (checked with
  1228. Unreal Tournament) with both SocksCAP and FreeCAP.
  1229. 06.08.2003
  1230. ! Algorithm for SOCKS5 bind/udp assoc port selection is now intellegent
  1231. enough to allow server applications to use same port number on socks
  1232. server if available and not denied by access list
  1233. ! SOCKS5 bind/udp assoc now matches incoming connections/packet
  1234. with IP address from request in accordance to RFC 1928 to improve
  1235. security
  1236. 04.08.2003
  1237. !!! Bug fixed sometimes causing 3proxy to crash if parent proxy is used
  1238. !!! UDP associate finaly completed and is fully functional
  1239. (tested with SocksCAP on Unreal Tournament).
  1240. !!! TCP bind code re-checked, and is probably working (doesn't work
  1241. on SocksCAP because of SocksCAP bug
  1242. !!! Socket leak on nbname auth fixed
  1243. 21.07.03
  1244. + Web administration module created
  1245. + Dynamic enable/disable for counters now available via web interface
  1246. 19/07/2003 3[APA3A]tiny proxy 0.4
  1247. New features marked with !.
  1248. Features:
  1249. 1. General
  1250. + HTTP/1.1 Proxy with keep-alive client and server support,
  1251. transparent proxy support.
  1252. ! FTP over HTTP support.
  1253. ! DNS caching
  1254. + HTTPS (CONNECT) proxy
  1255. + SOCKSv4 Proxy
  1256. + SOCKSv5 Proxy (TCP only)
  1257. + Transparent SOCKS->HTTP redirection
  1258. + POP3 Proxy
  1259. + TCP port mapper
  1260. + UDP port mapper
  1261. + Threaded application (no child process).
  1262. 2. Proxy chaining
  1263. + Parent proxy support for any type of incoming connection
  1264. + Username/password authentication for parent proxy(s).
  1265. + HTTPS/SOCKS4/SOCKS5 and redirection parent support
  1266. + Random parent selecttion
  1267. + Chain building (multihop proxing)
  1268. 3. Logging
  1269. + turnable log format
  1270. + stdout logging
  1271. + file logging
  1272. + syslog logging (Unix)
  1273. + ODBC logging (Windows and Unix)
  1274. + log file rotation (hourly, daily, weekly, monthly)
  1275. + automatic log file comperssion with external archiver (for files)
  1276. + automatic removal of older log files
  1277. 4. Access control
  1278. ! ACL-driven (user/source/destination/protocol or combined) bandwith
  1279. limitation
  1280. ! ACL-driven (user/source/destination/protocol or combined) traffic
  1281. limitation per day, week or month
  1282. + User authorization by NetBIOS messanger name
  1283. + Access control by username, source IP, destination IP, destination
  1284. port and destination action (POST, PUT, GET, etc).
  1285. + Access control by username/password for SOCKSv5 and HTTP/HTTPS/FTP
  1286. + Cleartext or encrypted (crypt/MD5 or NT) passwords.
  1287. + Connection redirection
  1288. + Access control by requested action (CONNECT/BIND,
  1289. HTTP GET/POST/PUT/HEAD/OTHER).
  1290. 5. Configuration
  1291. + support for configuration files
  1292. + support for includes in configuration files
  1293. + interface binding
  1294. + running as daemon process
  1295. + utility for automated networks list building
  1296. Unix
  1297. + support for chroot
  1298. + support for setgid
  1299. + support for setuid
  1300. NT
  1301. + support --install as service
  1302. + support --remove as service
  1303. + support for service START, STOP, PAUSE and CONTINUE commands (on
  1304. PAUSE no new connection accepted, but active connections still in
  1305. progress)
  1306. 6. Compilation
  1307. + MSVC (msvcrt.dll)
  1308. + Intel Windows Compiler (msvcrt.dll)
  1309. + Windows/gcc (msvcrt.dll)
  1310. + Cygwin/gcc (cygwin.dll)
  1311. + Unix/gcc
  1312. + Unix/ccc
  1313. Known bugs:
  1314. - udppm doesn't work if compiled with cygwin.
  1315. Cygwin doesn't support recvfrom()/sendto() on connected socket, so
  1316. recv/send is used instead... Not a big deal anyway.
  1317. Planned for future release:
  1318. - Web interface for configuration
  1319. - Signal handling on Unix (for stop/pause/resume/configuration change)
  1320. - External filter API
  1321. - Addon URL, antiviral, HTTP cache filters
  1322. 17.07.03
  1323. + ODBC changed to re-establish broken connection
  1324. 11.06.03
  1325. ! #ifndef NOSQL changed to NOODBC
  1326. 22.05.03
  1327. + strong auth now supported for POP3 proxy. Now, username can be in format
  1328. proxy_username:proxy_password:POP3_username@pop3server
  1329. 30.04.03
  1330. ! redirect function now do not change code of traffic limit error
  1331. 24.04.2003
  1332. ! -M changed to -D for *nix makefiles
  1333. 18.04.2003
  1334. ! HTTPS behaviour breaked by latest patches restored
  1335. 15.04.2003
  1336. ! fixed handling of special characters and non-existing files in
  1337. FTP over HTTP proxy.
  1338. 12.04.2003
  1339. ! fixed behaviour of HTTP proxy on RFC-incompatible web servers (banners
  1340. exchanges, price.ru, etc) - they terminate string with \n instead of
  1341. \r\n.
  1342. 10.04.2003
  1343. + nsrecord and dialer commands added
  1344. ! Name resolution now occures right before authorization to prevent
  1345. unauthenticated users from performing NS lookups and demand dial.
  1346. 05.04.2003
  1347. + N (Never) option value added for counters refreshing
  1348. 29.03.2003
  1349. + !!! FTP support for HTTP proxy added.
  1350. 25.03.2003
  1351. ! Socks 4 bug fixed (was visible in Netscape)
  1352. + Socks 4.5 support added (not tested)
  1353. ! !! UDP portmapper code fixed
  1354. 24.03.2003
  1355. ! Timeout, close on closed socket and FD bugs fixed in UDPPM
  1356. 21.03.2003
  1357. + Proxy-Authorization now works for CONNECT (HTTPS proxy).
  1358. 07.03.2003
  1359. ! counter command extended to allow traffic reports
  1360. 02.03.2003
  1361. ! Bandwidth/Traffic limiting problems fixed
  1362. ! gethostbyname() argument limited to 256 characters. It may be significant
  1363. for Windows
  1364. 27.02.2003
  1365. + !!! Traffic limitting feature added (counter/countin/nocountin)
  1366. 26.02.2003
  1367. ! nobandlim processing changed
  1368. ! bandlim/nobamdlim commands renamed to bandlimin/nobandlimin
  1369. 22.02.2003
  1370. + !!! Bandwidth limiting features added (bandlim and nobandlim commands)
  1371. 18.02.2003
  1372. + Mutext support added for inter-thread data access. Should improve stability.
  1373. - debugging printf() removed from proxy, typo fixed in auth.c
  1374. 10.02.2003
  1375. ! Changed to use WSASocket()/WSAAccept() instead of socket()/accept() under
  1376. Windows
  1377. 30.01.2003
  1378. ! Version of gcc changed (3.2).
  1379. + nscache option added to 3proxy configuration for DNS cache. For a while
  1380. caching is primitive (with no expiration).
  1381. 27.01.2003
  1382. - \n removed from perror() calls
  1383. 27/01/2003 3[APA3A]tiny proxy 0.3b.
  1384. New features are marked with !.
  1385. Features:
  1386. 1. General
  1387. + HTTP/1.1 Proxy with keep-alive client and server support,
  1388. transparent proxy support.
  1389. ! HTTPS (CONNECT) proxy
  1390. + SOCKSv4 Proxy
  1391. + SOCKSv5 Proxy (TCP only)
  1392. ! Transparent SOCKS->HTTP redirection
  1393. + POP3 Proxy
  1394. + TCP port mapper
  1395. + UDP port mapper
  1396. + Threaded application (no child process).
  1397. 2. Proxy chaining
  1398. ! Parent proxy support for any type of incoming connection
  1399. ! Username/password authentication for parent proxy(s).
  1400. ! HTTPS/SOCKS4/SOCKS5 and redirection parent support
  1401. ! Random parent select
  1402. ! Chain building (multihop proxing)
  1403. 3. Logging
  1404. ! turnable log format
  1405. + stdout logging
  1406. + file logging
  1407. + syslog logging (Unix)
  1408. ! ODBC logging (Windows)
  1409. + log file rotation (hourly, daily, weekly, monthly)
  1410. + automatic log file comperssion with external archiver (for files)
  1411. + automatic removal of older log files
  1412. 4. Access control
  1413. + User authorization by NetBIOS messanger name
  1414. + Access control by username, source IP, destination IP and destination
  1415. port
  1416. + Access control by username/password for SOCKSv5 and HTTP
  1417. + Cleartext or encrypted (crypt/MD5 or NT) passwords.
  1418. + Connection redirection
  1419. ! Access control by requested action (CONNECT/BIND,
  1420. HTTP GET/POST/PUT/HEAD/OTHER).
  1421. 5. Configuration
  1422. + support for configuration files
  1423. + support for includes in configuration files
  1424. + interface binding
  1425. + running as daemon process
  1426. ! utility for networks list building
  1427. Unix
  1428. + support for chroot
  1429. + support for setgid
  1430. + support for setuid
  1431. NT
  1432. + support --install as service
  1433. + support --remove as service
  1434. + support for service START, STOP, PAUSE and CONTINUE commands (on
  1435. PAUSE no new connection accepted, but active connections still in
  1436. progress)
  1437. 6. Compilation
  1438. + MSVC (msvcrt.dll)
  1439. ! Intel Windows Compiler (msvcrt.dll)
  1440. + Windows/gcc (msvcrt.dll)
  1441. + Cygwin/gcc (cygwin.dll)
  1442. + Unix/gcc
  1443. ! Unix/ccc
  1444. Known bugs:
  1445. - udppm doesn't work if compiled with cygwin.
  1446. Cygwin doesn't support recvfrom()/sendto() on connected socket, so
  1447. recv/send is used instead... Not a big deal anyway.
  1448. Planned for future release:
  1449. - FTP proxy support
  1450. - Web interface for configuration
  1451. - Signal handling on Unix (for stop/pause/resume/configuration change)
  1452. - External filter API
  1453. - Addon trafficshape, URL, antiviral, HTTP cache filters
  1454. 27.01.2003
  1455. !!!!!!!!!!!!!!!!!!!
  1456. ! Tagging as 0.3b !
  1457. !!!!!!!!!!!!!!!!!!!
  1458. 24.01.2003
  1459. - Fixed to use INVALID_SOCKET instead of -1 (for Windows compatibility)
  1460. - Fixed problem with threading support under gcc. Now ODBC logging seems
  1461. to work always.
  1462. ! strncasecmp removed. Changed to use strnicmp for Windows.
  1463. 21.01.2003
  1464. ! 0.3 development frozen to only bugfixes
  1465. - bug fixed causing 3proxy to crash with NULL pointer reference on
  1466. transparent web redirection
  1467. - SQL support removed from default (gcc) compilation
  1468. 20.01.2003
  1469. + ODBC logging (yeah!). For a while it works stable only if compiled with
  1470. MSVC or Intel compiler.
  1471. 17.01.2003
  1472. - bug introduced yesterday into CONNECT code cleaned
  1473. 16.01.2003
  1474. + timeouts command added
  1475. 13.01.2003
  1476. - daemonizing code changed to work correctly on buggy libc (FreeBSD)
  1477. (pthread_* doesn't work after daemon())
  1478. - logging code changed to work correctly on buggy libc (FreeBSD 4.4)
  1479. (freopen "a" mode doesn't work as expected on stdout)
  1480. 12.01.2003
  1481. ! License is changed to prohibit modification and commercial use
  1482. 11.01.2003
  1483. ! All makefiles are made uniform
  1484. + Makefiles for Compaq C complier (Makefile.ccc) and Intel C Compiler for
  1485. Windows (Makefile.intl) added
  1486. + Makefile.msvc added for Microsoft Visual C Compiler
  1487. ! proxy.dsp removed
  1488. 10.01.2003
  1489. + Now checked to compile with Compaq C Compiler under linux on alpha platform
  1490. + logformat configuration command added for custom log entry format
  1491. ! Unix version changed to use gettimeofday instead of ftime to avoid -lcompat
  1492. issue.
  1493. 09.01.2003
  1494. ! Randomizer changed for proxy chaining
  1495. ! Code cleaned: Makefile, signed/unsigned conversions, etc.
  1496. ! Typo fixed preventing from compilation under *nix
  1497. 08.01.2003
  1498. + dateformat command added
  1499. ! Log format changed!!!
  1500. + Control for different operations (CONNECT,BIND,HTTP_*, etc) added to ACL,
  1501. see 3proxy.cfg.sample
  1502. 25.12.2002
  1503. + Proxy chaining now is fully operational!!!!!
  1504. + SOCKSv4 and SOCKSv5 client code added for chaining
  1505. + HTTP connect authentication added for chaining
  1506. + Parent authentication for HTTP proxy added
  1507. - Problem with "Connection: close" resolved (if HTTP server time outs or closes
  1508. connection).
  1509. 24.12.2002
  1510. + Proxy chaining works!!! (for a while only HTTP CONNECT proxies
  1511. are supported and no parent authentication). Logging is updated to
  1512. include number of redirections (parent proxies) in square brackets.
  1513. See config.sample for example of "parent" command.
  1514. 23.12.2002
  1515. ! Transparent proxy operations improved, logging corrected
  1516. + Added base code for proxy chaining
  1517. ! Redirection code rewritten
  1518. 23.12.2002
  1519. + UDP ASSOCIATE added (but not tested) to SOCKS.
  1520. ! Additional logging added to socks proxy
  1521. + Local HTTP proxy redirection added (for SOCKS).
  1522. 01.12.2002
  1523. ! closesock() problem _finally_ patched...
  1524. 30.11.2002
  1525. ! Makefile.unix corrected
  1526. ! Do not process $ in included files for 3proxy.cfg
  1527. ! Common error codes are unified
  1528. 29.11.2002
  1529. + nserver example added to 3proxy.cfg.sample
  1530. 28.11.2002
  1531. - fixed closesock() instead of close() call on 3proxy.cfg included files
  1532. for native Windows.
  1533. 27.11.2002
  1534. ! Minor changes in docummentation
  1535. + dighosts utility added
  1536. 22.11.2002
  1537. - Few problems corrected in logfiles rotation
  1538. 20.11.2002
  1539. - SOCKSv5 bind() reply corrected.
  1540. 19.11.2002
  1541. + internal resolver added to avoid usage of thread unsafe gethostbyname().
  1542. nserver configuration option added to config file.
  1543. ! HTTP proxy behaviour slightly changed to be more compatible.
  1544. 06/11/2002 3[APA3A]tiny proxy 0.2b Initial release.
  1545. Features:
  1546. 1. General
  1547. + HTTP/1.1 Proxy with keep-alive client and server support,
  1548. transparent proxy support.
  1549. + SOCKSv4 Proxy
  1550. + SOCKSv5 Proxy (TCP only)
  1551. + POP3 Proxy
  1552. + TCP port mapper
  1553. + UDP port mapper
  1554. + Threaded application (no child process).
  1555. 2. Logging
  1556. + stdout logging
  1557. + file logging
  1558. + syslog logging (Unix)
  1559. + log file rotation (hourly, daily, weekly, monthly)
  1560. + automatic log file comperssion with external archiver (for files)
  1561. + automatic removal of older log files
  1562. 3. Access control
  1563. + User authorization by NetBIOS messanger name
  1564. + Access control by username, source IP, destination IP and destination
  1565. port
  1566. + Access control by username/password for SOCKSv5 and HTTP
  1567. + Cleartext or encrypted (crypt/MD5 or NT) passwords.
  1568. 4. Configuration
  1569. + support for configuration files
  1570. + support for includes in configuration files
  1571. + interface binding
  1572. + running as daemon process
  1573. Unix
  1574. + support for chroot
  1575. + support for setgid
  1576. + support for setuid
  1577. NT
  1578. + support --install as service
  1579. + support --remove as service
  1580. + support for service START, STOP, PAUSE and CONTINUE commands (on
  1581. PAUSE no new connection accepted, but active connections still in
  1582. progress)
  1583. 5. Compilation
  1584. + Microsoft VC++ (msvcrt.dll)
  1585. + Windows/gcc (msvcrt.dll)
  1586. + Cygwin/gcc (cygwin.dll)
  1587. + Unix/gcc
  1588. Known bugs:
  1589. - udppm doesn't work if compiled with cygwin.
  1590. Cygwin doesn't support recvfrom()/sendto() on connected socket, so
  1591. recv/send is used instead... Not a big deal anyway.
  1592. - socks5 doesn't work with UDP
  1593. Not implemented yet
  1594. Planned for future release:
  1595. - UDP implementation in SOCKSv5
  1596. - Signal handling on Unix (for pause/resume)
  1597. - External filter API
  1598. - Addon trafficshape, URL, antiviral, HTTP cache filters
  1599. 06.11.2002
  1600. !!MARK IT 0.2beta
  1601. ! Using UPX to compress 3proxy.exe
  1602. 02.11.2002
  1603. + HTTP proxy now supports kepp-alive connections to HTTP server or proxy.
  1604. It dramatically decreases number of outgoing connections and amount of DNS
  1605. traffic.
  1606. 01.11.2002
  1607. + Now proxy can catch Web server style requests. It means proxy
  1608. may be used as a transparent proxy. Yes. It means you can redirect
  1609. SOCKS requests with target 80 to HTTP proxy.
  1610. ! Port check in ACL fixed
  1611. ! Now proxy catches redirection by changed destination IP or port. If
  1612. you redirect request to web server make sure it supports proxy style
  1613. requests (IIS and Apache do).
  1614. + HTTP proxy supports keep-alive. Now number of threads required
  1615. significantly reduced.
  1616. + HTTP CONNECT fully supported (both direct and redirected to another proxy).
  1617. Now you can use our proxy for HTTPs. Or for spam :) Don't forget to set ACL
  1618. for outgoing ports, cause now ports are not limited.
  1619. 26.10.2002
  1620. + mycrypt utility added for making crypted passwords in NT and crypt/MD5
  1621. ! ACL check for strong auth corrected
  1622. + HTTP proxy support for authentication (basic). Now you can use strong
  1623. username/password authentication with proxy module.
  1624. + Error messages added for HTTP proxy
  1625. 25.10.2002
  1626. + NT passwords are now supported in 3proxy.cfg
  1627. ! Public License Agreement changed to be more clear
  1628. 24.10.2002
  1629. ! Fixed handle leak because of missed CloseHandle for threads in Windows
  1630. 23.10.2002
  1631. ! Fixed POP3 proxy bug
  1632. ! Strong auth changed to allow rules with * for username
  1633. + MD5 crypt format passwords is now supported... Do we ever need DES?
  1634. I will not implement blowfish - it's huge and rarely used.
  1635. + More comments added to 3proxy.cfg.sample
  1636. 21.10.2002
  1637. ! Fixed strongauth problem - ACL was not checked for authenticated
  1638. SOCKSv5 users
  1639. 16.10.2002
  1640. + Added support for SOCKSv5 cleartext password authentication
  1641. + "strong" authentication is now OK (use it only for SOCKS)
  1642. + added "users" config file command to specify username and password. Only
  1643. cleartext for a while.
  1644. 20.09.2002
  1645. ! Minor improvements in socket operations
  1646. 17.09.2002
  1647. ! HTTP proxy changed to do not strip hostname from URI if target port is not
  1648. 80. It allows to redirect requests to another proxy as well as redirect to
  1649. different Web server via ACL. It will work for most servers (IIS, Apache)
  1650. if target redirected to non-standard port of Web server, but may fail in
  1651. some rare cases. Redirection to proxy should always work OK except if proxy
  1652. is on TCP/80.
  1653. + Added "redirect" ACL command. You can redirect request to another destination
  1654. if ACL entry matches (that is by target or source IP, target port, username).
  1655. ! Fixed documentation bug in 3proxy.cfg.sample ("authtype" instead of "auth")
  1656. ! Fixed bug causing server to exit in native Win32 mode if "service"
  1657. configuration option is not configured
  1658. ! Outgoing SOCKS connections are handled in common way now.
  1659. 07.09.2002
  1660. + added binding to external interface for outgoing connections
  1661. ! Fixed bug causing username check in ACL always fail
  1662. + Added ACL check for UDP map
  1663. + Added "Single packet" services to UDP portmap (-s switch). Allows unlimited
  1664. number of clients to be handled by portmapper for single-packet services
  1665. (like DNS).
  1666. 06.09.2002 3[APA3A]tiny proxy 0.1b initial release
  1667. Features:
  1668. 1. General
  1669. + HTTP/1.0 Proxy
  1670. + SOCKSv4 Proxy
  1671. + SOCKSv5 Proxy (TCP only)
  1672. + POP3 Proxy
  1673. + TCP port mapper
  1674. + UDP port mapper
  1675. + Threaded application (no child process).
  1676. 2. Logging
  1677. + stdout logging
  1678. + file logging
  1679. + syslog logging (Unix)
  1680. + log file rotation (hourly, daily, weekly, monthly)
  1681. + automatic log file comperssion with external archiver (for files)
  1682. + automatic removal of older log files
  1683. 3. Access control
  1684. + User authorization by NetBIOS messanger name
  1685. + Access control by username, source IP, destination IP and destination
  1686. port
  1687. 4. Configuration
  1688. + support for configuration files
  1689. + support for includes in configuration files
  1690. + interface binding
  1691. + running as daemon process
  1692. Unix
  1693. + support for chroot
  1694. + support for setgid
  1695. + support for setuid
  1696. NT
  1697. + support --install as service
  1698. + support --remove as service
  1699. + support for service START, STOP, PAUSE and CONTINUE commands (on
  1700. PAUSE no new connection accepted, but active connections still in
  1701. progress)
  1702. 5. Compilation
  1703. + Microsoft VC++ (msvcrt.dll)
  1704. + Windows/gcc (msvcrt.dll)
  1705. + Cygwin/gcc (cygwin.dll)
  1706. + Unix/gcc
  1707. Known bugs:
  1708. - udppm doesn't work if compiled with cygwin.
  1709. Cygwin doesn't support recvfrom()/sendto() on connected socket, so
  1710. recv/send is used instead... Not a big deal anyway.
  1711. - udppm works without authentication
  1712. Will be patched later.
  1713. - socks5 doesn't work with UDP
  1714. Not implemented yet
  1715. Planned for future release:
  1716. - Improvements to UDP portmapping
  1717. - UDP implementation in SOCKSv5
  1718. - Ident authorization
  1719. - SOCKSv5 password authentication
  1720. - Signal handling on Unix (for pause/resume)
  1721. - External filter API
  1722. - Addon trafficshape, URL, antiviral, HTTP cache filters
  1723. - HTTP/1.1 support
  1724. $Id: Changelog,v 1.154 2006/03/08 18:44:00 vlad Exp $