Changelog 64 KB

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