<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dan.thoughts &#187; webdav</title>
	<atom:link href="http://blog.sosedoff.com/tag/webdav/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sosedoff.com</link>
	<description>Web-development, PHP, Ruby, Sinatra, Merb, Rails, MySQL, SQLite, Web Services.</description>
	<lastBuildDate>Wed, 25 Jan 2012 18:54:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>WebDAV client in ruby</title>
		<link>http://blog.sosedoff.com/2009/05/02/webdav-client-in-ruby/</link>
		<comments>http://blog.sosedoff.com/2009/05/02/webdav-client-in-ruby/#comments</comments>
		<pubDate>Sat, 02 May 2009 05:03:30 +0000</pubDate>
		<dc:creator>Dan Sosedoff</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[sockets]]></category>
		<category><![CDATA[webdav]]></category>

		<guid isPermaLink="false">http://blog.sosedoff.com/?p=125</guid>
		<description><![CDATA[Here is a simple example how to make native WebDAV client with Ruby sockets. No additional gems or extensions needed &#8211; just all basic classes.

class WebDAV
	attr_reader :host, :port, :protocol, :chunk_size
	@socket = nil
&#160;
	def initialize&#40;host,port=80,protocol='HTTP/1.1',chunk=8096&#41;
		@host = host.to_s
		@port = port.to_i
		@protocol = protocol
		@chunk_size = chunk.to_i
	end
&#160;
	def build_header&#40;method, path, content_length=nil&#41;
		header = &#34;#{method} #{path} #{@protocol} \r\n&#34;
		header += &#34;Content-Length: #{content_length}\r\n&#34; if !content_length.nil?
		header += [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a simple example how to make native WebDAV client with Ruby sockets. No additional gems or extensions needed &#8211; just all basic classes.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> WebDAV
	attr_reader <span style="color:#ff3333; font-weight:bold;">:host</span>, <span style="color:#ff3333; font-weight:bold;">:port</span>, <span style="color:#ff3333; font-weight:bold;">:protocol</span>, <span style="color:#ff3333; font-weight:bold;">:chunk_size</span>
	<span style="color:#0066ff; font-weight:bold;">@socket</span> = <span style="color:#0000FF; font-weight:bold;">nil</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> initialize<span style="color:#006600; font-weight:bold;">&#40;</span>host,port=<span style="color:#006666;">80</span>,protocol=<span style="color:#996600;">'HTTP/1.1'</span>,chunk=<span style="color:#006666;">8096</span><span style="color:#006600; font-weight:bold;">&#41;</span>
		<span style="color:#0066ff; font-weight:bold;">@host</span> = host.<span style="color:#9900CC;">to_s</span>
		<span style="color:#0066ff; font-weight:bold;">@port</span> = port.<span style="color:#9900CC;">to_i</span>
		<span style="color:#0066ff; font-weight:bold;">@protocol</span> = protocol
		<span style="color:#0066ff; font-weight:bold;">@chunk_size</span> = chunk.<span style="color:#9900CC;">to_i</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> build_header<span style="color:#006600; font-weight:bold;">&#40;</span>method, path, content_length=<span style="color:#0000FF; font-weight:bold;">nil</span><span style="color:#006600; font-weight:bold;">&#41;</span>
		header = <span style="color:#996600;">&quot;#{method} #{path} #{@protocol} <span style="color:#000099;">\r</span><span style="color:#000099;">\n</span>&quot;</span>
		header <span style="color:#006600; font-weight:bold;">+</span>= <span style="color:#996600;">&quot;Content-Length: #{content_length}<span style="color:#000099;">\r</span><span style="color:#000099;">\n</span>&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> !content_length.<span style="color:#0000FF; font-weight:bold;">nil</span>?
		header <span style="color:#006600; font-weight:bold;">+</span>= <span style="color:#996600;">&quot;Host: #{@host}<span style="color:#000099;">\r</span><span style="color:#000099;">\n</span>&quot;</span>
		header <span style="color:#006600; font-weight:bold;">+</span>= <span style="color:#996600;">&quot;Connection: close<span style="color:#000099;">\r</span><span style="color:#000099;">\n</span><span style="color:#000099;">\r</span><span style="color:#000099;">\n</span>&quot;</span>
		<span style="color:#0000FF; font-weight:bold;">return</span> header
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> request<span style="color:#006600; font-weight:bold;">&#40;</span>method, path<span style="color:#006600; font-weight:bold;">&#41;</span>
		<span style="color:#CC0066; font-weight:bold;">open</span>
		header = build_header<span style="color:#006600; font-weight:bold;">&#40;</span>method, path<span style="color:#006600; font-weight:bold;">&#41;</span>
		<span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#0066ff; font-weight:bold;">@socket</span>.<span style="color:#9900CC;">write</span><span style="color:#006600; font-weight:bold;">&#40;</span>header<span style="color:#006600; font-weight:bold;">&#41;</span> == header.<span style="color:#9900CC;">length</span> <span style="color:#9966CC; font-weight:bold;">then</span>
			<span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0066ff; font-weight:bold;">@socket</span>.<span style="color:#CC0066; font-weight:bold;">gets</span>.<span style="color:#CC0066; font-weight:bold;">split</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>
		<span style="color:#9966CC; font-weight:bold;">end</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> delete<span style="color:#006600; font-weight:bold;">&#40;</span>path<span style="color:#006600; font-weight:bold;">&#41;</span>
		request<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'DELETE'</span>, path<span style="color:#006600; font-weight:bold;">&#41;</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> head<span style="color:#006600; font-weight:bold;">&#40;</span>path<span style="color:#006600; font-weight:bold;">&#41;</span>
		request<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'HEAD'</span>, path<span style="color:#006600; font-weight:bold;">&#41;</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> mkcol<span style="color:#006600; font-weight:bold;">&#40;</span>path<span style="color:#006600; font-weight:bold;">&#41;</span>
		request<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'MKCOL'</span>, path<span style="color:#006600; font-weight:bold;">&#41;</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> put<span style="color:#006600; font-weight:bold;">&#40;</span>path, localfile, auto_head=<span style="color:#0000FF; font-weight:bold;">true</span><span style="color:#006600; font-weight:bold;">&#41;</span>
		<span style="color:#9966CC; font-weight:bold;">if</span> !<span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">exists</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>localfile<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">||</span> !<span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">readable</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>localfile<span style="color:#006600; font-weight:bold;">&#41;</span>
			<span style="color:#CC0066; font-weight:bold;">raise</span> <span style="color:#996600;">&quot;File not exists or not accessible for reading!&quot;</span>
		<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
		<span style="color:#CC0066; font-weight:bold;">open</span>
&nbsp;
		datalen = <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">size</span><span style="color:#006600; font-weight:bold;">&#40;</span>localfile<span style="color:#006600; font-weight:bold;">&#41;</span>
		header = build_header<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'PUT'</span>, path, datalen<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
		<span style="color:#9966CC; font-weight:bold;">begin</span>
			<span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#0066ff; font-weight:bold;">@socket</span>.<span style="color:#9900CC;">write</span><span style="color:#006600; font-weight:bold;">&#40;</span>header<span style="color:#006600; font-weight:bold;">&#41;</span> == header.<span style="color:#9900CC;">length</span> <span style="color:#9966CC; font-weight:bold;">then</span>
				written = <span style="color:#006666;">0</span>
				<span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>localfile,<span style="color:#996600;">'r'</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>f<span style="color:#006600; font-weight:bold;">|</span> 
					<span style="color:#9966CC; font-weight:bold;">until</span> f.<span style="color:#9900CC;">eof</span>? <span style="color:#9966CC; font-weight:bold;">do</span>
						written <span style="color:#006600; font-weight:bold;">+</span>= <span style="color:#0066ff; font-weight:bold;">@socket</span>.<span style="color:#9900CC;">write</span><span style="color:#006600; font-weight:bold;">&#40;</span>f.<span style="color:#9900CC;">read</span><span style="color:#006600; font-weight:bold;">&#40;</span>@chunk_size<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
					<span style="color:#9966CC; font-weight:bold;">end</span>
				<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
				<span style="color:#9966CC; font-weight:bold;">if</span> written == datalen
					close
					<span style="color:#9966CC; font-weight:bold;">if</span> !auto_head
						<span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0000FF; font-weight:bold;">true</span>
					<span style="color:#9966CC; font-weight:bold;">else</span>
						<span style="color:#0000FF; font-weight:bold;">return</span> head<span style="color:#006600; font-weight:bold;">&#40;</span>path<span style="color:#006600; font-weight:bold;">&#41;</span>
					<span style="color:#9966CC; font-weight:bold;">end</span>
				<span style="color:#9966CC; font-weight:bold;">end</span>
			<span style="color:#9966CC; font-weight:bold;">end</span>
		<span style="color:#9966CC; font-weight:bold;">rescue</span> <span style="color:#CC00FF; font-weight:bold;">Exception</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> e
			<span style="color:#CC0066; font-weight:bold;">puts</span> e
			<span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0000FF; font-weight:bold;">false</span>
		<span style="color:#9966CC; font-weight:bold;">end</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#CC0066; font-weight:bold;">open</span>
		<span style="color:#9966CC; font-weight:bold;">begin</span> 
			<span style="color:#0066ff; font-weight:bold;">@socket</span> = TCPSocket.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>@host,@port<span style="color:#006600; font-weight:bold;">&#41;</span>
			<span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0000FF; font-weight:bold;">true</span>
		<span style="color:#9966CC; font-weight:bold;">rescue</span> <span style="color:#CC00FF; font-weight:bold;">Exception</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> e
			<span style="color:#CC0066; font-weight:bold;">puts</span> e
			<span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0000FF; font-weight:bold;">false</span>
		<span style="color:#9966CC; font-weight:bold;">end</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> close
		<span style="color:#9966CC; font-weight:bold;">begin</span>
			<span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0066ff; font-weight:bold;">@socket</span>.<span style="color:#9900CC;">close</span>
		<span style="color:#9966CC; font-weight:bold;">rescue</span> 
			<span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0000FF; font-weight:bold;">false</span>
		<span style="color:#9966CC; font-weight:bold;">end</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>This class supports only basic http/dav methods (PUT, DELETE, MKCOL, HEAD) and can be extended very easily and designed to work with all files, reading them by small chunks (default is 8096 bytes).<br />
Im using this class sometimes with nginx.  </p>
<p>Deps:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'socket'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'digest'</span></pre></div></div>

<p>Usage:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># create connection</span>
conn = WebDAV.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'your.host.com'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># upload file (without autocheck), return true/false value</span>
result = conn.<span style="color:#9900CC;">put</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'/test.mp3'</span>,<span style="color:#996600;">'/home/.../..../..../file.mp3'</span>, <span style="color:#0000FF; font-weight:bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># upload file with autocheck, returns http response code (201, 404, ... ) so you`ll know what exactly happened</span>
result = conn.<span style="color:#9900CC;">put</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'/test2.mp3'</span>,<span style="color:#996600;">'/home/.../file.mp3'</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>Also, here is a wrapper class to produce MD5, SHA1 file hashes that supports big files.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> FileHash 
	<span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">md5</span><span style="color:#006600; font-weight:bold;">&#40;</span>path<span style="color:#006600; font-weight:bold;">&#41;</span>
		d = <span style="color:#6666ff; font-weight:bold;">Digest::MD5</span>.<span style="color:#9900CC;">new</span>
		<span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>path,<span style="color:#996600;">'r'</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>f<span style="color:#006600; font-weight:bold;">|</span> 
			d.<span style="color:#9900CC;">update</span><span style="color:#006600; font-weight:bold;">&#40;</span>f.<span style="color:#9900CC;">read</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">8192</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">until</span> f.<span style="color:#9900CC;">eof</span>?
		<span style="color:#9966CC; font-weight:bold;">end</span>
		<span style="color:#0000FF; font-weight:bold;">return</span> d.<span style="color:#9900CC;">hexdigest</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">sha1</span><span style="color:#006600; font-weight:bold;">&#40;</span>path<span style="color:#006600; font-weight:bold;">&#41;</span>
		d = <span style="color:#6666ff; font-weight:bold;">Digest::SHA1</span>.<span style="color:#9900CC;">new</span>
		<span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>path,<span style="color:#996600;">'r'</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>f<span style="color:#006600; font-weight:bold;">|</span> 
			d.<span style="color:#9900CC;">update</span><span style="color:#006600; font-weight:bold;">&#40;</span>f.<span style="color:#9900CC;">read</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">8192</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">until</span> f.<span style="color:#9900CC;">eof</span>?
		<span style="color:#9966CC; font-weight:bold;">end</span>
		<span style="color:#0000FF; font-weight:bold;">return</span> d.<span style="color:#9900CC;">hexdigest</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Usage:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">FileHash.<span style="color:#9900CC;">md5</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'/path/to/file'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
FileHash.<span style="color:#9900CC;">sha1</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'/path/to/file'</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>This webdav class not pretending to be stable in production environment, but can be useful for some &#8220;one-time&#8221; tasks with less code. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sosedoff.com/2009/05/02/webdav-client-in-ruby/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuring WebDAV Server</title>
		<link>http://blog.sosedoff.com/2009/01/15/configuring-webdav-server/</link>
		<comments>http://blog.sosedoff.com/2009/01/15/configuring-webdav-server/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 10:24:32 +0000</pubDate>
		<dc:creator>Dan Sosedoff</dc:creator>
				<category><![CDATA[Nginx]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[webdav]]></category>

		<guid isPermaLink="false">http://blog.sosedoff.com/?p=6</guid>
		<description><![CDATA[Some time ago i had reason to make couple servers being accessible by WebDAV protocol.
But all our special storage servers were running nginx 0.6.x, that also supports this protocol.
By the way, it doesn`t support meta commands such as PROPFIND, OPTIONS, so if you try to connect to server with some command-line or GUI client it [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago i had reason to make couple servers being accessible by WebDAV protocol.<br />
But all our special storage servers were running nginx 0.6.x, that also supports this protocol.<br />
By the way, it doesn`t support meta commands such as PROPFIND, OPTIONS, so if you try to connect to server with some command-line or GUI client it will close connection due to accepting &#8220;unknown&#8221; commands, but will work only with PUT, DELETE, COPY, MOVE, MKCOL requests.<br />
It was a huge problem, because for a long time i couldn`t figure out what the reason of reject. Server allways respond with &#8216;405 Not allowed&#8217;. But when i tried put file &#8211; it worked.<br />
Also, alternate fast server <a href="http://lighttpd.net" target="_blank">Lighttpd</a> supports all meta commands.</p>
<p><strong>Simple nginx configuration:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">server {
    listen 80;
    server_name localhost;
    access_log log/access.log;
    error_log log/error.log;
    charset utf-8;
    client_body_temp_path client_body_temp;
    autoindex on;
&nbsp;
     location / {
          root /home/dav/public;
          dav_methods PUT DELETE MKCOL COPY MOVE;
          dav_access user:rw group:rw all:r;
          create_full_put_path on;
&nbsp;
          # auth access
          auth_basic &quot;Restricted&quot;;
          auth_basic_user_file ;
     }
}</pre></div></div>

<p>After configuring server, you`ll need to create htpassword file, that will keep user credentials.<br />
Simple example:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">htpasswd <span style="color: #660033;">-c</span> <span style="color: #000000; font-weight: bold;">/</span>where<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>save<span style="color: #000000; font-weight: bold;">/</span>the<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">file</span> username</pre></div></div>

<p>More information about how to configure nginx can be found at <a title="Nginx Modules information" href="http://wiki.codemongers.com/NginxModules" target="_blank">http://wiki.codemongers.com/NginxModules</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sosedoff.com/2009/01/15/configuring-webdav-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

