[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ A ] [ B ] [ next ]
Smart Cache has been moved to sourceforge.net. Stats: 31 (+2)
subscribers, 46 (+2)
Yahoo! mailing list
cacheobject.genTMP() method made synchronized. This MAY fix some troubles in Windoze.
Do not convert string to lowercase when doing case-insensitive redirection or rewrite.
Remove all up levels of empty directories during GC.
Enhanced Smart Cache repair utility, Chapter 11. NEW: default type can be now set, mime table can be reset to empty, fixed argument processing for -i, can translate & to &
Smart Cache now accept SPACES in URL. There are not (yet?) converted to %20 before sending out.
Changed compressed message, log analyzers needs to be updated.
UI: new command ui_searchcache_minage == minimum age of search cache
ui_searchcachefactor changed to ui_searchcache_factor
reset chunked encoding and ims status when sending object from cache if refresh failed after receiving headers from server.
build system: when generating scache-latest.zip, remove not changed .class files - allows faster beta releases
Thanks to Karl-Heinz work, Smart Cache does clean shutdown on CTRL-C/kill process. You need jdk >= 1.3 for this. Still jdk1.1 backward compatible.
uses line.separator when generating logfiles. Logfiles on windows machines should have correct line terminators now.
build system: generate scache-latest.diff.gz file by hand, not via broken CVS diff
Documentation: added example large cache configuration
stats.py: added ignore offline mode switch
stats.py: increased max. time difference to 3m+10s
mgr.save() is now synchronized
reinit dircache hashtable when idle (frees memory)
ignore empty request line (like Apache); needed for fixing bad POSTing clients on keepalive connection.
UI: send expires header in the past in reply
Some configuration file directives were renamed to be Squid compatible. Stats:
announces subscribers, 44 (+11)
Yahoo! mailing list
Important bug fix: cacheable has priority over cache-private
UI: escape #, change word wrap in BG quote.
-fakegc reports how many bad files was deleted from cache
Report network error when headers read failed.
Quick abort config changed to: quick_abort_min, quick_abort_max, quick_abort_pct
Timestrings, Section 7.12 supports unit 'f' - fortnight
Timestrings, Section 7.12 supports long titles like minute, hour, week, day, year, second
reference_age is timestring now
min/max_ob_size, blocksize, avg_dir_size, cachesize are Sizestrings, Section 7.13
corrected printDelta values for months and years.
flag_check_interval is timestring
port renamed to http_port, nocaching renamed to no_cache, force_ims_on_reloads renamed to reload_into_ims, cache_swap_low/high, cache_size to cache_swap_size. (like Squid cfg)
report transfer errors on direct request to client
reuse keepalive connection when direct request has no data from client
min_download_size for dm online hook
disable keepalive correctly after trace and options reply
handle io errors when loading body of non GET requests correctly
New options for limiting request/reply size: reply_body_max_size, request_body_max_size, max_cacheable_size.
fixed error in webconnection.close()
stop on SC generated errors during refresh object
disable client keepalive on failed POST
do not Exit if main directory can not be created, switch to read-only mode instead.
do not Exit if UI port can not be bind, turn UI off.
stat.log file has now also DIRS counts
Python script for
calculating cache hit stats.
cacheroot renamed to cache_dir
GC: do not crash on cachesize 0
UI: escape backslash (Karl-Heinz); needed for Opera browser
Source code: Removed throws IOException from scache.main and mgr.go (it was not needed)
possible touch object when generating 403 too large reply
Selective caching based on existence of Vary: HTTP/1.1 header. cache_vary
handling of Expires: header changed to method described in RFC2616 section 14.21
announces subscribers, 33
Yahoo! mailing list
subscribers. When you are changing timeout configuration, be sure to add 's'
to it, because Timestrings, Section
7.12 defaults to minutes.
removed keyword redirect.
new keyword redirect_file, reads redirects from file.
new keyword rewrite_file, reads rewrites from file.
UI: new trace options: redirect, rewrite.
UI: visible_link is shown in UI welcome screen.
UI: prev/next in quotes
UI: handle all numberformatexceptions
UI: Some strings in HTML gets quoted
Generate Etag on auto-decompressed data.
Fixed VSB which prevents from sending Etag to client in most cases. SC used Etag only internally.
Zero sized reply from server is now handled as error.
Allow client side persistent connections after generated errors.
Allow client side persistent connections after 304 reply.
Send expire header on 304 reply.
If-none-match from client works again. (forgot to re-enable)
Server full reply code shown when tracing.
Retry once every failed request or connection. Helps with servers which are all the time overloaded.
Exit if store directory can not be created.
-gc switch has timestring argument
timestrings now supports seconds 20s
improved check for using root as cachedir
No lie in -fakegc intro text. Bad files Will be deleted from cache.
generate_lastmod changed into boolean value. Value 2 brakes all browsers on the Earth.
Close file after sending it to browser (new bug from 0.82)
Close file after serving HEAD request (historic bug)
New section Request remap/redirecting, Section 7.11
Fixed crash when access logfile can not be created. (new bug from 0.83)
Removed forgotten debug prints.
Contributed documentation: How to run it on Netware 6.
Adding of Proxy-Connection: headers when gatewaying server response to client; we are turning all responses to HTTP/1.0.
Private documents may not be cached. cache_private
Send expires info on 304 reply.
Do not send stale cache entry if hide errors is false.
Supports Cache-Control: header with options: private, no-store, no-cache.
check for HTTP/1.1 and enable KA instead of checking for HTTP/1.0 and disabling.
Support for 100-Continue.
Improved support for 204-No content.
Fixed Debian packaging: delete logfiles on purge, purge only if not /usr/bin/smartcache exists, new logfile for weekly gc, corrected bad filename cookies.cnf.
added first historical SC announce from Netmag 13/1998 to /czech/.
inputtimeout renamed to client_timeout. Changed from integer to timestring.
proxyreadtimeout renamed to read_timeout. Changed from integer to timestring.
keepalivetimeout renamed to pconn_timeout. Changed from integer to timestring.
New configuration variable request_timeout. Also timestring.
Close server keepalive connection when ignoring body of reply.
default_forward_for is now unset by default.
max_aborted_transfer_time made timestring.
remove Cache-Control: from response as well Pragma: no-cache.
0.85 22.3.2003 There are 19 people subscribed to mailing list. This release fixes remaining keepalive connections POST bugs.
Fixed NPE in webconnection.toString().
disable input keepalive after blocked POST request.
Use standard keep-alive factory for direct requests.
0.84 3.3.2003 There are 11 people subscribed to mailing list. This release fixes many 304 reply handling bugs, some very old.
Update ETag info on 304 reply if possible.
Allow client side persistent connection alive after 304 reply.
Do not update Expires: info on 304 reply, if not sent by server.
Generate our headers on 304 reply instead of using headers from server.
Fix bad headers on 304 reply from Microsoft IIS servers.
-fastrefresh sets Max-Age: to 3 day.
UI: added some missing titles.
UI: Smart Cache Loader screen has bgcolor.
Show URL on generated errors.
GC: do not apply multiple modifiers to object when checking for penalty.
More intelligent check for write able filesystem.
New manual section Administration of large cache, Section 9.3.
0.83 16.2.2003 Turbo version. I have created mailing list for
scache, you can read more information
here. Come and joins
Support for keep-alive connections on input side. This makes sending cached data to browser 100% faster. Offline browsing goes turbo.
TCP nagle alg. is disabled as says wise men on w3c.
improved log synchronization on log files.
max_aborted_transfer_time is now floating point number.
reference_age is now floating point number.
send reset on full cache.
File/directory clash is now handled correctly when exporting data.
Manual updates. New sections: for admins, for hackers.
New manual section Choosing a good cachesize, Section 7.1
0.82.1 Bugfix for customers only
Fixed NPE crash on unknown hostname.
GC: no infinite loops on lopsizeinc=0 or sopsizedec=0
GC: null modificators (i.e. +0 *1 -0) are detected and ignored.
UI: offline support buttons are now switchable
Support for HTTP/1.1 persistent connections on output side. Browsing performance increased! Some code taken from BSD copyrighted Rabbit2 proxy server. Many thanks to Robert Olofsson. )
values liked 1d can be used in refresh patterns and export times with decimal fraction part.
print notice when refresh pattern gets ignored.
trace_keepalive config keyword + UI options for tracing keep alive connections.
new option keepalivetimeout for enabling them.
https now works even if http_proxy is defined but https_proxy is not.
Console loglevel can be changed in UI.
remove end file separator from target directory when exporting.
fixed old bug from 0.54 version, which causes that incorrect directory structure was created by export function.
gcloglevel configuration option for making reports from garbage collection less verbose.
Example scache.cnf has a nice table inside - choosing directory swaplevels for cachesize.
Minor improvement in GC stats reporting.
Test for using root directory as cacheroot somewhat improved. Protect Windows users from doing something stupid.
download_machine_ctype_ignore Turns off ctype dmachine hook for specific URLs.
somewhat reduced memory requirements during GC.
-fakegc do not deletes files on = gc rule.
GC: objects with Etag: header ARE checkable
GC: new redirect_penalty option in gc.cnf
UI: loglevel can be changed.
UI: added flush logs command.
combined log file has missing " after user agent. (Klaus Schirmanns)
UI: fixed crash when search depth is not a number.
combined log file do not have doubles \n (Klaus Schirmanns)
UI: directory depth after search is set to last depth used.
fixed NPE crash on BAD method.
fixed cleandir to work correctly in Linux and Windows. Worked ok only on OS/2
Try to rename files when there is directory/filename conflict.
search cache feature, config keyword ui_searchcachefactor. This makes searches on large caches more useable.
New manual section Configuring refresh patterns, Section 7.2
410 is also httprc for page deletion.
Cache also 414, like Squid.
Debian packages are also distributed.
GC summary report contains also median time mark.
building native GCJ version do not require jdk
first rule in fail/pass was matched insensitive
fail/pass not working (bug from .78)
Smart Cache now sends Content-length: 0, where needed
new config keyword listenbacklog, defaults to 511
default number of clients increased from 25 to 30
GC: do not allow average dirsize < blocksize
report correct count of unlinked directories (updirs included)
GC: deleted directories during GC delete pass are now correctly counted
Delta display supports Months, Years.
Trace on/off configurable in UI
New configuration keyword loglevel
Speed ups by reverse regsearch on fail/pass
on conflicting filenames, use random numbers, not loop over long list of possible list of existing filenames. Really big performance improvement for directory with about 1000 files with conflicting filename (i.e. Google).
look for ETag and return 304 if exists and connection failed.
force_ims_on_reloads when doing forced refresh do not add IMS header.
Fixed some syntax errors for making GCJ happy.
Debian: smartcache as GCJ-native can be build from sources. Works great and fast.
New manual section: Proxy cache Benchmarks, Section 9.2
trace_url shows also request protocol
trace_refresh shows expire date when not reached
You need to change maximum_object_size in gc.cnf to bytes.
GC: average_directory_size do not includes size of .cacheinfo now. .cacheinfo files are sized using blocksize alg. as all other files.
GC: minimum_object_size (idea from Squid)
GC: maximum_object_size is now in bytes, not KB as before
GC: small_object_penalty syntax extended and changed to be like LOP
GC: cache size is now computed more correctly nearly 100% exact. Only one case is not handled and can not be: some filesystem /ext2/ preallocate blocks for files.
GC: use long integer instead of int
GC: improved after scan cache statistics
agent_log, referer_log feature removed
new common/combined log file format (features correct httprc and bytes count)
-nolog command line switch
auto_decompress can unpack 'deflate' encoding (used in IIS)
Manual: new section How garbage collection works, Section 7.3
Manual: new section Smart Cache vs Squid, Section 9.5
Manual updated: section Choosing Java version, Section 3.2
new defaults in DM content-type hook
short refresh patterns are no longer allowed
do not print to console that dirs are GC's - confuses users. There are freed.
some hardcoded defaults was retuned
Major update of Debian packaging. Features: debconf support, correct file and dirs perms., do not allow root to run system-wide smartcache, support for rotated log files, configuration generation.
New command line switch -notrace
-local switch now sets a maximum possible expire time (benchmarks results increased by 5%)
note: increasing internal buffers from 4096 to 8192 lowers performance.
note: slower when compiled with javac -O
log file format chooser log_common true/false
dmachine_offline_url_mask command gives content-type hooks priority over URL hooks
UI: port of main server is shown
log file buffer increased to 8K.
UI: Interface for Download machine
Download machine can be hooked to content type download_machine_ctype_mask
-ui_port runs UI on alternate port
download_machine_mask renamed to download_machine_url_mask
Win: VBS startup script
UI: loader also accept empty string as default loader.cnf depth
UI: end of queue messages displayed
UI: shows which URLs are removed from queue
No more duplicated entries in DM queue file
Trace messages are now printed correctly with full URL
Download machine hook can now ignore some URLs. Try download_machine_ignore *sourceforge*
UI: File date is shown instead of mime type
UI: bindaddress is shown
UI: show loader queue is disabled when there is no loader support
GC: protocol URL matching works, see example gc.cnf
GC: fixed typo in gc output
new structure of .cacheinfo files (version 4). Now it supports ETag: header. Existing one will be converted when used.
support for Etag and If-None-Match
added some new methods for webdav/deltaV. Not yet working due to lack of documentation.
Do not use IMS when loading Missing objects from cache
HEAD request no longer fails on object which is not in cache
repair handles files with .gz extension better.
when generating fake user agent add space after : in header
Fix for refresh and no if-modified-since header. Browser should get object and not 304.
appending to existing via: header instead creating a new one.
several new Smart Cache command line switches, Chapter 8
cache searches are less CPU intensive
fixed problems when auto deleting of patterns was too active on refresh_patterns
added support for seconds in delta reporting engine
Google searches have .gz when gzipped
max_clients renamed to max_connections
UI: escaping " char.
Fixed trace output from refresh engine when forced refresh is being ignored
UI: do not display choices for loader if loader is not configured
Fixed typo in regex matching
Fixed problem with netmasks/n when n mod 8 != 0
Fixed problem with cfgdir and regex_fail
-direct switch works again (broken in .69)
UI: Added cache-control: no-cache
UI: removed no-cache from redirects to good UI hostname
Changed error message: too more clients -> too more connections
send_from_cache now handles IMS requests in the correct way (Needed for Opera5)
Redirects to UI generates now last-modified-date in the past
summary: Opera5 now works with redirects generated by SC.
UI: announces URL when adding it to loader queue, saves 1 go back.
adding proxy-connection: close to all documents flying through.
changed startup messages: host OS -> filesystem
updated troubleshooting section
Auto - removing not needed rules from fail.cnf.
Removed anti windows sections from manual
Fixed typo in GC
Redebianized again, runs from JAR file now.
Do not use block list whew accessing UI.
append_via feature removed
updated faq, buglist, limitation list.
Tracing sign in UI reversed.
Removed Unix path in alive flag in ZIP archive
added support for command line arguments in scache.bat
Periodic running of GC is possible -gc [minutes].
IP access rules can now use submasks. See Proxy access control, Section 9.11.
You can get CVS snapshot, see Addresses, Section 6.5
Bindaddress is announced on startup.
proxyvia feature, like in Apache. Feature sponsored by Deflora CE. RFC 2616 14.45.
https_proxy allows security proxy chaining.
When getting gzipped HTML, add .gz to local filename
ansi_init patch in os2 .cmd file for eCS (Dag Bjerkeli)
loader_add_reloads renamed to loader_add_refresh
full_referer_log set to yes/no in default sample cfg
garb. collection section in manual improved
Removed HTML doc from tar
cache_sensitive_matching in gc.cnf accept yes/no values
Builtin GIF can have non transparent color. Thanks to JMS. builtin_gif_color r g b
Number of empty removed dirs is now reported during cleanup.
fix for URL with no * in fail.cnf
added some missing <title> to GUI responses
removed debug output from regexp engine
do not use download machine for downloading from ui_hostname
check if we are using UI with right hostname, SC needs this for special UI request handling.
add_missing/reload feature disabled if ui_port is not defined
quotes added to GUI
errordocument 0 sends empty HTML page if URL ends with .js, otherwise it sends 1x1 transparent GIF
Errordocument feature ! removed
Expire header added to UI redirects
Fixed problem in UI with browsers which sends a overkill of HTTP headers (LYNX!)
Fixed problem with directory browser when directory name contain special characters, such as %
Removed crash when port number is out of range.
Removed .sources from zip archive.
Removed .classes from tar archive.
Turning on/off offline support in GUI fixed.
Updated copyright file, added more contributors to it. If you are not in this file and want to be there, send email.
Directory browser is nicer.
Fixed rfail.cnf example
Added .tar archive to distribution (you can build Debian package from it).
Added partial support for Cache-control: header, fixes reloads in Mozilla and newer MSIE. (Achain firstname.lastname@example.org)
URL parser work when protocol is null
Directory was not saved after object deletion
Regexp substrings are now implemented correctly
UI: File deletion.
UI: Directory deletion.
UI: Queue display do not show URLs.
UI: Search form do not works in Netscape and Opera
UI: Search dialog for Cache content browser and search results.
Setting auto add to 0 disables also confirmation for refresh-watch.
Changed message 202 for DM add to queue.
When using UI do not go through http_proxy. (avoids infinite loops)
UI uses 127.0.0.1 instead of `localhost`
User interface has a simple welcome screen when browser is pointed to it.
Port numbers are printed on start for both normal and ui ports.
Configurable depths for fetching: loader_add_depth and loader_refresh_depth
Unix scripts added from Debian package
UI: Cache content browsing
UI: Directory searching
UI: Loader queue browsing
UI: Loader queue deleting
Sample cnf files has UI enabled by default
URL without port number http://www.here.com:/index.html works
Support for offline marking pages for batch refresh/download. See @20 in scache.cnf and ui_* also. I am interested in some feedback on this feature.
removed Zbynek Pospichal's CGI POST workaround
better messages from trace_refresh (still bad when parent proxy is not used)
Download machine integration. See download_machine_queue_file and download_machine_mask.
better messages from tracing refresh engine
fixed reloading configuration problem if -cfgdir is used
stack dump removed from can not bind error message
Most wanted feature .... REGEXP SUPPORT .... It looks like this is matches some regex (like .*\.gif). If some regex expert can look at this.
Czech documentation about Smart Cache & MSIE install
scache.bat gc.bat repair.bat
in trace dumps < and > was reversed
fail trace message changed
true/false is allowed in on/off options
Removed very old debug message: Cleaned empty dir
Infinite looping when doing GC with multiple passes
Messages from garbage collector improved and fixed
Added refresh engine tracing
Added quick abort engine tracing
Added cookies tracing
minor codebase cleanup
increased default cache size from 50 to 100 MB
blocking https://site/* works
-cfgdir fixed (Bastian Maerkisch)
Adbusters support removed
conversion code from old SC 0.20 and 0.30 removed
fail_trace renamed to trace_fail
removed keywords: fail, pass, allow_cookies_to, wafer
new keywords: trace_url, trace_request, trace_reply
in on off options words on/off yes/no can be also used
when auto_compress is activated. Smart Cache will ask server to send compressed data.
Added 4 missing mantras from Sri Isopanishad
Smart Cache do not works when compiled with jikes on some JVMs
javac made .class files are now included in archive again
Cleaned -cfgdir handling in sources
cacheroot can now have spaces inside (needed for Mac)
alive flag is now deleted on normal cache shutdown (Hartmut Krafft)
Fixed typo in info message (Hartmut Krafft)
Added info for Java 1.3 setup for avoiding Java DNS caching bug/feature, Section 12.1 (Monika Schilling)
Fixed Modified After Load errors on FAT file system (Monika Schilling)
Fixed linger option (Roman Trunov)
Fixed export bug (Polgar Istvan)
Stack dump is no longer printed when server port is in use
Fixed repair FAT rounding bug, thanks MS for nice bug report.
Minor source cleanup
Prepared for future regexp integration
alive_flag This file is periodically touched when server is running.
nocompress Allows add some extension which will not be compressed (.rm .ram .jar .tgz) this is necessary because many www servers sends bad content-type for these files.
auto_compress 0 should not compress any file(s)
fixed access log * (new bug from 0.50)
increased default gc array size in sample gc.cnf to 3000.
synchronized gc.java and mgr.java filename generator
Included fixes from
auto_decompress 2 - ALWAYS decompress. Useful when showing html source within Browser (Some Browsers are showing source compressed).
auto_compress x, values for x >512 useful if some files should not be compressed.
OS/2 or Windows do not like character '|' in filename. Changed to '!'.
Makes generation of localnames for compressed files smarter. Compression code should works OK.
Flush logs when doing immediate shutdown.
Log file format access.log has been changed to be more "standard".
Fix for scache.main(null);
Redirects and Expire headers have now their separate settings in *refresh_pattern. You can set special refresh rate for redirects. TODO: cacheobject.needRefresh may be slightly smarter, ideas?
Added nice quotes from
Isopanisad. Just about 3K.
FIXED (??) generating local filenames when auto_compression is enabled.
Fixed generating local filenames when auto_compression is enabled. No more .gz.gz.gz :)
When killing old Expire header, generate Pragma: no-cache. PNC header can be killed with pragma_no_cache later.
Smart Cache will refuse work if data directory is set to root directory. (for example c:\ )
All numbers in (default) refresh_pattern are floating point now. Allows better fine tuning.
When checking Expire:, Date: from remote server is used. Fixes problems with difference between local and remote clocks.
pragma_no_cache 4 Do not cache 'uncacheable' redirects. This may fix some troubles with it. More investigation or redirects caching is still needed.
SC users OS statistics (taken from bug reports). 1- OS/2, 2- OS/2+Win, 3- (big space), 4-Windows, 5- (space), 6- Linux. I do not know what cache Linux users uses? Maybe Squid or wwwoffle.
If someone wants to add optional regexp support, library from http://www.cacas.org/java/gnu/regexp/ may be useful.
I am out of diskspace (see bugfixes in 0.47, 0.46, 0.45 :) ). Problem is solved for some time -- I have added compression support. It compresses only mime types text/* (This should be enough for preventing SC from compressing JPEG, GIFs, MP3 and so on). When I compressed entire SC directory about 50% diskspace was saved. It depends on number of images in cache.
Repair do not crash on directories without read access.
Out of diskspace detecting problem is solved. Added flush() before close().
Auto-Compression support. See Data compression support, Section 7.10
Repair has -w (force write) switch. Smart Cache repair utility, Chapter 11
Repair has -c (compress) switch. Smart Cache repair utility, Chapter 11
New structure of .cacheinfo files. Smart Cache will convert them when used. Smart Cache loader 0.18 will NOT WORK with them, use 0.19.
Support for Content-Encoding header. This removes problems with www.finanztreff.de. Garbage on the screen was gziped data :)
Turns off access.log when out of diskspace.
When caching URLs like http://www.metalonline.com/../../../../../../../../azovstal/index.htm, cached files gets written in directories upper that CacheRoot. Reported by Dmitry Ban. This closes a possible security hole.
Added some questions to FAQ.
Cleaned parent proxy cache select code (side effect from L.B. patch).
For people who do not remember syntax of -export command like me, its two arguments can be used in any order now.
I have received a new keyboard! (all keys works!). Also I have got a cool ZyXEL U-1496 (V32bis) modem with display!
Works better when out-of-diskspace.
Reduced number of syscalls.
Clean directory do not crashes when cache directory is empty.
Corrected regexp.toString(), fail_trace works better.
LRU is touched when importing data.
RC 408 is temporary server error.
no_caching works with Client/Server Pragma: no-cache headers.
Negative caching of some 4XX server replies. Unlike Squid, this will never overwrite good cached page, (if does, report it as bug).
Data from Smart Cache can be exported see Smart Cache command line switches, Chapter 8.
refage < 0 - disables refage check.
maxobjsize < 0 - disables maxobjectsize check.
If fail/pass do not contain any '*', it is added to end.
-version command line switch (Helps Smart Cache Run).
This another very quick bug-fix release. It looks like 'Smoke test' on Internet is required before releasing, but I do not have even modemoid. Also my keyboard looks like it will be dead soon.
You can now start to use referer_log without problems. It is a good thing. Nobody want to contribute an icon for Smart Cache?
Fixed crashes (from 0.43) or corrupting Referer: header bug (from 0.37) when fake_referer is not used and referer_log is used.
Removed NullPointerException ignoring in main loop. It there is an error, request will still fails, but you see the exception. If you see a NPE it is a SC bug and report it.
As expected, 0.42 have some serious screw-up in Referer: header handling. This is a bug fix release. Thanks for all bug reports. It is a simple: If I do not know about a bug, I can not fix it. It looks like Smart Cache is most popular OS/2 software in Germany :)
I have received a working 486 board donated by Monika Schilling. Java compiler runs much (2-3x) faster, Thanks a lot!
If you never read Bhagavad-Gita or even thinking about purpose of (your) life. Bhagavad-Gita is a very good starting point.
TODO list revised to version 2.0.1 and added priority to it. Nobody wants to donate a working KEYBOARD? :)
Fixed bug (new in 0.42), which prevents referer_hack from working, it corrupted every Referer: header instead.
-import should work under non-Unix OS also (Windows, OS/2).
corrected some bugs in import, import sometimes fails if object is already in cache.
import checks if already loaded object in cache is valid.
File system check must be performed before import.
Errors are displayed even in load-headers HTTP transaction phase (was only in connect phase).
When announcing invalid OBJ reference, SC will print why reference is invalid.
Removed setDirty() call, used direct variable access -> faster execution of non-JIT JVMs.
Remote server errors on refresh (RC) are also printed.
Better error handling when multiple times loading the same URL and some of loads fails. I hope, that now there are all multiple-load errors handled correctly.
Blocked requests are counted as `good` when computing Smart Cache hit ratio, because they are also handled by Smart Cache.
New keyword flag_check_interval. How often will Smart Cache check for presence of immediate_shutdown_flag. Using this type of shutdown is better than killing the task. See Stopping Smart Cache/Shutdown flag, Section 5.3. This is most requested feature from Czech users. (Non-Czech users most often requests JunkBusters.)
New command line switch `-direct`, if used SC will not use http_proxy.
New command line switch `-http_proxy`, overrides http_proxy in scache.cnf.
referer_hack do not longer accept fake URL.
New keyword 'fake_referer' for setting fake Referer: HTTP header.
Import will refuse to import directory with names without '.'
Data from another Smart Cache can be imported, see Smart Cache command line switches, Chapter 8. Import makes checks if it is really SC data directory (subdirectories must be numbers).
New keyword 'fake_cookie', used instead wafer.
This version was not tested as much as 0.40. If you find some fatal bugs, send a report and use old 0.40 (see README for list of URLs). 0.40 has no known fatal bugs.
Host names are no longer case-sensitive, when checking in cookies filter or no_proxy.
Better detection of deleted directories (by hand), when SC is running. Now it works under Linux better.
.cacheinfo files are checked for write access.
Import can works also on read-only filesystems.
Timestamp is changed after import (by copy), but not after move.
Import: clashing file name generation corrected.
Import tries to rename file first (preserving last write date), if it do not work, it will try to copy it.
Better error handling when importing.
Repair now also deletes empty directories.
Generating of error messages is now faster - green variant. (Creates less Java objects on heap)
Linger option is more friendly to OS resources.
Reordered generated headers for avoiding browsers bugs.
Access.log should have correct timezone now (DST is supported).
filesystem check is now always performed.
Non parseable Expire headers are not ignored.
Distribution classes are no longer hashed by HashJava.
External mime file can contains # comments.
No crash on startup with newer beta versions of Kaffe JVM, but GC DO NOT WORK in Kaffe.
Request will be processed even if client send bad data format in headers.
Check if we get negative Content-Length.
Removed trailing / or \ from cacheroot directory, if user uses it. (Fixed problems with OS which do no like two // or \\).
Backslash test is performed in cache data directory, not from global OS setup (File.separatorChar).
Do not allow swap_dir1/2 to be < 1.
CRC32 directory hashing function is simplified (read: faster) and works ok when swap_level1_dirs > swap_level2_dirs (read: brain-dead algorithm was replaced with dumb algorithm).
-rebalance switch also kills empty directories.
Much improved this documentation. There will be a lot of English grammar mistakes. Included in main archive because Homepage may be unavailable/outdated.
Support for special HTTP/1.1 methods: PUT, OPTIONS, DELETE, TRACE. WWW publishing via HTTP1.1 should work. (I can not test it, I have no such program.)
Support for SSL/CONNECT gatewaying. These requests are handled directly and not send to parent proxy server (http_proxy). If someone needs this, send me mail and I will add security_proxy in next version.
New keyword allowconnect for allowed SSL/CONNECT ports.
New keyword fail_trace for tracing which mask blocked requested URL.
New keyword visible_link for setting Smart Cache's homepage link in generated error messages. (You can direct it to Hobbes for new version checking via Search).
New keyword mime_types for using external mime table, when Importing files to Smart Cache, Section 7.6.
New keyword stat_log logs statistics to file.
New keyword append_via can disable appending "via Smart Cache 0.XX" to your User-Agent: header. If you are not using fake_user_agent this will (somewhat) protect your privacy, because nobody will know, that you are using Smart Cache. I hope that this also disables problem with slightly modified pages without having to use fake_user_agent. See Troubleshooting, Chapter 13.
Smart Cache repair utility, Chapter 11 significantly enhanced.
More checks when testing cache integrity (checking filesize and date).
When running GC/repair we will not touch any file, which are less than 6 minutes old (they may be in use).
-p command line switch. See Smart Cache command line switches, Chapter 8.
Return code 307 is now cacheable.
Check if cacheroot directory exists and exit if it can not be created.
You can use hardcoded 1x1 GIF when using ErrorDocument 403 0. Use it if you can, it is much faster than sending redirect.
Added bunch of startup quotes from Bhagavad-Gita.
Load failed error code is 500 instead of 400. I do not know why many caches uses 400, it can confuse some non-interactive clients.
Every Pragma header is now considered as no cache request.
SC will not crash when gets incorrect port number (not a number) in request.
New keyword clear_flags_on_start. Should be any flags files deleted when starting?
Striping Pragma and Expire headers. Discovered by Sergey Levin, when looking on packets. This helps people, who use this cache only as front-end cache to browser cache. Smart Cache removes bad headers and pages will end in browser cache. This kind of use was discovered and reported by Martin Konicek. He also writes utility for running Smart Cache in Windows/systray.
When checking for already matched rule, Smart Cache displays already matching rule.
SC always display delta time, when URL is refreshed. If page do not have Last-Modified date, time of URL receive will be used.
Partial object downloads are now included in bytes stats.
Failed object loads are announced with exception info.
New command line switch '-repair' it calls recursive repair on data directory.
0.41 8.9.1999 (Limited release)
Changed from FREE software to
Source Software, which is better, because many crippled demo
versions claims there are also FREE software. License is still GPL.
English version of this documentation was checked with ispell -d british.
GNU Debian/Linux binary distribution. (.deb package) can be built from Unix sources. Not tested too much and is very primitive.
Configuration files can be read from alternate directory -cfgdir command line switch. Needed for better UNIX support.
Smart cache can now also operate on read-only file systems, such as CD-ROMS or HPFS drives under Linux.
Smart cache will test filesystem if is read only.
Cacheroot can be changed by command line argument -cacheroot <Directory> [ swap_dirs_1 ] [ swap_dirs_2 ]
Smart cache can reorder cached files after changing swap_dirs. -rebalance command line option.
repair has now better built-in MIME table.
repair has now -q command line switch. Prints less messages.
repair can read external (Unix style /etc/mime.types
format) MIME table.
rewrite command line handling. It is possible to use more than one command line option.
directive reload_block_files is now obsolete. Changed files (except
scache.cnf) are now always reloaded.
-import <Directory> command line option for importing data into smart cache directory structure from external sources. Place downloaded data from web servers (for example with some web grabber) into some directory for example /tmp/www, where servers will be stored in subdirectories such as /tmp/www/www.linux.org and import them with java scache -import /tmp/www
Distribution archive for 0.39 contains classes from 0.38 not 0.39.
Reloading of block files now works without any side-effect.
experimental GUI removed. Slow, resource hungry and prevents Smart Cache from running when no X-server is available. Never again.
cookies block list can be also loaded from file allows_cookies_to_file
Warning when config file is not found
This document has been revised by Luc Le Blanc, thanks for it.
In BUGS file is documented internal Java error. Smart Cache will report it, send these reports to SUN (not me!).
Corrected web forwarder, which doesn't works since changes in 0.37. Why Nobody reports it?
Socket Linger option (maybe) doesn't works. It's hard to test it without LAN or WAN.
Support for Expires: headers generated by IIS 3/4 servers, which violates HTTP protocol.
Repair.java program for broken .cacheinfo files (no docs, src only) has been improved. Use this program for importing files into Smart Cache file system.
Implemented OUTGOING cookie filter as requested by Klaus Nitsche. See cookies.txt and Have fun.
Wafer option (fake cookies)
Experimental GUI option -gui (unfinished)
Simple requests and bytes Statistics.
Refresh time can be also printed in hours
new keywords pass_file, fail_file. Smart Cache can now load these directives from external files and when this file is changed, Smart Cache will detect it and reload it - no need to restart it as before.
Fixed case-sensitive bug in the regexp engine.
Another bug gets (at least) documented. Read BUGS.
Bad content-type header don't crash whole request.
Default mime type is text/html (like in NutScrape).
Lord Vishnu is no longer default in fake_agent.
Repair program for broken .cacheinfo files (no docs, src only)
password protected documents can be cached
Smart Cache now displays error (instead of crashing) when talking to HTTP 0.9 server. (untested)
fake garbage collector (run via -fakegc). No files gets deleted.
You may turn on case_sensitive URL mask checking - this considerably speeds up garbage collection. Profiling GC on my 386/40 was a PAIN! For your information -- It takes about 7 hours.
Delta time is displayed in days for better readability if greater than 2d.
Added socket linger option for better support http clients (like my web-grabber). I didn't test it since I'm more than year unemployed and don't have LAN at home.
License has been changed to GPL! Share and Enjoy!
Corrected HEAD requests handling. Message body is not sent anymore. Some stupid web grabbers were too confused. Yes, WGET again. Because I'm tired with WGET, I started coding my own web grabber. It's in a very early stage of development (not yet working), but will probably be the most configurable web grabber ever seen.
No_proxy now case-insensitive.
no_proxy localhost will no longer match localhost.xxxx.com
Log writers are synchronized, so logs are now consistent.
Some internal optimization tricks based on the Java-Library source.
Registration keys are no longer needed.
Last version check and Ad Busters removed. The server side needed for this stuff is not online.
Smart Cache crashes less often on bad config file. Sometimes even prints the number the offending line!
Support for agent_log and referer_log. Happy logging and forwarding.
Directive full_referer_log (0/1). 0 produces a more compact log, referer is logged only when servers are different. So you can record your path in cyberspace :)
no_proxy, fail, cacheonly, nocache can have more than one argument. Arguments are separated by SPACES.
Authentification in url ( http://looser:email@example.com/ ) now works properly.
Unknown or unsupported protocols (FTP, gopher) are now forwarded to your http_proxy (if you have one) and received reply is, of course, cached. So happy off line FTP sites browsing!
Default filename (.welcome) can be now redefined. UNIX users may like this.
When generating filenames, numbers are inserted at beginning, not end - programs may now still recognize file based on file extension .
-local command line switch. Forces Smart Cache to run in local mode. Smart Cache will not try to connect anywhere.
New garbage collection action '='. File will ALWAYS be removed if older than X days.
urlmask ftp://* =7
Removes all files received by FTP when not used in 7 days.
Due to bug in stupid Wget, I added correct handling of requests with #. No more multiple downloads with Wget.
Message cleaned empty dir is now sent to stderr. Less garbage in stdout.
Some less important internal changes (i already forgot them).
referer_hack has been extended and can now send USER-specified URL instead.
Error_document also supports return code 400 (proxy load failed).
New feature Fake_user_agent used for making WWW logs more interesting. Note: via line is not added to string specified.
Some internal optimizations for speed in cache engine. GC engine is still not yet optimized for speed (because I run GC only about twice a month).
Support for bunch of new protocols such as hTTP, hTtp, HttP, ...
Handling errors in multiple downloads of the same object is now smarter than before. (I wonder if anyone will even notice it).
New special feature - referer_hack. With this feature you can (somewhat) protect your privacy and fool servers that check the Referer header in requests. Nice side effect of this new feature is that if you use something like this:
Redirect http://my.homepage/* http://members.xoom.com/myname/*
your images will be displayed. Default value of referer_hack is disabled (zero).
Small read.me file added to distribution archive.
Improved descriptions of commands in both configuration files
Smart Cache got another stupid AWARD from some BFU magazine. I don't know why some people generate so much hype for this product... It's strange that this BFUs gets Smart Cache running...
Value of default_refresh_pattern changed in default config file to honor all forced reloads...
swap_dirs_levels changed from 5 to 4 in default config file. WARNING: If you are upgrading Smart Cache and change this value (from 5 to 4) your cached objects will not be found!
"Full" version has default BindAddress set to * instead of 127.0.0.1.
Faster in-memory garbage collection.
Added header Proxy-Connection: Close to generated error messages. This fixes troubles with old browsers, which don't have proper handling of Keep-Alive connections.
Security bug: Password-protected documents were still cached!
Choice of removing Pragma: no-cache header from clients requests.
scache.cnf for more info (look for remove_pragma_no_cache)
Customized Error Reply by redirecting to specified URL. Only 403 Error reply (Forbidden, generated by Fail directive) is now supported.
Nicer HTML in generated error messages.
Ad Busters moved to another server, so -faststart switch is no longer needed for workaround to JVM DNS caching bug.
Less important init messages are now sent to stderr.
Workaround for bug in Squid Cache 1.2.X (if Squid is used as http_proxy).
Improved some messages generated by garbage collector engine.
Default value of maximal object size increased from 4 to 10 Mb.
Improved error detection - Smart Cache can now detect when user of garbage collector removes directory with active file transfers.
HTTP RC 403 added to group 'temporary remote server errors'.
By popular demand, size of transferred objects now displayed in Smart Cache window.
Refreshed object without last_modified date (delta=0 m) no longer mentioned in Smart Cache window.
Fixed bug in garbage collector. GC crashed when there were fewer objects in cache than gcarraysize.
Cacheroot directory is now always created on cache startup.
Fixed some rare cases which created "unreferenced" objects when object loading failed.
Fixed bug in GC. Due to changes in 0.30, only 50% "unreferenced" files were removed.
Extended directive generate_lastmod. If set to 1, generates Last-modified header only if object is sent from cache. This removes problem with both stupid browsers (MSIE, Netscape) and aborted transfers. If you want to restore the previous operation mode, set it to 2.
Local filename generating is now significantly faster. This makes Smart Cache about 10% faster when operating with "normal" URL length and much faster with very long URLs.
URL Search string can now be delimited with more chars: :? = ;
Smart Cache got TOP 25% Rating from J.A.R.S.
Last-Modified dates in future no longer confuse the refresh engine.
In some rare cases, when object load failed, object was deleted from cache, but not from .cacheinfo files.
When directory creation fails, Smart Cache no longer creates file nullnull, when attempting to transfer cacheable object.
Garbage collection! It's configurable through gc.cnf file. Run it via java scache -gc and enjoy!
New directory structure - character ~ is no longer replaced by -. If you want to convert directories to new format (recommended), use the -convert030 switch.
Corrected new error from 0.28 - documents without expire line don't get cached if pragma_nocache were set to zero.
Command-line option -faststart. Suppresses latest available version check and Ad Busters rule set refresh.
Better last-modified. headers generation, now works even on transient objects.
Possibility to send pages from cache if remote server returns internal error. Good for overloaded servers, such as Geocities. If you want this, set hide_errors to one.
English version of docs.
Handling errors when reading corrupted
Directory memory cache optimized.
Internal optimizations for better speed.
Corrected sended HTTP reply 304 when load failed.
Ignoring Expires: header in the past.
Removed filesystem's case sensitivity check.
Check if is possible to use character '\' in filenames.
Sending pages which are already deleted on WWW servers (rc=404), but still existing in cache. Directive keep_deleted [0/1]. Good for off line browsing of removed sites.
Smart Cache can now generate last-modified headers if document is cacheable and original do not have one. generate_lastmod [0/1] - it is very good for web forwarding.
Product license changed from FREEWARE to shareware. Some features exists only in registered version. Introduced built in web forwarder.
Changed syntax for default_refresh_pattern to reload_age min_age lastmod_factor max_age. Lastmod_factor is a floating point number and other numbers are times in minutes. These numbers are used when testing if document needs to be refreshed. Setting reload_age value > 0 disables reloads for specified time. Setting min_age value > 0 allows caching pages without Last-Modified header, which makes web browsing much faster.
Smart Cache has been optimized and now is five times faster than before. Now is only about 25% slower than Apache 1.0 for OS/2.
Changed POST method handling - added workaround for some badly programmed CGI scripts.
Password protected documents are not cacheable now.
Smart Cache now beeps, when new version exists.
Smart Cache will exit (not hangs) when can not bind to specified port.
Changed handling of redirect - proxycache now do not sends redirected back to the browser, but remaps the request and continue working on it - it is necessary for web forwarding.
Classes are before distributing protected by hashjava utility. This also make them 10kB smaller.
Directive SerialNumber for entering the secret registration number. 
Access logging by access_log with URL masks. Good for logs on web forwarders.
access_log http://netmag.cz/* netmag.access.log
Directive default_forward_for, which is default hostname for forwarder.
Directive BindAddress for entering local IP address for port binding.
Directive max_clients for setting maximal number of http clients.
Directive Refresh_pattern for fine tuning expiration setup by URL mask.
Fixed VSB  when processing HEAD requests. Smart Cache caches results of this requests and this overwrites normal pages with zero-sized pages.
Adding Host: headers to outgoing requests with port number.
Corrected file system check - works even if CacheRoot directory does not exists.
Better resolving of the filename/directory clashes.
Cache now works better in some rare situations, when is not possible to create working directory for requested pages. These pages are still not cached, but are now sended to clients.
Directive inputtimeout - socket read timeout for client's request.
Directive proxyreadtimeout - timeout for reading reply from remote web server.
Both time are in seconds.
Changed error message Target not set to Host Unknown
Hostnames are now no longer case-sensitive.
Protocol names are no longer case-sensitive.
Added support for my AdBusters! web service.
AdBustersId and AdBustersAuth for AdBusters login.
Cache can check if newer version of itself is available.
Check for unnecessary Fail or Pass mask (already matched by others).
Wildcard '*' support in all directives but Redirect and No_Proxy
URL are no longer case sensitive. (Fixes problem with IBM Alpha Works site)
Directive NoCaching for defining what URL you do not want to cache.
Directive CacheOnly for defining only what are allowed to gets cached.
You must use only one of them
New keyword Pass for marking allowed URLs, which Fail disables (by mistake).
Some generic traps for adv. banners installed in default configuration file.
Because many users use this program in corporate environments for caching entire networks even if this is not allowed by license, Smart Cache has now hard coded bindaddress to 127.0.0.1.
Better error messages, displays also thrown Java exception.
Corrected URL parser for working with URL containing strange characters such as '=;%^&'.
do not create filenames with '|' inside
If-Modified-Since header is sended as first line in request.
If cache assumes that object is in the cache, but can not be accessed (for example is deleted), request headers will not be send to server twice.
Smart Cache do not works with Java 1.0 (only missing class is CRC32).
Shutdown flag is deleted on the start.
New structure of
.cacheinfo files. Now last access date is
included (needed for future garbage collector).
Faster exit on shutdown_flag
Header Server: added to error messages.
Error messages has no expiration time 5 minutes (like Squid).
All dates are now in the 'correct' Internet format including day of the week (some servers tested DOTW on IMS requests!!!)
Dates with day < 10 now has two digits size as required in RFC. Java claims to support 'Internet date format standard', but zero on the beginning was missing.
Removed nearly all headers from generated 304 replies as required by HTTP/1.1 protocol.
Changed case in generated headers. Some stupid servers has case sensitive matching on headers.
More important dates has now correct day of the week.
Corrected crashing when URL has more than one '?' - (Microsoft's servers).
Kill unreferenced files tests if does not exist directory with name of the cached file.
When network error is detected when sending (after successful connect) request to server, old cached object will be sent.
Also if network error is detected when reading reply from server, send old object.
If-Modified-Since requests from clients are now correctly handled in all cases. Sending bad responses crashed IBM WebExplorer browser (Netscape was fine) and entire Presentation Manager (OS/2 GUI Interface).
Cache do not crash if gets date from remote server in unknown format (Expires: headers send by developer.javasoft.com).
Check if filesystems allows to create filenames with dot at end only. (seen on the Hare Krishna World Online).
Thread synchronization is now much better. If Smart Cache gets many requests
per second for loading the same object into cache, object will be loaded and
lost. (Discovered by my
Removing headers Proxy-Connection and Connection from client's requests. Some wants to use persistent connection, which Smart Cache do not support.
Smart Cache is now smarter when tests for removed files or directories by user.
Cache appends its name to User-Agent header.
Corrected error (buffering problem) when processing POST requests.
Cache displays information about objects which are successfully checked via IMS.
Better handling of aborted requests. It is not necessary to wait for remote server reply to be request considered as aborted.
Shutdown_flag for clean cache shutdown.
Better support for multiple downloads of the same object.
0.13 - 22.3.1998 First public release on the Net
When got 404, delete object in the cache
Cache only `good` error codes from server, not bad, which overwrites `good` cached object (Squid does this overwriting).
Temporary files are deleted, when transfer is aborted by network error.
Support for case sensitive filesystems with auto detection.
0.12(Private) - 21.3.1998
Clients got 304 if they send IMS request and connect fails.
Error messages has now last-modified and Expire: headers like Squid.
added header Date: to server responses. Some browsers use this for last-mod check.
new directives no_proxy, fail, redir
Better dir cleanup - directories are now deleted up to the dir hierarchy as much as possible.
Directories are now cleaned when garbage collected from memory, not on saving.
0.10(Private) - 20.3.1998
More intelligent IMS refresh
Better memory directory garbage collector
I/O buffer set to 2048 bytes instead 512
background directory saver set to 10 minutes
better multi-thread synchronization
Core coding is fully completed.
Let's debug in the real world!
First 'Smoke test' on the Internet.
something from www.javaworld.com really gets cached, but due to bugs in the thread-synchronization many objects gets lost.
very basic skeleton of cache appeared
coded handling of POST requests, but untested.
Smart Cache project started
Thinking about Smart Cache design goals, Section 1.5
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ A ] [ B ] [ next ]
Smart Cache Manual0.94