<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>lighty's life</title>
    <link>http://blog.lighttpd.net</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>PRE-RELEASE: lighttpd-1.4.19-r2118</title>
      <description>&lt;p&gt;After quite some time lighttpd is moving forward again. Please give this pre-release a try and check if it drops in nicely and doesn&amp;#8217;t cause any new issues.&lt;/p&gt;


	&lt;p&gt;It is mostly a bug-release and we want to make sure it is a good release. If this pre-release passes your tests, we&amp;#8217;ll put the real release online in a few days.&lt;/p&gt;


	&lt;p&gt;Download: &lt;a href="http://opensu.se/~darix/lighttpd/"&gt;http://opensu.se/~darix/lighttpd/&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;ChangeLog: &lt;a href="http://trac.lighttpd.net/trac/browser/branches/lighttpd-1.4.x/NEWS"&gt;http://trac.lighttpd.net/trac/browser/branches/lighttpd-1.4.x/NEWS&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Wed, 05 Mar 2008 21:48:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:20625794-c283-4de4-986e-f40409a8217a</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2008/03/05/pre-release-lighttpd-1-4-19-r2118</link>
      <category>lighttpd</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/5261</trackback:ping>
    </item>
    <item>
      <title>GSoC: collecting ideas</title>
      <description>&lt;p&gt;Google is doing a the Summer of Code again and I was approached from different sides to participate this year. There is already a lot going on in &lt;span class="caps"&gt;SVN&lt;/span&gt; again working towards a new 1.4.19 release, but for the future we want to attract more developers for more new, great features.&lt;/p&gt;


	&lt;p&gt;Before I submit the application request I would like to collect some more ideas what we would like to see to be done. At &lt;a href="http://trac.lighttpd.net/trac/wiki/GSoC2008/Ideas"&gt;GSoC2008/Ideas&lt;/a&gt; I added my short list of projects that I would like to mentor.&lt;/p&gt;


	&lt;p&gt;If you would like to be a mentor too, please add your own list.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Documentation improvements &lt;/li&gt;
		&lt;li&gt;Integration into web-panels&lt;/li&gt;
		&lt;li&gt;maintaining the OpenWRT port&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;are just some small ideas where we could take help from non-developers.&lt;/p&gt;
</description>
      <pubDate>Tue, 04 Mar 2008 11:25:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:a71b6fc9-0821-4a78-b5bd-4742aeba2803</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2008/03/04/gsoc-collecting-ideas</link>
      <category>lighttpd</category>
      <category>GSoC</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/5230</trackback:ping>
    </item>
    <item>
      <title>Project Glib: it compiles ... mostly</title>
      <description>&lt;p&gt;Part of my ongoing, hidden effort to port lighttpd to glib I can now at least say: it compiles.&lt;/p&gt;


	&lt;p&gt;Well, mostly. The core does compile and &lt;i&gt;mod_staticfile&lt;/i&gt; is also mostly done. Mostly, as I don&amp;#8217;t have decided on how to handle the config-file handling yet.&lt;/p&gt;
&lt;p&gt;So, what has been done so far:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;i&gt;buffer.c&lt;/i&gt; and &lt;i&gt;buffer.h&lt;/i&gt; are gone and are replaced by &lt;i&gt;GString&lt;/i&gt;&lt;/li&gt;
		&lt;li&gt;&lt;i&gt;array.c&lt;/i&gt; is gone and is replace by &lt;i&gt;GHashTable&lt;/i&gt; or &lt;i&gt;GPtrArray&lt;/i&gt;&lt;/li&gt;
		&lt;li&gt;&lt;i&gt;array.h&lt;/i&gt; will vanish when the &lt;i&gt;data_&amp;#8230;c&lt;/i&gt; goes away&lt;/li&gt;
		&lt;li&gt;&lt;i&gt;log.c&lt;/i&gt; is now a wrapper around &lt;i&gt;g_log_&amp;#8230;&lt;/i&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;As you see this is ripping out the basic data-structures and replaces them by a glib look-alike.&lt;/p&gt;


	&lt;p&gt;This isn&amp;#8217;t just a drop-in replacement as the structures use other field-names and sometimes have a slightly different meaning.&lt;/p&gt;


	&lt;p&gt;One example is GString vs. buffer:&lt;/p&gt;


