You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by hu...@apache.org on 2012/06/26 13:16:37 UTC

svn commit: r1353958 - /httpd/httpd/trunk/docs/manual/developer/modguide.html.en

Author: humbedooh
Date: Tue Jun 26 11:16:36 2012
New Revision: 1353958

URL: http://svn.apache.org/viewvc?rev=1353958&view=rev
Log:
xforms

Modified:
    httpd/httpd/trunk/docs/manual/developer/modguide.html.en

Modified: httpd/httpd/trunk/docs/manual/developer/modguide.html.en
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/developer/modguide.html.en?rev=1353958&r1=1353957&r2=1353958&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/developer/modguide.html.en (original)
+++ httpd/httpd/trunk/docs/manual/developer/modguide.html.en Tue Jun 26 11:16:36 2012
@@ -41,7 +41,7 @@ Server 2.4</p>
 <h2><a name="introduction" id="introduction">Introduction</a></h2>
 <h3><a name="what" id="what">What we will be discussing in this document</a></h3>
 <p>
-This document will discuss how you can easily create modules for the Apache 
+This document will discuss how you can create modules for the Apache 
 HTTP Server 2.4, by exploring an example module called 
 <code>mod_example</code>. In the first part of this document, the purpose 
 of this module will be to calculate and print out various digest values for 
@@ -248,6 +248,8 @@ can create. Some other ways of hooking a
 <li><code>ap_hook_pre_config</code>: Place a hook that executes before any configuration data has been read (very early hook)</li>
 <li><code>ap_hook_post_config</code>: Place a hook that executes after configuration has been parsed, but before the server has forked</li>
 <li><code>ap_hook_translate_name</code>: Place a hook that executes when a URI needs to be translated into a filename on the server (think <code>mod_rewrite</code>)</li>
+<li><code>ap_hook_quick_handler</code>: Similar to <code>ap_hook_handler</code>, except it is run before any other request hooks (translation, auth, fixups etc)</li>
+<li><code>ap_hook_log_transaction</code>: Place a hook that executes when the server is about to add a log entry of the current request</li>
 </ul>
 
 
@@ -325,9 +327,10 @@ request_req </code> structure are:
 <li><code>r-&gt;args (char*):</code> Contains the query string of the request, if any</li>
 <li><code>r-&gt;headers_in (apr_table_t*):</code> Contains all the headers sent by the client</li>
 <li><code>r-&gt;connection (conn_rec*):</code> A record containing information about the current connection</li>
+<li><code>r-&gt;user (char*):</code> If the URI requires authentication, this is set to the username provided</li>
 <li><code>r-&gt;useragent_ip (char*):</code> The IP address of the client connecting to us</li>
-<li><code>r-&gt;pool (apr_pool_t*)</code>: The memory pool of this request. We'll discuss this in the "
-<a href="#memory">Memory management</a>" chapter.</li>
+<li><code>r-&gt;pool (apr_pool_t*)</code>: The memory pool of this request. We'll discuss this in the 
+"<a href="#memory">Memory management</a>" chapter.</li>
 </ul>
 <p>
 A complete list of all the values contained with in the <code>request_req</code> structure can be found in 
@@ -1313,10 +1316,11 @@ two configurations and decide how they a
 
 <pre class="prettyprint lang-c">
 void* merge_dir_conf(apr_pool_t* pool, void* BASE, void* ADD) {
-    example_config* base = (example_config *) BASE ;
-    example_config* add = (example_config *) ADD ;
-    example_config* conf = (example_config *) create_dir_conf(pool, "Merged configuration");
+    example_config* base = (example_config *) BASE ; /* This is what was set in the parent context */
+    example_config* add = (example_config *) ADD ;   /* This is what is set in the new context */
+    example_config* conf = (example_config *) create_dir_conf(pool, "Merged configuration"); /* This will be the merged configuration */
     
+    /* Merge configurations */
     conf-&gt;enabled = ( add-&gt;enabled == 0 ) ? base-&gt;enabled : add-&gt;enabled ;
     conf-&gt;typeOfAction = add-&gt;typeOfAction ? add-&gt;typeOfAction : base-&gt;typeOfAction;
     strcpy(conf-&gt;path, strlen(add-&gt;path) ? add-&gt;path : base-&gt;path);
@@ -1658,7 +1662,7 @@ static int example_handler(request_req *
     if (formData) {
         int i;
         for (i = 0; formData[i]; i++) {
-            ap_rprintf(r, "%s == %s\n", formData[i]-&gt;key, formData[i]-&gt;value);
+            ap_rprintf(r, "%s = %s\n", formData[i]-&gt;key, formData[i]-&gt;value);
         }
     }
     return OK;