Pegasus 2.6 is released with new WebDAV script written in Lua.
The sources are in
For those who are new to Pegasus, the installation instructions for Pegasus 2.6 are provided.
Pegasus is a flexible httpd server. If you want to know more about current Pegasus, you need to read changes after Pegasus 2.2. These changes are in the documents: Pegasus 2.3, Pegasus 2.4, and Pegasus 2.5
ETag=""in HTTP header.
"#DEBUG:..."in headers, the value will be put to log file.
$web/etc/namespace. I found that it is better to remove the restriction.
Lua interpreter is 20 times smaller than Perl as shown below.
--rwxr-xr-x M 1438298 arisawa sys 594852 Jan 25 00:06 /bin/lua --rwxrwxr-x M 1438298 bootes sys 9609130 Nov 25 2002 /bin/perlCorresponding stripped sizes are:
--rwxr-xr-x M 1438298 arisawa arisawa 235922 Jan 31 14:06 /tmp/lua --rwxrwxr-x M 1438298 arisawa arisawa 4548970 Jan 31 14:06 /tmp/perlI added some codes to support WebDAV. Original size of lua is 6% (for un-stripped) and 8% (for stripped) smaller than above values. Code size is critical in case WebDAV is implemented on script.
lua-5.1-p9ext.tgzis plan9 extension of
lua# Lua interpreter with extension for webdav
chmod 755 webdav.lua
webdav.luacontrols taking log:
LOG = io.open("/log/webdav.log","a") -- uncomment if you need logIf you don't want log change the line to
-- LOG = io.open("/log/webdav.log","a") -- uncomment if you need logbut if you want:
LOG = io.open("/log/webdav.log","a") -- uncomment if you need log
$webis a httpd root* of a user, and
hoststands for "
host:port" or "
$web/logif you take a log. It must be writable by user
$web/._.locktokensif you want to mount
$web/doconto your local computer.
$web/path/._.locktokensif you want to mount
pathis any path and
foois a directory name.
The directory "
._.locktokens" must be writable by user
$web/doconto your local computer with server address
http://host/davthen the following lines are required.
/dav - * /bin/webdav.lua /dav /doc /dav/* - * /bin/webdav.lua /dav /docYou may replace "
/dav" by other "
/bar" and likewise you may replace "
/doc" by "
/path/foo". Thus you may have WebDAV storage out of document root.
arisawa 1ecdd023fbd3c3fe8f63b05827c0d38a /dav arisawa@herawhere
arisawa@herais my realm and the md5 value is obtained by
echo -n 'arisawa:arisawa@hera:black cat' | md5sumfor password "black cat".
OSX client is slow because of incredibly stupid behavior of the client.
There are many issues on this subject in the Internet.
You need to adjust parameters in
/sys/lib/httpd.conf if OSX client suddenly lost server side information. The candidate is
/sys/log/blacklist to find which parameter makes the problem.
Depth:1except names in the collection. After the request, the client continues
PROPFINDrequests to all names in the collection although the client already has received requesting information . Thus, if a collection has 100 files then 100
PROPFINDrequests continue in a short time. The huge amount of accesses might make Pegasus busy state. Then you need to loosen
OSX 10.4 should work as has been.
?" magic such as
http://host/dav?in creating "Network Place".
?" then Vista fails in creating Network Place.
(2) you need not host name "
@host" such as
alice@hostsin your user name.
WinXP and Win2000 should work as has been.