&lt;pre&gt;
buffer {
  char *ptr;
  size_t used;
  size_t size;
};

GString {
  char *str;
  size_t len;
  size_t allocated_len;
};
&lt;/pre&gt;

	&lt;p&gt;While &lt;i&gt;str&lt;/i&gt; and &lt;i&gt;ptr&lt;/i&gt;, and &lt;i&gt;allocated_len&lt;/i&gt; and &lt;i&gt;size&lt;/i&gt; match, &lt;i&gt;used&lt;/i&gt; and &lt;i&gt;len&lt;/i&gt; differ by one byte (&lt;i&gt;used&lt;/i&gt; includes the &lt;i&gt;&lt;span class="caps"&gt;NUL&lt;/span&gt;&lt;/i&gt;-byte, &lt;i&gt;len&lt;/i&gt; doesn&amp;#8217;t).&lt;/p&gt;


	&lt;p&gt;One side-effect of this boring work is seeing the code-size shrinking, piece by piece.&lt;/p&gt;


	&lt;p&gt;Seeing old, sometimes dirty code vanish is another nice side-effect. Like the &lt;i&gt;log_error_write()&lt;/i&gt; call &amp;#8230; man &amp;#8230;&lt;/p&gt;</description>
      <pubDate>Tue, 19 Feb 2008 17:14:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:8e6b7444-2eb1-4564-9806-febdf9ce196d</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2008/02/19/project-glib-it-compiles-mostly</link>
      <category>lighttpd</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/4908</trackback:ping>
    </item>
    <item>
      <title>Weekends Projects: lua as config-language</title>
      <description>&lt;p&gt;With the first implementation of mod_cml and later mod_magnet smart users asked why we don&amp;#8217;t use lua also as config language for lighttpd.&lt;/p&gt;


	&lt;p&gt;Up to now I was pushing back and saying that a huge change in the configfile would make upgraders very unhappy as they would have to rewrite the config files. Looking at what we have for 1.5.0 right now, we need tweaks anyway.&lt;/p&gt;
&lt;p&gt;This always happens if you rip a thing apart: you see more things that should be cleaned up. My first experiments are a bit done:&lt;/p&gt;


&lt;pre&gt;
server = {
        name = "my.example.org",
        modules = {
                "mod_indexfile" 
        },
        ["errorfile-prefix"] = "foobar",
}

sockets = {
        [":80"] = {
                server = { name = "foo.example.org" },
                HTTP = { url = function(url)
                        if url == "foo" then
                                server.name = "baz.example.org" 
                        end
                end },
        }
}

sockets[":80"].HTTP.url("foo")
print(server.name)
&lt;/pre&gt;

	&lt;p&gt;This is a first idea. It shows how the &lt;span class="caps"&gt;LUA&lt;/span&gt; syntax isn&amp;#8217;t sooo different from our current config syntax.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;The global variables, stay global as now.&lt;/li&gt;
		&lt;li&gt;socket conditionals is now a simple array of sockets &lt;/li&gt;
		&lt;li&gt;conditionals are functions, now you can do what you want with it&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;I hope that I can handle the full config syntax into this structure. For now it is looks more appealing that ripping the old config-parser code apart and turn it into glib-notation. With all the conditionals and types we basicly have implemented our own scripting language.&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s see where this leads too.&lt;/p&gt;</description>
      <pubDate>Sat, 09 Feb 2008 23:09:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:bfbf72c7-42a9-47c4-a922-27cceb02834f</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2008/02/09/weekends-projects-lua-as-config-language</link>
      <category>lighttpd</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/4862</trackback:ping>
    </item>
    <item>
      <title>Weekend Projects: killing buffer.c and array.c</title>
      <description>&lt;p&gt;As part of a weekend project I&amp;#8217;m ripping 1.5 apart a bit. I worked with glib for quite some time now and feel the need to replace the base-structures around &amp;#8220;buffer&amp;#8221; (strings) and &amp;#8220;array&amp;#8221; (hash) apart and replace it with the glib counter-parts.&lt;/p&gt;


	&lt;p&gt;To make this a nice experience and that I don&amp;#8217;t harm anyone else I imported trunk into a local bzr tree:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;bzr clone svn://svn.lighttpd.net/lighttpd/&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;to clone the &lt;span class="caps"&gt;SVN&lt;/span&gt; tree.&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s see how well that experiment goes.&lt;/p&gt;
</description>
      <pubDate>Sat, 09 Feb 2008 08:46:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:2d7a3d7e-eac2-4753-8a2a-161cf46f615d</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2008/02/09/weekend-projects-killing-buffer-c-and-array-c</link>
      <category>lighttpd</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/4850</trackback:ping>
    </item>
    <item>
      <title>ANNOUNCE: lighttpd 1.4.18 </title>
      <description>&lt;p&gt;darix released &lt;a href="http://www.lighttpd.net/2007/9/9/1-4-18-speeding-up-a-bit"&gt;1.4.18&lt;/a&gt; which contains a fix for a buffer-overrun in the fastcgi protocol.&lt;/p&gt;
</description>
      <pubDate>Sun, 09 Sep 2007 21:43:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:3dea0c63-20a1-4199-a5b6-94d6f0b0ed9b</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2007/09/09/1-4-18-released</link>
      <category>lighttpd</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/4772</trackback:ping>
    </item>
    <item>
      <title>PRE-RELEASE: lighttpd-1.5.0-r1992</title>
      <description>&lt;p&gt;Some time passed since the last pre-release, time for an update.&lt;/p&gt;


	&lt;p&gt;Everyone who runs 1.5.0 already has to upgrade to get fixes several vulnerabilities that got fixed in the 1.4.x branch already.&lt;/p&gt;


	&lt;p&gt;If this release passes your requirements it will be the last 1.5.0 pre-release. Afterwards we will start the the normal 1.5.x series and will add the missing features in 1.5.1 and later.&lt;/p&gt;


	&lt;p&gt;Download:
  &lt;a href="http://www.lighttpd.net/download/lighttpd-1.5.0-r1992.tar.gz"&gt;http://www.lighttpd.net/download/lighttpd-1.5.0-r1992.tar.gz&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;md5sum: &lt;code&gt;b62e2442ee0f3395844b54385b14397a&lt;/code&gt;&lt;/p&gt;


&lt;h3&gt;Changes&lt;/h3&gt;

	&lt;ul&gt;
	&lt;li&gt;added native support for mingw32&lt;/li&gt;
		&lt;li&gt;added experimental option to compile without glib &lt;/li&gt;
		&lt;li&gt;fixed mod_uploadprogress&lt;/li&gt;
		&lt;li&gt;fixed endless loop on freebsd-sendfile (&lt;a href="http://trac.lighttpd.net/trac/ticket/1289"&gt;#1289&lt;/a&gt;)&lt;/li&gt;
		&lt;li&gt;fixed compile in &lt;span class="caps"&gt;IRIX&lt;/span&gt; and HP/UX&lt;/li&gt;
		&lt;li&gt;fixed hardcoded font-sizes in mod_dirlisting (&lt;a href="http://trac.lighttpd.net/trac/ticket/1267"&gt;#1267&lt;/a&gt;)&lt;/li&gt;
		&lt;li&gt;fixed different ETag length on 32/64 platforms (&lt;a href="http://trac.lighttpd.net/trac/ticket/1279"&gt;#1279&lt;/a&gt;)&lt;/li&gt;
		&lt;li&gt;fixed conditional dir-listing.exclude (&lt;a href="http://trac.lighttpd.net/trac/ticket/930"&gt;#930&lt;/a&gt;)&lt;/li&gt;
		&lt;li&gt;fixed &lt;span class="caps"&gt;CONTENT&lt;/span&gt;_LENGTH = -1 in mod_cgi (&lt;a href="http://trac.lighttpd.net/trac/ticket/1276"&gt;#1276&lt;/a&gt;)&lt;/li&gt;
		&lt;li&gt;fixed typecast of &lt;span class="caps"&gt;NULL&lt;/span&gt; on execl() (&lt;a href="http://trac.lighttpd.net/trac/ticket/1235"&gt;#1235&lt;/a&gt;)&lt;/li&gt;
		&lt;li&gt;fixed extra Content-Length header on 1xx, 204 and 304 (&lt;a href="http://trac.lighttpd.net/trac/ticket/1002"&gt;#1002&lt;/a&gt;)&lt;/li&gt;
		&lt;li&gt;fixed mysql server reconnects (&lt;a href="http://trac.lighttpd.net/trac/ticket/518"&gt;#518&lt;/a&gt;)&lt;/li&gt;
		&lt;li&gt;fixed prctl() usage (&lt;a href="http://trac.lighttpd.net/trac/ticket/1310"&gt;#1310&lt;/a&gt;, &lt;a href="http://trac.lighttpd.net/trac/ticket/1333"&gt;#1333&lt;/a&gt;)&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://secweb.se/en/advisories/lighttpd-fastcgi-remote-vulnerability/"&gt;fixed FastCGI header overrun in mod_proxy_backend_fastcgi&lt;/a&gt; (reported by mattias@secweb.se)&lt;/li&gt;
		&lt;li&gt;fixed mem-leak in mod_auth (reported by Stefan Esser)&lt;/li&gt;
		&lt;li&gt;fixed crash with md5-sess and cnonce not set in mod_auth (reported by Stefan Esser)&lt;/li&gt;
		&lt;li&gt;fixed missing check for base64 encoded string in mod_auth and Basic auth
    (reported by Stefan Esser)&lt;/li&gt;
		&lt;li&gt;fixed possible crash in Auth-Digest header parser on trailing WS in
    mod_auth (reported by Stefan Esser)&lt;/li&gt;
	&lt;/ul&gt;
</description>
      <pubDate>Thu, 06 Sep 2007 22:21:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:546c73e8-eb68-4171-96a3-578a881f1b14</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2007/09/06/pre-release-lighttpd-1-5-0-r1992</link>
      <category>lighttpd</category>
      <category>1.5.0</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/4760</trackback:ping>
    </item>
    <item>
      <title>There is an Angel for lighty</title>
      <description>&lt;p&gt;In &lt;a href="http://trac.lighttpd.net/trac/changeset/1981"&gt;changeset [1981]&lt;/a&gt; I added a angel process to the lighttpd build. It solves several problems when we have everything running as expected:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;span class="caps"&gt;SIGHUP&lt;/span&gt; leads to a graceful restart (config reloads)&lt;/li&gt;
		&lt;li&gt;&lt;span class="caps"&gt;SIGINT&lt;/span&gt; is graceful shutdown as now&lt;/li&gt;
		&lt;li&gt;all unhandled signals lead to a restart of the lighttpd process&lt;/li&gt;
	&lt;/ul&gt;
&lt;p&gt;We have to be careful with the angel as it will stay alive and stay running as the user it is started as (usually root). That&amp;#8217;s the only way we can restart lighttpd from scratch on restart.&lt;/p&gt;


	&lt;p&gt;This will also solve other problems in 1.5.0:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://trac.lighttpd.net/trac/ticket/1271"&gt;bug #1271, unsafe logfiles&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;... and perhaps others&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;The angel has to implement some security measures to stay clean:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;the angel can only start the lighttpd binary which is compiled into the angel at compile time&lt;/li&gt;
		&lt;li&gt;if run as root the starting user has to be root too or be in the same group as the owner of the lighttpd binary&lt;/li&gt;
		&lt;li&gt;... and perhaps more restrictions&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;As extra features we will add ulimit support to let lighttpd die in case it is using to much memory. But that&amp;#8217;s for later.&lt;/p&gt;</description>
      <pubDate>Sun, 02 Sep 2007 22:36:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:e0c50ba0-763d-4ab4-af0e-bf7ef161f803</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2007/09/02/there-is-an-angel-for-lighty</link>
      <category>lighttpd</category>
      <category>angel</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/4739</trackback:ping>
    </item>
    <item>
      <title>lighttpd at the Kieler LinuxTage</title>
      <description>&lt;p&gt;I&amp;#8217;ll give a presentation on lighttpd at the &lt;a href="http://www.kieler-linuxtage.de/"&gt;Kieler Linuxtage&lt;/a&gt; on September 8th, 2007. I&amp;#8217;ll talk about lighttpd, its past and future, the special modules and performance.&lt;/p&gt;


	&lt;p&gt;I will also try to give some content to the un-conference going on at the same time. Perhaps some MySQL Proxy stuff ?&lt;/p&gt;
</description>
      <pubDate>Tue, 28 Aug 2007 11:43:55 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:95deccaf-a786-4ae4-a519-b09aee7cf5b3</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2007/08/28/lighttpd-at-the-kieler-linuxtage</link>
      <category>lighttpd</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/4726</trackback:ping>
    </item>
    <item>
      <title>Bug fixing marathon</title>
      <description>&lt;p&gt;Looking at the &lt;a href="http://trac.lighttpd.net/trac/report/9"&gt;bug-system&lt;/a&gt; a few days ago we had something like 460 bugs open.&lt;/p&gt;


	&lt;p&gt;Quite a bunch of them were duplicates of the same issue and others were already fixed in the code and just not closed in the bug-system.&lt;/p&gt;


	&lt;p&gt;Scanning through the bugs I wrote some more test-cases to verify that the reports were valid and along the way at least these bugs got fixed:&lt;/p&gt;


&lt;pre&gt;
  * added dir-listing.set-footer in mod_dirlisting (#1277)
  * fixed hardcoded font-sizes in mod_dirlisting (#1267)
  * fixed different ETag length on 32/64 platforms (#1279)
  * fixed compression of files &amp;lt; 128 bytes by disabling compression (#1241)
  * fixed mysql server reconnects (#518)
  * fixed disabled keep-alive for dynamic content with HTTP/1.0 (#1166)
  * fixed crash on mixed EOL sequences in mod_cgi
  * fixed key compare (#1287)
  * fixed invalid char in header values (#1286)
  * fixed invalid "304 Not Modified" on broken timestamps
  * fixed endless loop on shrinked files with sendfile() on BSD (#1289)
  * fixed counter overrun in ?auto in mod_status (#909)
  * fixed too aggresive caching of nested conditionals (#41)
  * fixed possible overflow in unix-socket path checks on BSD (#713)
  * fixed extra Content-Length header on 1xx, 204 and 304 (#1002)
  * fixed handling of duplicate If-Modified-Since to return 304
  * fixed extracting status code from NPH scripts (#1125)
  * removed config-check if passwd files exist (#1188)
&lt;/pre&gt;

	&lt;p&gt;Now the bug-count is at 413, a start.&lt;/p&gt;
</description>
      <pubDate>Sat, 18 Aug 2007 12:02:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:84e481de-532a-4730-96a6-d5b4e8858929</guid>
      <author>jan</author>
      <link>http://blog.lighttpd.net/articles/2007/08/18/bug-fixing-marathon</link>
      <category>lighttpd</category>
      <trackback:ping>http://blog.lighttpd.net/articles/trackback/4701</trackback:ping>
    </item>
  </channel>
</rss>
