Project

General

Profile

DevelProblemAndSolution » History » Revision 3

Revision 2 (moo, 2007-08-14 04:51) → Revision 3/19 (moo, 2007-08-14 05:04)

[[PageOutline]] 

 = Developmenet Problem And Solution = 
 This page is meant to list Problem And Solutions implementing lighttpd. Any feature requests should be go to [/trac/newticket ticket system]. 

 = Redundant FastCGI/SCGI etc = 

 == Problem == 
 In lighttpd 1.4, most of the source code of mod_cgi, mod_scgi and mod_proxy were cut'n'pasted from mod_fastcgi. 

 Why problem: Why: Redundant code make it hard to maintain.  

 == Solution == 
 Combine combine them into mod_proxy_core and add protocols around it 
     * the core provides 
           * config handling 
           * connect/retry on failure 
           * fork/restart worker child on dead. (easier to improve native win32 support) 
           * balancing 
           * x-sendfile  
     * the protocol backends take care of 
           * preparing the environment (most cgi env code can be shared) 
           * encode/decode data 
           * handle io  

 Why: scgi/fastcgi/ejb/http or whatever, are just protocols that we can use to send requests to and get response from backend. 

 == Status == 
 Implemented in 1.5.0 

 = Redundant and simple config handling = 

 == Problem == 
 The current config handling is done in core and plugin. The core parse it, convert the config into a conditional tree, and the plugin pick on of the values (use PATCH) and use it. 

 Why problem: It's sure easier to fix the 1 core instead of all the plugins, the plugin is still handling too much config handling logical and i't hard to improve. 

 == Solution = 
 combine most of config handling into core, including: 
  * alloc/free plugin data 
  * init default values 
  * insert values from config (into plugin data) 
  * patch(pick) values from plugin data for connection. this is done by calling a function ptr, but we can kill the string comparisons, lower or higher performance? 

 == Status == 
 Scheduled but not done, and is likely to be post pound to next major release.