Changelog 63 KB

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