Changelog 63 KB

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