<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-101</id>
	<title>Nabble - Apache HTTP Server - Module Writers</title>
	<updated>2008-11-20T00:12:36Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/Apache-HTTP-Server---Module-Writers-f101.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Apache-HTTP-Server---Module-Writers-f101.html" />
	<subtitle type="html">The Apache modules mailing list is for discussion of issues surrounding the development of web server modules using the Apache module API.</subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-20596759</id>
	<title>Re: load modules at run-time without restarting httpd</title>
	<published>2008-11-20T00:12:36Z</published>
	<updated>2008-11-20T00:12:36Z</updated>
	<author>
		<name>William A. Rowe, Jr.</name>
	</author>
	<content type="html">Sorin Manolache wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; They expect their initialization to occur when there is nothing but a parent
&lt;br&gt;&amp;gt;&amp;gt; process present.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; True, but if you send SIGUSR1 to the parent apache process, the
&lt;br&gt;&amp;gt; children will exit gracefully and the parent will remain alone. Then,
&lt;br&gt;&amp;gt; it will unload the DSOs (the modules) and reload them. At reload, it
&lt;br&gt;&amp;gt; will reload the new module. I tried it (but on a server with no
&lt;br&gt;&amp;gt; load---I don't know how it behaves/how long it takes on a server that
&lt;br&gt;&amp;gt; is processing tens of thousands of requests at the moment of the
&lt;br&gt;&amp;gt; SIGUSR1) and it worked.
&lt;/div&gt;&lt;br&gt;Right, you are effectively restarting the server. &amp;nbsp;The difference is,
&lt;br&gt;the server continues to serve out pages using the old workers until all
&lt;br&gt;the outstanding requests are satisfied. &amp;nbsp;Still, you cannot load a module
&lt;br&gt;into the running workers.
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/load-modules-at-run-time-without-restarting-httpd-tp20593969p20596759.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20596621</id>
	<title>Re: load modules at run-time without restarting httpd</title>
	<published>2008-11-19T23:59:58Z</published>
	<updated>2008-11-19T23:59:58Z</updated>
	<author>
		<name>Sorin Manolache</name>
	</author>
	<content type="html">On Thu, Nov 20, 2008 at 03:42, William A. Rowe, Jr. &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20596621&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;wrowe@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; Andrej van der Zee wrote:
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I was wondering if it is possible to load modules at run-time, without
&lt;br&gt;&amp;gt;&amp;gt; restarting httpd?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; No.
&lt;br&gt;&lt;br&gt;Yes.
&lt;br&gt;&lt;br&gt;&amp;gt; They expect their initialization to occur when there is nothing but a parent
&lt;br&gt;&amp;gt; process present.
&lt;br&gt;&lt;br&gt;True, but if you send SIGUSR1 to the parent apache process, the
&lt;br&gt;children will exit gracefully and the parent will remain alone. Then,
&lt;br&gt;it will unload the DSOs (the modules) and reload them. At reload, it
&lt;br&gt;will reload the new module. I tried it (but on a server with no
&lt;br&gt;load---I don't know how it behaves/how long it takes on a server that
&lt;br&gt;is processing tens of thousands of requests at the moment of the
&lt;br&gt;SIGUSR1) and it worked.
&lt;br&gt;&lt;br&gt;S
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/load-modules-at-run-time-without-restarting-httpd-tp20593969p20596621.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20594660</id>
	<title>Re: Howto implement a new algorithm scheduler in mod_proxy_balancer</title>
	<published>2008-11-19T20:01:17Z</published>
	<updated>2008-11-19T20:01:17Z</updated>
	<author>
		<name>Sander Temme-2</name>
	</author>
	<content type="html">&lt;br&gt;On Oct 25, 2008, at 7:57 PM, ricardo13 wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; I will build a scheduler that receive a little message from cluster. &amp;nbsp;
&lt;br&gt;&amp;gt; At
&lt;br&gt;&amp;gt; cluster, there is a process that send messages about CPU.
&lt;br&gt;&lt;br&gt;Like an SNMP agent? &amp;nbsp;That way you wouldn't have to re-invent the wheel.
&lt;br&gt;&lt;br&gt;&amp;gt; Then the server I need to build a separate program that receives that
&lt;br&gt;&amp;gt; message and passes to the apache.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Can I use socket to communicate external process with apache ??? Or &amp;nbsp;
&lt;br&gt;&amp;gt; shared
&lt;br&gt;&amp;gt; memory ??
&lt;br&gt;&lt;br&gt;You can set up a shared memory area from your Apache server and have &amp;nbsp;
&lt;br&gt;your monitoring process access that as well. &amp;nbsp;Whether you have that be &amp;nbsp;
&lt;br&gt;an external program or something forked from the httpd parent doesn't &amp;nbsp;
&lt;br&gt;matter, as long as they (are allowed to) attach to the same shared &amp;nbsp;
&lt;br&gt;memory segment.
&lt;br&gt;&lt;br&gt;S.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Sander Temme
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20594660&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sctemme@...&lt;/a&gt;
&lt;br&gt;PGP FP: 51B4 8727 466A 0BC3 69F4 &amp;nbsp;B7B8 B2BE BC40 1529 24AF
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;smime.p7s&lt;/strong&gt; (3K) &lt;a href=&quot;http://www.nabble.com/attachment/20594660/0/smime.p7s&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Howto-implement-a-new-algorithm-scheduler-in-mod_proxy_balancer-tp20082207p20594660.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20594040</id>
	<title>Re: load modules at run-time without restarting httpd</title>
	<published>2008-11-19T18:42:37Z</published>
	<updated>2008-11-19T18:42:37Z</updated>
	<author>
		<name>William A. Rowe, Jr.</name>
	</author>
	<content type="html">Andrej van der Zee wrote:
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I was wondering if it is possible to load modules at run-time, without
&lt;br&gt;&amp;gt; restarting httpd?
&lt;br&gt;&lt;br&gt;No.
&lt;br&gt;&lt;br&gt;They expect their initialization to occur when there is nothing but a parent
&lt;br&gt;process present.
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/load-modules-at-run-time-without-restarting-httpd-tp20593969p20594040.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20593969</id>
	<title>load modules at run-time without restarting httpd</title>
	<published>2008-11-19T18:33:41Z</published>
	<updated>2008-11-19T18:33:41Z</updated>
	<author>
		<name>Andrej van der Zee-4</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I was wondering if it is possible to load modules at run-time, without
&lt;br&gt;restarting httpd?
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Andrej
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/load-modules-at-run-time-without-restarting-httpd-tp20593969p20593969.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20570256</id>
	<title>override apr_proc_create in own module</title>
	<published>2008-11-18T14:54:46Z</published>
	<updated>2008-11-18T14:54:46Z</updated>
	<author>
		<name>Andrej van der Zee-4</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I was wondering if it is possible to override the function
&lt;br&gt;&amp;quot;apr_proc_create&amp;quot; with my own version in my own module. This function
&lt;br&gt;is eventually called by &amp;quot;ap_os_create_privilileged_process&amp;quot; in my own
&lt;br&gt;module. I rather do not want to change the apr-source code, therefor I
&lt;br&gt;am looking for a solution to override the apr-function only for my own
&lt;br&gt;module. Is there a way to do this? If so, how should I do this?
&lt;br&gt;&lt;br&gt;Thank you,
&lt;br&gt;Andrej
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/override-apr_proc_create-in-own-module-tp20570256p20570256.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20568441</id>
	<title>Re: APR, Shared Memory and extern process</title>
	<published>2008-11-18T13:20:17Z</published>
	<updated>2008-11-18T13:20:17Z</updated>
	<author>
		<name>ricardo13</name>
	</author>
	<content type="html">&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Sorin Manolache wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;On Tue, Nov 18, 2008 at 20:17, ricardo13 &amp;lt;ricardoogrande@gmail.com&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'm writing a apache's module that comunicate with a extern process.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; My extern process is built in C:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;char* &amp;nbsp;shm_address;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int &amp;nbsp; &amp;nbsp;shmid;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;key_t &amp;nbsp;shmkey;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;shmkey = 5678;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;shmid = shmget(shmkey, SIZEOFSHMSEG, 0666);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (shmid == -1)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printf(&amp;quot;main: shmget() failed\n&amp;quot;);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;shm_address = shmat(shmid, NULL, 0);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( shm_address==NULL )
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printf(&amp;quot;main: shmat() failed\n&amp;quot;);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while(1) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(strcmp(shm_address, &amp;quot;:&amp;quot;) == 0) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;strcpy(shm_address, data);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int rc = shmdt(shm_address);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rc==-1)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printf(&amp;quot;main: shmdt() failed\n&amp;quot;);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Now I want to write a module that take (or get) the information in this
&lt;br&gt;&amp;gt; segment.
&lt;br&gt;&amp;gt; Can someone help me ??
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank You
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ricardo
&lt;br&gt;&lt;br&gt;Use the post_config hook because it is run in the parent of all apache
&lt;br&gt;children. There, you simply shmget and shmat. Also, use
&lt;br&gt;apr_pool_register_cleanup in order to register a callback that will
&lt;br&gt;shmdt your shared memory segment when the config pool is destroyed,
&lt;br&gt;i.e. when apache is killed or the configuration reloaded.
&lt;br&gt;&lt;br&gt;I'm newbie Apache's module.
&lt;br&gt;I'm implementing a new algorithm load balance and extern process repass the IP to module.
&lt;br&gt;Then module redirect requisition to IP's machine.
&lt;br&gt;&lt;br&gt;I try it:
&lt;br&gt;&lt;br&gt;static proxy_worker *find_best_bytest(proxy_balancer *balancer, request_rec *r) 
&lt;br&gt;&lt;br&gt;&amp;nbsp; int i;
&lt;br&gt;&amp;nbsp; int valor;
&lt;br&gt;&amp;nbsp; char* shm_address;
&lt;br&gt;&amp;nbsp; int shmid;
&lt;br&gt;&amp;nbsp; key_t shmkey = 5678;
&lt;br&gt;&amp;nbsp; proxy_worker *mycandidate;
&lt;br&gt;&amp;nbsp; proxy_worker *worker;
&lt;br&gt;&lt;br&gt;&amp;nbsp; shmid = shmget(shmkey, 50, IPC_CREAT | 0666);
&lt;br&gt;&amp;nbsp; shm_address = shmat(shmid, NULL, 0);
&lt;br&gt;&lt;br&gt;&amp;nbsp; worker = (proxy_worker*) balancer-&amp;gt;workers-&amp;gt;elts;
&lt;br&gt;&lt;br&gt;&amp;nbsp; for(i=0; i &amp;lt; balancer-&amp;gt;workers-&amp;gt;nelts; ++i, ++worker)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if((valor = strcmp(worker-&amp;gt;hostname,shm_address)) == 0)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mycandidate = worker;
&lt;br&gt;&lt;br&gt;&amp;nbsp; //ap_rprintf(r, &amp;quot;Memoria= %s&amp;quot;, shm_address);
&lt;br&gt;&lt;br&gt;But don't correct
&lt;br&gt;&lt;br&gt;Thank you
&lt;br&gt;&lt;br&gt;Ricardo
&lt;br&gt;&lt;br&gt;I hope this helps. If not, I must have some code skeleton at work, I
&lt;br&gt;can find it tomorrow for you.
&lt;br&gt;&lt;br&gt;S
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/APR%2C-Shared-Memory-and-extern-process-tp20566322p20568441.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20567943</id>
	<title>Re: APR, Shared Memory and extern process</title>
	<published>2008-11-18T12:49:51Z</published>
	<updated>2008-11-18T12:49:51Z</updated>
	<author>
		<name>Sorin Manolache</name>
	</author>
	<content type="html">On Tue, Nov 18, 2008 at 20:17, ricardo13 &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20567943&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ricardoogrande@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'm writing a apache's module that comunicate with a extern process.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; My extern process is built in C:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;char* &amp;nbsp;shm_address;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int &amp;nbsp; &amp;nbsp;shmid;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;key_t &amp;nbsp;shmkey;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;shmkey = 5678;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;shmid = shmget(shmkey, SIZEOFSHMSEG, 0666);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (shmid == -1)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printf(&amp;quot;main: shmget() failed\n&amp;quot;);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;shm_address = shmat(shmid, NULL, 0);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( shm_address==NULL )
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printf(&amp;quot;main: shmat() failed\n&amp;quot;);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while(1) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(strcmp(shm_address, &amp;quot;:&amp;quot;) == 0) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;strcpy(shm_address, data);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int rc = shmdt(shm_address);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rc==-1)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printf(&amp;quot;main: shmdt() failed\n&amp;quot;);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Now I want to write a module that take (or get) the information in this
&lt;br&gt;&amp;gt; segment.
&lt;br&gt;&amp;gt; Can someone help me ??
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank You
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ricardo
&lt;/div&gt;&lt;br&gt;Use the post_config hook because it is run in the parent of all apache
&lt;br&gt;children. There, you simply shmget and shmat. Also, use
&lt;br&gt;apr_pool_register_cleanup in order to register a callback that will
&lt;br&gt;shmdt your shared memory segment when the config pool is destroyed,
&lt;br&gt;i.e. when apache is killed or the configuration reloaded.
&lt;br&gt;&lt;br&gt;I hope this helps. If not, I must have some code skeleton at work, I
&lt;br&gt;can find it tomorrow for you.
&lt;br&gt;&lt;br&gt;S
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/APR%2C-Shared-Memory-and-extern-process-tp20566322p20567943.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20566322</id>
	<title>APR, Shared Memory and extern process</title>
	<published>2008-11-18T11:17:25Z</published>
	<updated>2008-11-18T11:17:25Z</updated>
	<author>
		<name>ricardo13</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I'm writing a apache's module that comunicate with a extern process.
&lt;br&gt;&lt;br&gt;My extern process is built in C:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; char* &amp;nbsp;shm_address;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int &amp;nbsp; &amp;nbsp;shmid;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; key_t &amp;nbsp;shmkey;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; shmkey = 5678;
&lt;br&gt;&amp;nbsp; &amp;nbsp; 	shmid = shmget(shmkey, SIZEOFSHMSEG, 0666);
&lt;br&gt;&amp;nbsp; &amp;nbsp; 	if (shmid == -1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 	printf(&amp;quot;main: shmget() failed\n&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; 	shm_address = shmat(shmid, NULL, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; 	if ( shm_address==NULL )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 	printf(&amp;quot;main: shmat() failed\n&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while(1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(strcmp(shm_address, &amp;quot;:&amp;quot;) == 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; strcpy(shm_address, data);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; 	int rc = shmdt(shm_address);
&lt;br&gt;&amp;nbsp; &amp;nbsp; 	if (rc==-1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 	printf(&amp;quot;main: shmdt() failed\n&amp;quot;);
&lt;br&gt;&lt;br&gt;&lt;br&gt;Now I want to write a module that take (or get) the information in this segment.
&lt;br&gt;Can someone help me ??
&lt;br&gt;&lt;br&gt;Thank You
&lt;br&gt;&lt;br&gt;Ricardo 
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/APR%2C-Shared-Memory-and-extern-process-tp20566322p20566322.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20529724</id>
	<title>Re: config is not read correctly</title>
	<published>2008-11-16T12:36:32Z</published>
	<updated>2008-11-16T12:36:32Z</updated>
	<author>
		<name>Jos Ewert</name>
	</author>
	<content type="html">Ahhh found out what went wrong, I made a wrong merge. the &amp;quot;local&amp;quot; server config 
&lt;br&gt;contained the right config , where the one that actually made it into the final 
&lt;br&gt;config was the &amp;quot;base&amp;quot; config.
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/config-is-not-read-correctly-tp20520784p20529724.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20524961</id>
	<title>developing custom authentication module</title>
	<published>2008-11-16T04:44:32Z</published>
	<updated>2008-11-16T04:44:32Z</updated>
	<author>
		<name>Sam Carleton-2</name>
	</author>
	<content type="html">I am ISV developing a system that is using Apache. All the frontend's
&lt;br&gt;for system I am developing are all custom desktop applications, or web
&lt;br&gt;browsers controls wrapped in my own code. Thus users are not going to
&lt;br&gt;be entering username and password, the username and password used will
&lt;br&gt;be depended on which frontend being used.
&lt;br&gt;&lt;br&gt;It is time for me to implement authentication correctly. I have two
&lt;br&gt;objectives with respect to authentication:
&lt;br&gt;&lt;br&gt;1: Protect my customers from unauthorized users.
&lt;br&gt;2: Protect myself from customers hacking the authorization system to
&lt;br&gt;get access to features in which they have not purchased.
&lt;br&gt;&lt;br&gt;#1 looks straight forward: If my impression is correct, I simply need
&lt;br&gt;to implement my own custom provider to check the custom username and
&lt;br&gt;password the frontends give it.
&lt;br&gt;&lt;br&gt;Q: Is there documentation out there somewhere on how to implementing a
&lt;br&gt;new provider?
&lt;br&gt;&lt;br&gt;#2 looks a lot more tricky. It seems that I will need to deviate from
&lt;br&gt;the normal way Apache's authentication works. For starters, NONE of
&lt;br&gt;the configuration can be in the http.conf, not like it is now with
&lt;br&gt;AuthType, AuthBasicProvider, etc. There is a &amp;lt;Location&amp;gt; directives in
&lt;br&gt;the conf that will have a custom directive for my custom Apache
&lt;br&gt;module. I would like to fully wire up this custom provider within this
&lt;br&gt;directive. To add to the complexity, there are different levels of
&lt;br&gt;authentication: None required, user, admin and there will be different
&lt;br&gt;locations under the &amp;lt;Location&amp;gt; directive for each, again, this all
&lt;br&gt;needs to be wired up in code when the custom directive for my custom
&lt;br&gt;Apache module is called.
&lt;br&gt;&lt;br&gt;Q: Any suggestions on how I might achieve this?
&lt;br&gt;&lt;br&gt;Sam
&lt;br&gt;&lt;br&gt;P.S. I do NOT own the book on writing Apache Module in 2.0, just the
&lt;br&gt;older 1.3 book. Would any of this be addressed in that book?
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/developing-custom-authentication-module-tp20524961p20524961.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20524421</id>
	<title>Re: config is not read correctly</title>
	<published>2008-11-16T03:36:26Z</published>
	<updated>2008-11-16T03:36:26Z</updated>
	<author>
		<name>Sorin Manolache</name>
	</author>
	<content type="html">On Sun, Nov 16, 2008 at 00:51, Jos Ewert &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20524421&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;flami@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Im trying to modify mod_fcgid to suit my needs, but I have a problem with
&lt;br&gt;&amp;gt; reading my newly added config directive.
&lt;br&gt;&amp;gt; For some reason it sets the config in my setter right but in the getter it
&lt;br&gt;&amp;gt; always reads the default value.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Whats even stranger is that I used this with mod_fcgid 1.10 too and it works.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; e.g.
&lt;br&gt;&amp;gt; set :
&lt;br&gt;&amp;gt; &amp;config : 7092232, &amp;config-&amp;gt;homedir : 7101472
&lt;br&gt;&amp;gt; get:
&lt;br&gt;&amp;gt; &amp;config : 7100440, &amp;config-&amp;gt;homedir : 7845640
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; to set the value I use:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ##########
&lt;br&gt;&amp;gt; &amp;nbsp;const char *set_homedir(cmd_parms *cmd, void *dirconfig,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; const char *uid, const char *gid)
&lt;br&gt;&amp;gt; &amp;nbsp;{
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; server_rec *s = cmd-&amp;gt;server;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; fcgid_server_conf *config =
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ap_get_module_config(s-&amp;gt;module_config, &amp;fcgid_module);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; struct passwd *pw;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; if((pw = getpwuid(ap_uname2id(uid))) == NULL){
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fprintf(stderr,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;Critical Error: You have specified an invalid user in
&lt;br&gt;&amp;gt; SuexecUserGroup.\n&amp;quot;);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exit(1);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; config-&amp;gt;homedir = strdup(pw-&amp;gt;pw_dir);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return NULL;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp;}
&lt;br&gt;&amp;gt; #########
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; To get the config:
&lt;br&gt;&amp;gt; ###########
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; char *get_homedir(request_rec * r)
&lt;br&gt;&amp;gt; &amp;nbsp;{
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; server_rec *s = r-&amp;gt;server;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; fcgid_server_conf *config =
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ap_get_module_config(s-&amp;gt;module_config, &amp;fcgid_module);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return config-&amp;gt;homedir;
&lt;br&gt;&amp;gt; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ###########
&lt;br&gt;&amp;gt; I removed all the debugging stuff I added to make it more readable.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; if you want to take a look at the whole file + the other 2 I modified:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://pastebin.com/f4c834a94&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pastebin.com/f4c834a94&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Any ideas what could have gone wrong?
&lt;/div&gt;&lt;br&gt;r-&amp;gt;server in get_homedir points to the server object corresponding to
&lt;br&gt;the virtual host of the request. I _guess_ it is different from the
&lt;br&gt;global server object. So, the ap_get_module_config in set_* and the
&lt;br&gt;ap_get_module_config in get_* could give you two distinct config
&lt;br&gt;objects.
&lt;br&gt;&lt;br&gt;S
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/config-is-not-read-correctly-tp20520784p20524421.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20520784</id>
	<title>config is not read correctly</title>
	<published>2008-11-15T15:51:44Z</published>
	<updated>2008-11-15T15:51:44Z</updated>
	<author>
		<name>Jos Ewert</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;Im trying to modify mod_fcgid to suit my needs, but I have a problem with 
&lt;br&gt;reading my newly added config directive.
&lt;br&gt;For some reason it sets the config in my setter right but in the getter it 
&lt;br&gt;always reads the default value.
&lt;br&gt;&lt;br&gt;Whats even stranger is that I used this with mod_fcgid 1.10 too and it works.
&lt;br&gt;&lt;br&gt;e.g. 
&lt;br&gt;set :
&lt;br&gt;&amp;config : 7092232, &amp;config-&amp;gt;homedir : 7101472 
&lt;br&gt;get:
&lt;br&gt;&amp;config : 7100440, &amp;config-&amp;gt;homedir : 7845640
&lt;br&gt;&lt;br&gt;to set the value I use:
&lt;br&gt;&lt;br&gt;##########
&lt;br&gt;&amp;nbsp;const char *set_homedir(cmd_parms *cmd, void *dirconfig, 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;const char *uid, const char *gid) 
&lt;br&gt;&amp;nbsp;{ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;server_rec *s = cmd-&amp;gt;server; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fcgid_server_conf *config = &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ap_get_module_config(s-&amp;gt;module_config, &amp;fcgid_module); 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;struct passwd *pw; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if((pw = getpwuid(ap_uname2id(uid))) == NULL){ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fprintf(stderr, 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Critical Error: You have specified an invalid user in 
&lt;br&gt;SuexecUserGroup.\n&amp;quot;); 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; exit(1); 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else { 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;config-&amp;gt;homedir = strdup(pw-&amp;gt;pw_dir);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return NULL; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;&amp;nbsp;} &amp;nbsp;
&lt;br&gt;#########
&lt;br&gt;&lt;br&gt;To get the config:
&lt;br&gt;###########
&lt;br&gt;&lt;br&gt;char *get_homedir(request_rec * r) 
&lt;br&gt;&amp;nbsp;{ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;server_rec *s = r-&amp;gt;server; 	
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fcgid_server_conf *config = 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ap_get_module_config(s-&amp;gt;module_config, &amp;fcgid_module); 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return config-&amp;gt;homedir;
&lt;br&gt;&amp;nbsp;} &amp;nbsp;
&lt;br&gt;&lt;br&gt;###########
&lt;br&gt;I removed all the debugging stuff I added to make it more readable.
&lt;br&gt;&lt;br&gt;if you want to take a look at the whole file + the other 2 I modified:
&lt;br&gt;&lt;a href=&quot;http://pastebin.com/f4c834a94&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pastebin.com/f4c834a94&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Any ideas what could have gone wrong? 
&lt;br&gt;&lt;br&gt;Greetings,
&lt;br&gt;Josi
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/config-is-not-read-correctly-tp20520784p20520784.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20485463</id>
	<title>handling custom authentication</title>
	<published>2008-11-13T09:32:04Z</published>
	<updated>2008-11-13T09:32:04Z</updated>
	<author>
		<name>Sam Carleton-2</name>
	</author>
	<content type="html">I am ISV developing a system that is using Apache. &amp;nbsp;All the frontend's
&lt;br&gt;for system I am developing are all custom desktop applications, or web
&lt;br&gt;browsers controls wrapped in my own code. &amp;nbsp;Thus users are not going to
&lt;br&gt;be entering username and password, the username and password used will
&lt;br&gt;be depended on which frontend being used.
&lt;br&gt;&lt;br&gt;It is time for me to implement authentication correctly. &amp;nbsp;I have two
&lt;br&gt;objectives with respect to authentication:
&lt;br&gt;&lt;br&gt;1: Protect my customers from unauthorized users.
&lt;br&gt;2: Protect myself from customers hacking the authorization system to
&lt;br&gt;get access to features in which they have not purchased.
&lt;br&gt;&lt;br&gt;#1 looks straight forward: &amp;nbsp;If my impression is correct, I simply need
&lt;br&gt;to implement my own custom provider to check the custom username and
&lt;br&gt;password the frontends give it.
&lt;br&gt;&lt;br&gt;Q: Is there documentation out there somewhere on how to implementing a
&lt;br&gt;new provider?
&lt;br&gt;&lt;br&gt;#2 looks a lot more tricky. &amp;nbsp;It seems that I will need to deviate from
&lt;br&gt;the normal way Apache's authentication works. &amp;nbsp;For starters, NONE of
&lt;br&gt;the configuration can be in the http.conf, not like it is now with
&lt;br&gt;AuthType, AuthBasicProvider, etc. &amp;nbsp;There is a &amp;lt;Location&amp;gt; directives in
&lt;br&gt;the conf that will have a custom directive for my custom Apache
&lt;br&gt;module. &amp;nbsp;I would like to fully wire up this custom provider within
&lt;br&gt;this directive. &amp;nbsp;To add to the complexity, there are different levels
&lt;br&gt;of authentication: &amp;nbsp;None required, user, admin &amp;nbsp;and there will be
&lt;br&gt;different locations under the &amp;lt;Location&amp;gt; directive for each, again,
&lt;br&gt;this all needs to be wired up in code when the custom directive for my
&lt;br&gt;custom Apache module is called.
&lt;br&gt;&lt;br&gt;Q: Any suggestions on how I might achieve this?
&lt;br&gt;&lt;br&gt;Sam
&lt;br&gt;&lt;br&gt;P.S. &amp;nbsp;I do NOT own the book on writing Apache Module in 2.0, just the
&lt;br&gt;older 1.3 book. &amp;nbsp;Would any of this be addressed in that book?
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/handling-custom-authentication-tp20485463p20485463.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20407717</id>
	<title>Re: mod_dbd issues in worker vs prefork mpm</title>
	<published>2008-11-09T08:03:18Z</published>
	<updated>2008-11-09T08:03:18Z</updated>
	<author>
		<name>Tom Donovan-2</name>
	</author>
	<content type="html">Peter Poeml wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On Fri, Nov 07, 2008 at 03:24:00PM +0100, B. F. wrote:
&lt;br&gt;&amp;gt;&amp;gt; I have recently started using the mod_dbd module for database
&lt;br&gt;&amp;gt;&amp;gt; connection handling in my own module and a had slight hope that it
&lt;br&gt;&amp;gt;&amp;gt; would perform better than a classic persistent connection approach.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Basically I am using the ap_dbd_acquire(request_rec*) function in a
&lt;br&gt;&amp;gt;&amp;gt; handler function (in my own module) and then uses some of the apr_dbd
&lt;br&gt;&amp;gt;&amp;gt; functions to fetch data from a PostgreSQL database, all this seems
&lt;br&gt;&amp;gt;&amp;gt; fine.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; When I run a performance test (using httperf) with the prefork mpm I
&lt;br&gt;&amp;gt;&amp;gt; get numbers like ~100 requests/s.
&lt;br&gt;&amp;gt;&amp;gt; However when I run the same test but now using the worker mpm, this
&lt;br&gt;&amp;gt;&amp;gt; number drops to almost nothing...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; As I understood it, the worker (or any threaded mpm) should make
&lt;br&gt;&amp;gt;&amp;gt; mod_dbd/apr_dbd perform better as it enables functionality needing
&lt;br&gt;&amp;gt;&amp;gt; multi threading (like connection pooling) while prefork limits mod_dbd
&lt;br&gt;&amp;gt;&amp;gt; to only use a persistent connection strategy. Despite this the prefork
&lt;br&gt;&amp;gt;&amp;gt; mpm performs better...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I have tried several different configuration setups without seeing any
&lt;br&gt;&amp;gt;&amp;gt; great difference. A typical setup is however: 200 max_connections (in
&lt;br&gt;&amp;gt;&amp;gt; postgresql.conf, the same for both the prefork and worker tests).
&lt;br&gt;&amp;gt;&amp;gt; Having DBDMax set to 10 while setting ServerLimit to 20 should fully
&lt;br&gt;&amp;gt;&amp;gt; make mod_dbd utilize all the 200 available connections in Postgres, is
&lt;br&gt;&amp;gt;&amp;gt; that correct?
&lt;/div&gt;&lt;br&gt;ThreadsPerChild affects how many threads share each DBD pool with worker mpm.
&lt;br&gt;&lt;br&gt;If you are running with the default value of 25 ThreadsPerChild, then each of your 20 processes will 
&lt;br&gt;have up to 25 threads processing requests. Each process will have a pool of 10 DBD connections 
&lt;br&gt;(DBDMax) to share between its 25 threads.
&lt;br&gt;&lt;br&gt;When one of your processes is completely busy, some of the 25 threads must wait for one of the 10 
&lt;br&gt;DBD connections.
&lt;br&gt;&lt;br&gt;This could explain why you get lower throughput with your configuration, but it really doesn't 
&lt;br&gt;explain why you get &amp;quot;almost nothing&amp;quot; vs. ~100 requests/s.
&lt;br&gt;&lt;br&gt;You might want to try this configuration if you have a hard limit of 200 database connections:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ServerLimit 8
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ThreadsPerChild 25
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;MaxClients 200
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;DBDMax &amp;nbsp; 25
&lt;br&gt;&lt;br&gt;See &lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/worker.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://httpd.apache.org/docs/2.2/mod/worker.html&lt;/a&gt;&amp;nbsp;for the details about how worker mpm handles 
&lt;br&gt;threads &amp; processes.
&lt;br&gt;&lt;br&gt;-tom-
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/mod_dbd-issues-in-worker-vs-prefork-mpm-tp20381478p20407717.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20407579</id>
	<title>Re: Where to prepare DBD statements? post_config or child_init?</title>
	<published>2008-11-09T07:48:52Z</published>
	<updated>2008-11-09T07:48:52Z</updated>
	<author>
		<name>Peter Poeml</name>
	</author>
	<content type="html">On Wed, Nov 05, 2008 at 04:46:59PM +0100, Peter Poeml wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I wonder where is the best place to prepare a mod_dbd statement - I'm
&lt;br&gt;&amp;gt; thinking about either the post_config or child_init hook.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; So far, I prepared the statements when a configuration directive is
&lt;br&gt;&amp;gt; processed, like many other similar modules do, too. To decrease error
&lt;br&gt;&amp;gt; proneness by (me) forgetting to update the configuration when I change
&lt;br&gt;&amp;gt; my module in a way that requires a changed SQL query, I want to compile
&lt;br&gt;&amp;gt; a default query into the module. This means that no config directive for
&lt;br&gt;&amp;gt; this is needed in the config anymore (although it can optionally still
&lt;br&gt;&amp;gt; be given). Therefore, I don't have the occasion any longer to use my
&lt;br&gt;&amp;gt; config directive processing handler to prepare the statement.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; So this needs to be moved to another place (which is always run, after
&lt;br&gt;&amp;gt; configuration processing). 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Therefore I was thinking about a post_config or child_init hook. I'm not
&lt;br&gt;&amp;gt; exactly sure about the difference, I know that child_init is run after
&lt;br&gt;&amp;gt; forking but before thread creation, but I am not sure which way is
&lt;br&gt;&amp;gt; appropriate to be used with mod_dbd.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Could someone who knows share their insight? 
&lt;br&gt;&amp;gt; Pointers to examples would be appreciated very much, too.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I'm using Apache 2.2.10 worker, in a multi-process and multi-threaded
&lt;br&gt;&amp;gt; configuration.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Peter
&lt;/div&gt;&lt;/div&gt;Hi,
&lt;br&gt;&lt;br&gt;I found an answer myself: doing this in a post_config hook works just
&lt;br&gt;fine.
&lt;br&gt;&lt;br&gt;---------------------&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; /* make sure that mod_dbd is loaded */
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (zrkadlo_dbd_prepare_fn == NULL) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; zrkadlo_dbd_prepare_fn = APR_RETRIEVE_OPTIONAL_FN(ap_dbd_prepare);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (zrkadlo_dbd_prepare_fn == NULL) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;[mod_zrkadlo] You must load mod_dbd to enable Zrkadlo functions&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return HTTP_INTERNAL_SERVER_ERROR;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; zrkadlo_dbd_acquire_fn = APR_RETRIEVE_OPTIONAL_FN(ap_dbd_acquire);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; /* prepare DBD SQL statements */
&lt;br&gt;&amp;nbsp; &amp;nbsp; static unsigned int label_num = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; server_rec *sp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; for (sp = s; sp; sp = sp-&amp;gt;next) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; zrkadlo_server_conf *cfg = ap_get_module_config(sp-&amp;gt;module_config,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;zrkadlo_module);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* make a label */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cfg-&amp;gt;query_prep = apr_psprintf(pconf, &amp;quot;zrkadlo_dbd_%d&amp;quot;, ++label_num);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; zrkadlo_dbd_prepare_fn(sp, cfg-&amp;gt;query, cfg-&amp;gt;query_prep);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; return OK;
&lt;br&gt;&lt;br&gt;&amp;lt;---------------------
&lt;br&gt;&lt;br&gt;Peter
&lt;br&gt;-- 
&lt;br&gt;Contact: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20407579&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;admin@...&lt;/a&gt; (a.k.a. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20407579&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ftpadmin@...&lt;/a&gt;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#opensuse-mirrors on freenode.net
&lt;br&gt;Info: &lt;a href=&quot;http://en.opensuse.org/Mirror_Infrastructure&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.opensuse.org/Mirror_Infrastructure&lt;/a&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;SUSE LINUX Products GmbH
&lt;br&gt;Research &amp; Development
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;attachment0&lt;/strong&gt; (196 bytes) &lt;a href=&quot;http://www.nabble.com/attachment/20407579/0/attachment0&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Where-to-prepare-DBD-statements--post_config-or-child_init--tp20344383p20407579.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20381956</id>
	<title>Re: mod_dbd issues in worker vs prefork mpm</title>
	<published>2008-11-07T06:46:05Z</published>
	<updated>2008-11-07T06:46:05Z</updated>
	<author>
		<name>Peter Poeml</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;On Fri, Nov 07, 2008 at 03:24:00PM +0100, B. F. wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I have recently started using the mod_dbd module for database
&lt;br&gt;&amp;gt; connection handling in my own module and a had slight hope that it
&lt;br&gt;&amp;gt; would perform better than a classic persistent connection approach.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Basically I am using the ap_dbd_acquire(request_rec*) function in a
&lt;br&gt;&amp;gt; handler function (in my own module) and then uses some of the apr_dbd
&lt;br&gt;&amp;gt; functions to fetch data from a PostgreSQL database, all this seems
&lt;br&gt;&amp;gt; fine.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; When I run a performance test (using httperf) with the prefork mpm I
&lt;br&gt;&amp;gt; get numbers like ~100 requests/s.
&lt;br&gt;&amp;gt; However when I run the same test but now using the worker mpm, this
&lt;br&gt;&amp;gt; number drops to almost nothing...
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; As I understood it, the worker (or any threaded mpm) should make
&lt;br&gt;&amp;gt; mod_dbd/apr_dbd perform better as it enables functionality needing
&lt;br&gt;&amp;gt; multi threading (like connection pooling) while prefork limits mod_dbd
&lt;br&gt;&amp;gt; to only use a persistent connection strategy. Despite this the prefork
&lt;br&gt;&amp;gt; mpm performs better...
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I have tried several different configuration setups without seeing any
&lt;br&gt;&amp;gt; great difference. A typical setup is however: 200 max_connections (in
&lt;br&gt;&amp;gt; postgresql.conf, the same for both the prefork and worker tests).
&lt;br&gt;&amp;gt; Having DBDMax set to 10 while setting ServerLimit to 20 should fully
&lt;br&gt;&amp;gt; make mod_dbd utilize all the 200 available connections in Postgres, is
&lt;br&gt;&amp;gt; that correct?
&lt;/div&gt;&lt;/div&gt;One suggestion, you could check with netstat during the test how many
&lt;br&gt;connections to the database are actually opened. Just to get a feel of
&lt;br&gt;how the pool size behaves, and also to double check assumptions.
&lt;br&gt;&lt;br&gt;&amp;gt; Another thing that suggets there is something wrong is that the load
&lt;br&gt;&amp;gt; while running the prefork test is overall high, while running the
&lt;br&gt;&amp;gt; worker test the system load is much lower.
&lt;br&gt;&lt;br&gt;Peter
&lt;br&gt;-- 
&lt;br&gt;Contact: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20381956&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;admin@...&lt;/a&gt; (a.k.a. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20381956&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ftpadmin@...&lt;/a&gt;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#opensuse-mirrors on freenode.net
&lt;br&gt;Info: &lt;a href=&quot;http://en.opensuse.org/Mirror_Infrastructure&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.opensuse.org/Mirror_Infrastructure&lt;/a&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;SUSE LINUX Products GmbH
&lt;br&gt;Research &amp; Development
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;attachment0&lt;/strong&gt; (196 bytes) &lt;a href=&quot;http://www.nabble.com/attachment/20381956/0/attachment0&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/mod_dbd-issues-in-worker-vs-prefork-mpm-tp20381478p20381956.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20381478</id>
	<title>mod_dbd issues in worker vs prefork mpm</title>
	<published>2008-11-07T06:24:00Z</published>
	<updated>2008-11-07T06:24:00Z</updated>
	<author>
		<name>B. F.</name>
	</author>
	<content type="html">Hi all,
&lt;br&gt;&lt;br&gt;I have recently started using the mod_dbd module for database
&lt;br&gt;connection handling in my own module and a had slight hope that it
&lt;br&gt;would perform better than a classic persistent connection approach.
&lt;br&gt;&lt;br&gt;Basically I am using the ap_dbd_acquire(request_rec*) function in a
&lt;br&gt;handler function (in my own module) and then uses some of the apr_dbd
&lt;br&gt;functions to fetch data from a PostgreSQL database, all this seems
&lt;br&gt;fine.
&lt;br&gt;&lt;br&gt;When I run a performance test (using httperf) with the prefork mpm I
&lt;br&gt;get numbers like ~100 requests/s.
&lt;br&gt;However when I run the same test but now using the worker mpm, this
&lt;br&gt;number drops to almost nothing...
&lt;br&gt;&lt;br&gt;As I understood it, the worker (or any threaded mpm) should make
&lt;br&gt;mod_dbd/apr_dbd perform better as it enables functionality needing
&lt;br&gt;multi threading (like connection pooling) while prefork limits mod_dbd
&lt;br&gt;to only use a persistent connection strategy. Despite this the prefork
&lt;br&gt;mpm performs better...
&lt;br&gt;&lt;br&gt;I have tried several different configuration setups without seeing any
&lt;br&gt;great difference. A typical setup is however: 200 max_connections (in
&lt;br&gt;postgresql.conf, the same for both the prefork and worker tests).
&lt;br&gt;Having DBDMax set to 10 while setting ServerLimit to 20 should fully
&lt;br&gt;make mod_dbd utilize all the 200 available connections in Postgres, is
&lt;br&gt;that correct?
&lt;br&gt;&lt;br&gt;Another thing that suggets there is something wrong is that the load
&lt;br&gt;while running the prefork test is overall high, while running the
&lt;br&gt;worker test the system load is much lower.
&lt;br&gt;&lt;br&gt;Some system details that might or might not be of interest:
&lt;br&gt;- Apache 2.2.9 (from Fedora 8 package)
&lt;br&gt;- APR 1.2.11
&lt;br&gt;- APR-Util 1.2.10
&lt;br&gt;- PostgreSQL 8.2.11
&lt;br&gt;- Apache and PostgreSQL is running on the same server
&lt;br&gt;- which is a virtual server with 6 available CPU cores, (only) 1GByte memory
&lt;br&gt;- benchmarking utility of course run on another machine
&lt;br&gt;- Linux kernel 2.6.21.7
&lt;br&gt;- 64bit system
&lt;br&gt;&lt;br&gt;Greatly thankful for any hints as to how I could find the cause of
&lt;br&gt;this and/or fix it.
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;Regards,
&lt;br&gt;Bengt
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/mod_dbd-issues-in-worker-vs-prefork-mpm-tp20381478p20381478.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20352103</id>
	<title>ap_send_fd() don't send anything</title>
	<published>2008-11-05T15:14:11Z</published>
	<updated>2008-11-05T15:14:11Z</updated>
	<author>
		<name>Javier Vela</name>
	</author>
	<content type="html">Hi, I'm writing a module for one project and for start, I'm writing a simple 
&lt;br&gt;one but I have problems with the ap_send_fd() function. When I call this 
&lt;br&gt;function after open the file with apr_file_open() I use this:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ap_send_fd (f, r, offset, r-&amp;gt;finfo.size, &amp;nbytes)
&lt;br&gt;&lt;br&gt;where offset's value is 0. I checked the file and it exists and it's opened 
&lt;br&gt;correctly by apr_file_open().The problem is that don't send anything. The 
&lt;br&gt;value of nbytes after the function is always 0. I have read some forums and I 
&lt;br&gt;have tried to use ap_rflush() and apr_file_close() but haven't work. In the 
&lt;br&gt;examples I have founded in internet works but not for me. I read something 
&lt;br&gt;about one timer in the http protocol .h file but I don't understand well for 
&lt;br&gt;what is the timer and how to use it.
&lt;br&gt;&lt;br&gt;I could use apr_file_read() and ap_rputs() but I prefer to use ap_send_fd() so 
&lt;br&gt;if anyone can give me some hint I'll be happy.
&lt;br&gt;&lt;br&gt;Here is the small code without the checks:
&lt;br&gt;&lt;br&gt;apr_file_open(&amp;f,r-&amp;gt;finfo.fname,APR_READ,APR_OS_DEFAULT,r-&amp;gt;pool)
&lt;br&gt;ap_send_fd (f, r, offset, r-&amp;gt;finfo.size, &amp;nbytes)
&lt;br&gt;apr_file_close(f)
&lt;br&gt;return OK;
&lt;br&gt;&lt;br&gt;Thank for your help.
&lt;br&gt;-- 
&lt;br&gt;Javier Vela Diago
&lt;br&gt;Computer Science Student
&lt;br&gt;GnuPG key ID: 52DD9977
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/ap_send_fd%28%29-don%27t-send-anything-tp20352103p20352103.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20344383</id>
	<title>Where to prepare DBD statements? post_config or child_init?</title>
	<published>2008-11-05T07:46:59Z</published>
	<updated>2008-11-05T07:46:59Z</updated>
	<author>
		<name>Peter Poeml</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I wonder where is the best place to prepare a mod_dbd statement - I'm
&lt;br&gt;thinking about either the post_config or child_init hook.
&lt;br&gt;&lt;br&gt;So far, I prepared the statements when a configuration directive is
&lt;br&gt;processed, like many other similar modules do, too. To decrease error
&lt;br&gt;proneness by (me) forgetting to update the configuration when I change
&lt;br&gt;my module in a way that requires a changed SQL query, I want to compile
&lt;br&gt;a default query into the module. This means that no config directive for
&lt;br&gt;this is needed in the config anymore (although it can optionally still
&lt;br&gt;be given). Therefore, I don't have the occasion any longer to use my
&lt;br&gt;config directive processing handler to prepare the statement.
&lt;br&gt;&lt;br&gt;So this needs to be moved to another place (which is always run, after
&lt;br&gt;configuration processing). 
&lt;br&gt;&lt;br&gt;Therefore I was thinking about a post_config or child_init hook. I'm not
&lt;br&gt;exactly sure about the difference, I know that child_init is run after
&lt;br&gt;forking but before thread creation, but I am not sure which way is
&lt;br&gt;appropriate to be used with mod_dbd.
&lt;br&gt;&lt;br&gt;Could someone who knows share their insight? 
&lt;br&gt;Pointers to examples would be appreciated very much, too.
&lt;br&gt;&lt;br&gt;I'm using Apache 2.2.10 worker, in a multi-process and multi-threaded
&lt;br&gt;configuration.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Peter
&lt;br&gt;-- 
&lt;br&gt;Contact: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20344383&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;admin@...&lt;/a&gt; (a.k.a. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20344383&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ftpadmin@...&lt;/a&gt;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#opensuse-mirrors on freenode.net
&lt;br&gt;Info: &lt;a href=&quot;http://en.opensuse.org/Mirror_Infrastructure&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.opensuse.org/Mirror_Infrastructure&lt;/a&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;SUSE LINUX Products GmbH
&lt;br&gt;Research &amp; Development
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;attachment0&lt;/strong&gt; (196 bytes) &lt;a href=&quot;http://www.nabble.com/attachment/20344383/0/attachment0&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Where-to-prepare-DBD-statements--post_config-or-child_init--tp20344383p20344383.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20320412</id>
	<title>Re: how to get zipped post data in ap_hook_log_transaction?</title>
	<published>2008-11-04T03:24:33Z</published>
	<updated>2008-11-04T03:24:33Z</updated>
	<author>
		<name>Sorin Manolache</name>
	</author>
	<content type="html">On Tue, Nov 4, 2008 at 11:46, Andrej van der Zee
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20320412&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andrejvanderzee@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I was wondering if it is possible to get a hold on the data that is actually
&lt;br&gt;&amp;gt; sent back to the client, preferably in the hook ap_hook_log_transaction. In
&lt;br&gt;&amp;gt; our case we sent back XML data that might be zipped by mod_deflate. If it is
&lt;br&gt;&amp;gt; zipped, I would like to get a hold on the zipped XML data, otherwise the
&lt;br&gt;&amp;gt; unzipped. What would be the best way to do this?
&lt;br&gt;&lt;br&gt;You cannot do it in the log_transaction callback. log_transaction is
&lt;br&gt;called after the socket is flushed, so all filters have been already
&lt;br&gt;invoked.
&lt;br&gt;&lt;br&gt;Have a look at modules/loggers/mod_logio.c in the apache sources. The
&lt;br&gt;module adds the logio_out_filter as one of the very last filters
&lt;br&gt;(after deflate, just before the filter that performs the actual
&lt;br&gt;writing to the socket). You could write a similar filter that would
&lt;br&gt;record all the bytes that transit your filter. It is quite tricky,
&lt;br&gt;because you need to make the distinction between bytes belonging to
&lt;br&gt;different requests. In order to do that, you need to set a filter
&lt;br&gt;context.
&lt;br&gt;&lt;br&gt;You write something like
&lt;br&gt;ap_register_output_filter(filter_name, filter_function, NULL,
&lt;br&gt;AP_FTYPE_NETWORK - 1)
&lt;br&gt;in you module register function.
&lt;br&gt;&lt;br&gt;In filter_function you will write something like
&lt;br&gt;if (flt-&amp;gt;ctx == NULL) {
&lt;br&gt;&amp;nbsp; &amp;nbsp;flt-&amp;gt;ctx = (context_type *)apr_pcalloc(request-&amp;gt;pool, sizeof(context_type));
&lt;br&gt;&amp;nbsp; &amp;nbsp;init_ctx(flt-&amp;gt;ctx);
&lt;br&gt;}
&lt;br&gt;// record the bytes that transit. Save them somewhere in the request
&lt;br&gt;pool, see apr_brigade_flatten
&lt;br&gt;// next, pass the data to the next filter in the chain
&lt;br&gt;return ap_pass_brigade(flt-&amp;gt;next, bb);
&lt;br&gt;&lt;br&gt;Then, in log_transaction you'll recover it from where you put it aside.
&lt;br&gt;&lt;br&gt;You need to add SetOutputFilter filter_name in your apache config.
&lt;br&gt;&lt;br&gt;However, I think the best way to do this would be with network
&lt;br&gt;sniffers (tcpdump, wireshark), not with apache.
&lt;br&gt;&lt;br&gt;--S
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/how-to-get-zipped-post-data-in-ap_hook_log_transaction--tp20319914p20320412.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20320177</id>
	<title>Re: how to get zipped post data in ap_hook_log_transaction?</title>
	<published>2008-11-04T03:01:53Z</published>
	<updated>2008-11-04T03:01:53Z</updated>
	<author>
		<name>Issac Goldstand</name>
	</author>
	<content type="html">&lt;br&gt;You likely want to consider writing an output filter and inserting it
&lt;br&gt;after mod_deflate in the output filter chain
&lt;br&gt;&lt;br&gt;&amp;nbsp; Issac
&lt;br&gt;&lt;br&gt;Andrej van der Zee wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I was wondering if it is possible to get a hold on the data that is actually
&lt;br&gt;&amp;gt; sent back to the client, preferably in the hook ap_hook_log_transaction. In
&lt;br&gt;&amp;gt; our case we sent back XML data that might be zipped by mod_deflate. If it is
&lt;br&gt;&amp;gt; zipped, I would like to get a hold on the zipped XML data, otherwise the
&lt;br&gt;&amp;gt; unzipped. What would be the best way to do this?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thank you,
&lt;br&gt;&amp;gt; Andrej
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/how-to-get-zipped-post-data-in-ap_hook_log_transaction--tp20319914p20320177.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20319914</id>
	<title>how to get zipped post data in ap_hook_log_transaction?</title>
	<published>2008-11-04T02:46:14Z</published>
	<updated>2008-11-04T02:46:14Z</updated>
	<author>
		<name>Andrej van der Zee-4</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I was wondering if it is possible to get a hold on the data that is actually
&lt;br&gt;sent back to the client, preferably in the hook ap_hook_log_transaction. In
&lt;br&gt;our case we sent back XML data that might be zipped by mod_deflate. If it is
&lt;br&gt;zipped, I would like to get a hold on the zipped XML data, otherwise the
&lt;br&gt;unzipped. What would be the best way to do this?
&lt;br&gt;&lt;br&gt;Thank you,
&lt;br&gt;Andrej
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/how-to-get-zipped-post-data-in-ap_hook_log_transaction--tp20319914p20319914.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20312841</id>
	<title>Re: parsing querystring parameters</title>
	<published>2008-11-03T14:58:03Z</published>
	<updated>2008-11-03T14:58:03Z</updated>
	<author>
		<name>Peter Poeml</name>
	</author>
	<content type="html">Hi Jason,
&lt;br&gt;&lt;br&gt;On Mon, Nov 03, 2008 at 05:48:58PM -0500, Jason Fister wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; is there an apr utility function that would let me extract the values of
&lt;br&gt;&amp;gt; querystring variables by specifying the variable name. For e.g. if my
&lt;br&gt;&amp;gt; querysting is something like
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ?key1=val1&amp;key2=val2&amp;key3=val3
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; is there a function which takes in key1 as the input and returns val1?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Jason
&lt;/div&gt;&lt;/div&gt;There is no direct shortcut function in apr, as far as I know, unless
&lt;br&gt;you want to parse the string manually. IMO, the most convenient method
&lt;br&gt;to do this is to use mod_form's form_value() function. You'll find it at
&lt;br&gt;&lt;a href=&quot;http://apache.webthing.com/mod_form/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://apache.webthing.com/mod_form/&lt;/a&gt;. You could look at
&lt;br&gt;&lt;a href=&quot;https://forgesvn1.novell.com/svn/opensuse/trunk/tools/download-redirector-v2/mod_zrkadlo/mod_zrkadlo.c&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://forgesvn1.novell.com/svn/opensuse/trunk/tools/download-redirector-v2/mod_zrkadlo/mod_zrkadlo.c&lt;/a&gt;&lt;br&gt;to see the way that I am using it. Just search for 'form' there.
&lt;br&gt;&lt;br&gt;HTH,
&lt;br&gt;Peter
&lt;br&gt;-- 
&lt;br&gt;Contact: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20312841&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;admin@...&lt;/a&gt; (a.k.a. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20312841&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ftpadmin@...&lt;/a&gt;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#opensuse-mirrors on freenode.net
&lt;br&gt;Info: &lt;a href=&quot;http://en.opensuse.org/Mirror_Infrastructure&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.opensuse.org/Mirror_Infrastructure&lt;/a&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;SUSE LINUX Products GmbH
&lt;br&gt;Research &amp; Development
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;attachment0&lt;/strong&gt; (196 bytes) &lt;a href=&quot;http://www.nabble.com/attachment/20312841/0/attachment0&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/parsing-querystring-parameters-tp20312656p20312841.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20312656</id>
	<title>parsing querystring parameters</title>
	<published>2008-11-03T14:48:58Z</published>
	<updated>2008-11-03T14:48:58Z</updated>
	<author>
		<name>Jason Fister</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;is there an apr utility function that would let me extract the values of
&lt;br&gt;querystring variables by specifying the variable name. For e.g. if my
&lt;br&gt;querysting is something like
&lt;br&gt;&lt;br&gt;?key1=val1&amp;key2=val2&amp;key3=val3
&lt;br&gt;&lt;br&gt;&lt;br&gt;is there a function which takes in key1 as the input and returns val1?
&lt;br&gt;&lt;br&gt;Jason
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/parsing-querystring-parameters-tp20312656p20312656.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20218525</id>
	<title>Re: How can i decrypt a cookie in a module</title>
	<published>2008-10-28T16:50:59Z</published>
	<updated>2008-10-28T16:50:59Z</updated>
	<author>
		<name>Ray Morris</name>
	</author>
	<content type="html">&amp;nbsp; &amp;nbsp;FYI LoadFile seems to be the recommended way 
&lt;br&gt;so that another module added later can use the 
&lt;br&gt;same version. &amp;nbsp;That is, so that they see it's 
&lt;br&gt;loaded and don't link to a different version.
&lt;br&gt;--
&lt;br&gt;Ray B. Morris
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20218525&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;support@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;Strongbox - The next generation in site security:
&lt;br&gt;&lt;a href=&quot;http://www.bettercgi.com/strongbox/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.bettercgi.com/strongbox/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Throttlebox - Intelligent Bandwidth Control
&lt;br&gt;&lt;a href=&quot;http://www.bettercgi.com/throttlebox/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.bettercgi.com/throttlebox/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Strongbox / Throttlebox affiliate program:
&lt;br&gt;&lt;a href=&quot;http://www.bettercgi.com/affiliates/user/register.php&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.bettercgi.com/affiliates/user/register.php&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On 10/28/2008 06:17:09 PM, Peter Poeml wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Christian,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On Tue, Oct 28, 2008 at 02:45:05PM +0100, Christian Klinger wrote:
&lt;br&gt;&amp;gt; &amp;gt; now i have the -lssl and -lcrypt in the gcc command but i alwas get 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; the same error again.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; With the same error, you mean the same symbol is still missing when
&lt;br&gt;&amp;gt; you
&lt;br&gt;&amp;gt; run Apache and use the modules functionality?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; make
&lt;br&gt;&amp;gt; [...]
&lt;br&gt;&amp;gt; &amp;gt; Libraries have been installed in:
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp;/opt/apache/server/modules
&lt;br&gt;&amp;gt; [...]
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The output of your make command looks fine anyway.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I have added the LoadFile with all possibilitys of libcrypto
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Just to not be misunderstood: You need only one of the two means -
&lt;br&gt;&amp;gt; either linking to all needed libraries, and letting the runtime 
&lt;br&gt;&amp;gt; linker
&lt;br&gt;&amp;gt; do the work -- or use the LoadFile directive to take care.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I´ve included all versions of the libcrypto lib.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; LoadFile /usr/lib/libcrypto.so.0.9.8
&lt;br&gt;&amp;gt; &amp;gt; LoadFile /usr/lib/libcrypto.so.0.9.7
&lt;br&gt;&amp;gt; &amp;gt; LoadFile /usr/lib/libcrypto
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Btw, doing this with different version of a library is maybe not a
&lt;br&gt;&amp;gt; good
&lt;br&gt;&amp;gt; idea, because their symbols could clash.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; but with no success....
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Any Ideas left....
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Christian
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On Tue, Oct 28, 2008 at 03:40:12PM +0100, Christian Klinger wrote:
&lt;br&gt;&amp;gt; &amp;gt; Hi again,
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; ldd mod_auth_tkt.so
&lt;br&gt;&amp;gt; &amp;gt; 	linux-gate.so.1 =&amp;gt; &amp;nbsp;(0xffffe000)
&lt;br&gt;&amp;gt; &amp;gt; 	libssl.so.0.9.8 =&amp;gt; /usr/lib/libssl.so.0.9.8 (0xb7f6f000)
&lt;br&gt;&amp;gt; &amp;gt; 	libcrypto.so.0.9.8 =&amp;gt; /usr/lib/libcrypto.so.0.9.8
&lt;br&gt;&amp;gt; (0xb7e29000)
&lt;br&gt;&amp;gt; &amp;gt; 	libc.so.6 =&amp;gt; /lib/libc.so.6 (0xb7cf6000)
&lt;br&gt;&amp;gt; &amp;gt; 	libdl.so.2 =&amp;gt; /lib/libdl.so.2 (0xb7cf2000)
&lt;br&gt;&amp;gt; &amp;gt; 	libz.so.1 =&amp;gt; /lib/libz.so.1 (0xb7cde000)
&lt;br&gt;&amp;gt; &amp;gt; 	/lib/ld-linux.so.2 (0x80000000)
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; is this ok? Or do I need something special for blowfish.h?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; You could check if your libcrypto actually contains the symbol you
&lt;br&gt;&amp;gt; were
&lt;br&gt;&amp;gt; missing -- after all it might be possible that your OpenSSL is
&lt;br&gt;&amp;gt; compiled
&lt;br&gt;&amp;gt; without blowfish support? Does
&lt;br&gt;&amp;gt; strings /usr/lib/libcrypto.so.0.9.8 | grep BF_Decrypt
&lt;br&gt;&amp;gt; print something?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; If all else fails, check if you have some kind of mess from previous
&lt;br&gt;&amp;gt; build attempts which causes Apache to load other objects than you
&lt;br&gt;&amp;gt; might
&lt;br&gt;&amp;gt; think. lsof -p $pid_of_parent_apache_proxy can be a valuable tool to
&lt;br&gt;&amp;gt; double check.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Peter
&lt;br&gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; Contact: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20218525&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;admin@...&lt;/a&gt; (a.k.a. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20218525&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ftpadmin@...&lt;/a&gt;)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#opensuse-mirrors on freenode.net
&lt;br&gt;&amp;gt; Info: &lt;a href=&quot;http://en.opensuse.org/Mirror_Infrastructure&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.opensuse.org/Mirror_Infrastructure&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; SUSE LINUX Products GmbH
&lt;br&gt;&amp;gt; Research &amp; Development
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-can-i-decrypt-a-cookie-in-a-module-tp20205613p20218525.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20218031</id>
	<title>Re: How can i decrypt a cookie in a module</title>
	<published>2008-10-28T16:17:09Z</published>
	<updated>2008-10-28T16:17:09Z</updated>
	<author>
		<name>Peter Poeml</name>
	</author>
	<content type="html">Hi Christian,
&lt;br&gt;&lt;br&gt;On Tue, Oct 28, 2008 at 02:45:05PM +0100, Christian Klinger wrote:
&lt;br&gt;&amp;gt; now i have the -lssl and -lcrypt in the gcc command but i alwas get &amp;nbsp;
&lt;br&gt;&amp;gt; the same error again.
&lt;br&gt;&lt;br&gt;With the same error, you mean the same symbol is still missing when you
&lt;br&gt;run Apache and use the modules functionality?
&lt;br&gt;&lt;br&gt;&amp;gt; make
&lt;br&gt;[...]
&lt;br&gt;&amp;gt; Libraries have been installed in:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;/opt/apache/server/modules
&lt;br&gt;[...]
&lt;br&gt;&lt;br&gt;The output of your make command looks fine anyway.
&lt;br&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I have added the LoadFile with all possibilitys of libcrypto
&lt;br&gt;&lt;br&gt;Just to not be misunderstood: You need only one of the two means -
&lt;br&gt;either linking to all needed libraries, and letting the runtime linker
&lt;br&gt;do the work -- or use the LoadFile directive to take care.
&lt;br&gt;&lt;br&gt;&amp;gt; I´ve included all versions of the libcrypto lib.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; LoadFile /usr/lib/libcrypto.so.0.9.8
&lt;br&gt;&amp;gt; LoadFile /usr/lib/libcrypto.so.0.9.7
&lt;br&gt;&amp;gt; LoadFile /usr/lib/libcrypto
&lt;br&gt;&lt;br&gt;Btw, doing this with different version of a library is maybe not a good
&lt;br&gt;idea, because their symbols could clash.
&lt;br&gt;&lt;br&gt;&amp;gt; but with no success....
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Any Ideas left....
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Christian
&lt;br&gt;&lt;br&gt;On Tue, Oct 28, 2008 at 03:40:12PM +0100, Christian Klinger wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi again,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ldd mod_auth_tkt.so
&lt;br&gt;&amp;gt; 	linux-gate.so.1 =&amp;gt; &amp;nbsp;(0xffffe000)
&lt;br&gt;&amp;gt; 	libssl.so.0.9.8 =&amp;gt; /usr/lib/libssl.so.0.9.8 (0xb7f6f000)
&lt;br&gt;&amp;gt; 	libcrypto.so.0.9.8 =&amp;gt; /usr/lib/libcrypto.so.0.9.8 (0xb7e29000)
&lt;br&gt;&amp;gt; 	libc.so.6 =&amp;gt; /lib/libc.so.6 (0xb7cf6000)
&lt;br&gt;&amp;gt; 	libdl.so.2 =&amp;gt; /lib/libdl.so.2 (0xb7cf2000)
&lt;br&gt;&amp;gt; 	libz.so.1 =&amp;gt; /lib/libz.so.1 (0xb7cde000)
&lt;br&gt;&amp;gt; 	/lib/ld-linux.so.2 (0x80000000)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; is this ok? Or do I need something special for blowfish.h?
&lt;/div&gt;&lt;/div&gt;You could check if your libcrypto actually contains the symbol you were
&lt;br&gt;missing -- after all it might be possible that your OpenSSL is compiled
&lt;br&gt;without blowfish support? Does
&lt;br&gt;strings /usr/lib/libcrypto.so.0.9.8 | grep BF_Decrypt
&lt;br&gt;print something?
&lt;br&gt;&lt;br&gt;If all else fails, check if you have some kind of mess from previous
&lt;br&gt;build attempts which causes Apache to load other objects than you might
&lt;br&gt;think. lsof -p $pid_of_parent_apache_proxy can be a valuable tool to
&lt;br&gt;double check.
&lt;br&gt;&lt;br&gt;Peter
&lt;br&gt;-- 
&lt;br&gt;Contact: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20218031&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;admin@...&lt;/a&gt; (a.k.a. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20218031&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ftpadmin@...&lt;/a&gt;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#opensuse-mirrors on freenode.net
&lt;br&gt;Info: &lt;a href=&quot;http://en.opensuse.org/Mirror_Infrastructure&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.opensuse.org/Mirror_Infrastructure&lt;/a&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;SUSE LINUX Products GmbH
&lt;br&gt;Research &amp; Development
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;attachment0&lt;/strong&gt; (196 bytes) &lt;a href=&quot;http://www.nabble.com/attachment/20218031/0/attachment0&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-can-i-decrypt-a-cookie-in-a-module-tp20205613p20218031.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20208520</id>
	<title>Re: How can i decrypt a cookie in a module</title>
	<published>2008-10-28T07:40:12Z</published>
	<updated>2008-10-28T07:40:12Z</updated>
	<author>
		<name>Christian Klinger</name>
	</author>
	<content type="html">Hi again,
&lt;br&gt;&lt;br&gt;ldd mod_auth_tkt.so
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; linux-gate.so.1 =&amp;gt; &amp;nbsp;(0xffffe000)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; libssl.so.0.9.8 =&amp;gt; /usr/lib/libssl.so.0.9.8 (0xb7f6f000)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; libcrypto.so.0.9.8 =&amp;gt; /usr/lib/libcrypto.so.0.9.8 (0xb7e29000)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; libc.so.6 =&amp;gt; /lib/libc.so.6 (0xb7cf6000)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; libdl.so.2 =&amp;gt; /lib/libdl.so.2 (0xb7cf2000)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; libz.so.1 =&amp;gt; /lib/libz.so.1 (0xb7cde000)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /lib/ld-linux.so.2 (0x80000000)
&lt;br&gt;&lt;br&gt;is this ok? Or do I need something special for blowfish.h?
&lt;br&gt;&lt;br&gt;Christian
&lt;br&gt;&lt;br&gt;Am 28.10.2008 um 14:45 schrieb Christian Klinger:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Am 28.10.2008 um 14:30 schrieb Peter Poeml:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Tue, Oct 28, 2008 at 02:12:26PM +0100, Christian Klinger wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The symbol BF_Decrypt is probably to be found in libcrypto from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; OpenSSL.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; When mod_auth_tkt was compiled, it was not linked with that &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; library.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; So
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; either you need to add -lcrypto to the compile command, or you can
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; alternatively start Apache with the &amp;quot;LoadFile directive&amp;quot;, which &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; will
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; cause Apache to load the library so that the symbol can be found at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; runtime.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Peter
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hello Peter,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; thanks for the answers, but i don´t get it.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I try to add the Icrypto in my Makefile i get the error again:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I meant -l (as in &amp;quot;link&amp;quot;), not -I (as in &amp;quot;include&amp;quot;).
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Try to add this into the command:
&lt;br&gt;&amp;gt;&amp;gt; -lssl -lcrypto
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; This will add a reference to libssl and libcrypto (from your library
&lt;br&gt;&amp;gt;&amp;gt; path) be added to the shared object that you compile with 'apxs - 
&lt;br&gt;&amp;gt;&amp;gt; c ...'.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Peter,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; now i have the -lssl and -lcrypt in the gcc command but i alwas get &amp;nbsp;
&lt;br&gt;&amp;gt; the same error again.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; make
&lt;br&gt;&amp;gt; cd src &amp;&amp; make all
&lt;br&gt;&amp;gt; make[1]: Entering directory `/opt/apache/mod_auth_tkt-2.0.0rc3/src'
&lt;br&gt;&amp;gt; /opt/apache/server/bin/apxs -c -Wc, &amp;quot;-Wall -ansi -g -Wall -ansi - 
&lt;br&gt;&amp;gt; pedantic -Wno-implicit-function-declaration -Wno-long-long -lssl - 
&lt;br&gt;&amp;gt; lcrypto&amp;quot; -lssl -lcrypto mod_auth_tkt.c
&lt;br&gt;&amp;gt; /opt/apache/server/build/libtool --silent --mode=compile gcc -prefer- 
&lt;br&gt;&amp;gt; pic &amp;nbsp;-DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT - 
&lt;br&gt;&amp;gt; D_GNU_SOURCE -g -O2 -pthread -I/opt/apache/server/include &amp;nbsp;-I/opt/ 
&lt;br&gt;&amp;gt; apache/server/include &amp;nbsp; -I/opt/apache/server/include &amp;nbsp; &amp;nbsp;-c -o &amp;nbsp;
&lt;br&gt;&amp;gt; mod_auth_tkt.lo mod_auth_tkt.c &amp;&amp; touch mod_auth_tkt.slo
&lt;br&gt;&amp;gt; /opt/apache/server/build/libtool --silent --mode=link gcc -o &amp;nbsp;
&lt;br&gt;&amp;gt; mod_auth_tkt.la &amp;nbsp;-lssl -lcrypto -rpath /opt/apache/server/modules - 
&lt;br&gt;&amp;gt; module -avoid-version &amp;nbsp; &amp;nbsp;mod_auth_tkt.lo
&lt;br&gt;&amp;gt; make[1]: Leaving directory `/opt/apache/mod_auth_tkt-2.0.0rc3/src'
&lt;br&gt;&amp;gt; cd doc &amp;&amp; make all
&lt;br&gt;&amp;gt; make[1]: Entering directory `/opt/apache/mod_auth_tkt-2.0.0rc3/doc'
&lt;br&gt;&amp;gt; pod2man --section=3 --release=2.0.0rc3 mod_auth_tkt.pod mod_auth_tkt.3
&lt;br&gt;&amp;gt; make[1]: Leaving directory `/opt/apache/mod_auth_tkt-2.0.0rc3/doc'
&lt;br&gt;&amp;gt; g3:/opt/apache/mod_auth_tkt-2.0.0rc3 # make install
&lt;br&gt;&amp;gt; cd src &amp;&amp; make install
&lt;br&gt;&amp;gt; make[1]: Entering directory `/opt/apache/mod_auth_tkt-2.0.0rc3/src'
&lt;br&gt;&amp;gt; /opt/apache/server/bin/apxs -i mod_auth_tkt.la
&lt;br&gt;&amp;gt; /opt/apache/server/build/instdso.sh SH_LIBTOOL='/opt/apache/server/ 
&lt;br&gt;&amp;gt; build/libtool' mod_auth_tkt.la /opt/apache/server/modules
&lt;br&gt;&amp;gt; /opt/apache/server/build/libtool --mode=install cp mod_auth_tkt.la / 
&lt;br&gt;&amp;gt; opt/apache/server/modules/
&lt;br&gt;&amp;gt; cp .libs/mod_auth_tkt.so /opt/apache/server/modules/mod_auth_tkt.so
&lt;br&gt;&amp;gt; cp .libs/mod_auth_tkt.lai /opt/apache/server/modules/mod_auth_tkt.la
&lt;br&gt;&amp;gt; cp .libs/mod_auth_tkt.a /opt/apache/server/modules/mod_auth_tkt.a
&lt;br&gt;&amp;gt; chmod 644 /opt/apache/server/modules/mod_auth_tkt.a
&lt;br&gt;&amp;gt; ranlib /opt/apache/server/modules/mod_auth_tkt.a
&lt;br&gt;&amp;gt; PATH=&amp;quot;$PATH:/sbin&amp;quot; ldconfig -n /opt/apache/server/modules
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt; Libraries have been installed in:
&lt;br&gt;&amp;gt; &amp;nbsp; /opt/apache/server/modules
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If you ever happen to want to link against installed libraries
&lt;br&gt;&amp;gt; in a given directory, LIBDIR, you must either use libtool, and
&lt;br&gt;&amp;gt; specify the full pathname of the library, or use the `-LLIBDIR'
&lt;br&gt;&amp;gt; flag during linking and do at least one of the following:
&lt;br&gt;&amp;gt; &amp;nbsp; - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; during execution
&lt;br&gt;&amp;gt; &amp;nbsp; - add LIBDIR to the `LD_RUN_PATH' environment variable
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; during linking
&lt;br&gt;&amp;gt; &amp;nbsp; - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
&lt;br&gt;&amp;gt; &amp;nbsp; - have your system administrator add LIBDIR to `/etc/ld.so.conf'
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; See any operating system documentation about shared libraries for
&lt;br&gt;&amp;gt; more information, such as the ld(1) and ld.so(8) manual pages.
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt; chmod 755 /opt/apache/server/modules/mod_auth_tkt.so
&lt;br&gt;&amp;gt; make[1]: Leaving directory `/opt/apache/mod_auth_tkt-2.0.0rc3/src'
&lt;br&gt;&amp;gt; cd doc &amp;&amp; make install
&lt;br&gt;&amp;gt; make[1]: Entering directory `/opt/apache/mod_auth_tkt-2.0.0rc3/doc'
&lt;br&gt;&amp;gt; mkdir -p /usr/share/man/man3
&lt;br&gt;&amp;gt; cp mod_auth_tkt.3 /usr/share/man/man3
&lt;br&gt;&amp;gt; chmod 644 /usr/share/man/man3/mod_auth_tkt.3
&lt;br&gt;&amp;gt; make[1]: Leaving directory `/opt/apache/mod_auth_tkt-2.0.0rc3/doc'
&lt;br&gt;&amp;gt; g3:/opt/apache/mod_auth_tkt-2.0.0rc3 #
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have added the LoadFile with all possibilitys of libcrypto
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I´ve included all versions of the libcrypto lib.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; LoadFile /usr/lib/libcrypto.so.0.9.8
&lt;br&gt;&amp;gt; LoadFile /usr/lib/libcrypto.so.0.9.7
&lt;br&gt;&amp;gt; LoadFile /usr/lib/libcrypto
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; but with no success....
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Any Ideas left....
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Christian
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-can-i-decrypt-a-cookie-in-a-module-tp20205613p20208520.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20207506</id>
	<title>Re: How can i decrypt a cookie in a module</title>
	<published>2008-10-28T06:45:05Z</published>
	<updated>2008-10-28T06:45:05Z</updated>
	<author>
		<name>Christian Klinger</name>
	</author>
	<content type="html">&lt;br&gt;Am 28.10.2008 um 14:30 schrieb Peter Poeml:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Tue, Oct 28, 2008 at 02:12:26PM +0100, Christian Klinger wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The symbol BF_Decrypt is probably to be found in libcrypto from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; OpenSSL.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; When mod_auth_tkt was compiled, it was not linked with that library.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; So
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; either you need to add -lcrypto to the compile command, or you can
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; alternatively start Apache with the &amp;quot;LoadFile directive&amp;quot;, which will
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; cause Apache to load the library so that the symbol can be found at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; runtime.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Peter
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hello Peter,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; thanks for the answers, but i don´t get it.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I try to add the Icrypto in my Makefile i get the error again:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I meant -l (as in &amp;quot;link&amp;quot;), not -I (as in &amp;quot;include&amp;quot;).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Try to add this into the command:
&lt;br&gt;&amp;gt; -lssl -lcrypto
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This will add a reference to libssl and libcrypto (from your library
&lt;br&gt;&amp;gt; path) be added to the shared object that you compile with 'apxs - 
&lt;br&gt;&amp;gt; c ...'.
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;Hi Peter,
&lt;br&gt;&lt;br&gt;now i have the -lssl and -lcrypt in the gcc command but i alwas get &amp;nbsp;
&lt;br&gt;the same error again.
&lt;br&gt;&lt;br&gt;make
&lt;br&gt;cd src &amp;&amp; make all
&lt;br&gt;make[1]: Entering directory `/opt/apache/mod_auth_tkt-2.0.0rc3/src'
&lt;br&gt;/opt/apache/server/bin/apxs -c -Wc, &amp;quot;-Wall -ansi -g -Wall -ansi - 
&lt;br&gt;pedantic -Wno-implicit-function-declaration -Wno-long-long -lssl - 
&lt;br&gt;lcrypto&amp;quot; -lssl -lcrypto mod_auth_tkt.c
&lt;br&gt;/opt/apache/server/build/libtool --silent --mode=compile gcc -prefer- 
&lt;br&gt;pic &amp;nbsp;-DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT - 
&lt;br&gt;D_GNU_SOURCE -g -O2 -pthread -I/opt/apache/server/include &amp;nbsp;-I/opt/ 
&lt;br&gt;apache/server/include &amp;nbsp; -I/opt/apache/server/include &amp;nbsp; &amp;nbsp;-c -o &amp;nbsp;
&lt;br&gt;mod_auth_tkt.lo mod_auth_tkt.c &amp;&amp; touch mod_auth_tkt.slo
&lt;br&gt;/opt/apache/server/build/libtool --silent --mode=link gcc -o &amp;nbsp;
&lt;br&gt;mod_auth_tkt.la &amp;nbsp;-lssl -lcrypto -rpath /opt/apache/server/modules - 
&lt;br&gt;module -avoid-version &amp;nbsp; &amp;nbsp;mod_auth_tkt.lo
&lt;br&gt;make[1]: Leaving directory `/opt/apache/mod_auth_tkt-2.0.0rc3/src'
&lt;br&gt;cd doc &amp;&amp; make all
&lt;br&gt;make[1]: Entering directory `/opt/apache/mod_auth_tkt-2.0.0rc3/doc'
&lt;br&gt;pod2man --section=3 --release=2.0.0rc3 mod_auth_tkt.pod mod_auth_tkt.3
&lt;br&gt;make[1]: Leaving directory `/opt/apache/mod_auth_tkt-2.0.0rc3/doc'
&lt;br&gt;g3:/opt/apache/mod_auth_tkt-2.0.0rc3 # make install
&lt;br&gt;cd src &amp;&amp; make install
&lt;br&gt;make[1]: Entering directory `/opt/apache/mod_auth_tkt-2.0.0rc3/src'
&lt;br&gt;/opt/apache/server/bin/apxs -i mod_auth_tkt.la
&lt;br&gt;/opt/apache/server/build/instdso.sh SH_LIBTOOL='/opt/apache/server/ 
&lt;br&gt;build/libtool' mod_auth_tkt.la /opt/apache/server/modules
&lt;br&gt;/opt/apache/server/build/libtool --mode=install cp mod_auth_tkt.la / 
&lt;br&gt;opt/apache/server/modules/
&lt;br&gt;cp .libs/mod_auth_tkt.so /opt/apache/server/modules/mod_auth_tkt.so
&lt;br&gt;cp .libs/mod_auth_tkt.lai /opt/apache/server/modules/mod_auth_tkt.la
&lt;br&gt;cp .libs/mod_auth_tkt.a /opt/apache/server/modules/mod_auth_tkt.a
&lt;br&gt;chmod 644 /opt/apache/server/modules/mod_auth_tkt.a
&lt;br&gt;ranlib /opt/apache/server/modules/mod_auth_tkt.a
&lt;br&gt;PATH=&amp;quot;$PATH:/sbin&amp;quot; ldconfig -n /opt/apache/server/modules
&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;Libraries have been installed in:
&lt;br&gt;&amp;nbsp; &amp;nbsp; /opt/apache/server/modules
&lt;br&gt;&lt;br&gt;If you ever happen to want to link against installed libraries
&lt;br&gt;in a given directory, LIBDIR, you must either use libtool, and
&lt;br&gt;specify the full pathname of the library, or use the `-LLIBDIR'
&lt;br&gt;flag during linking and do at least one of the following:
&lt;br&gt;&amp;nbsp; &amp;nbsp; - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; during execution
&lt;br&gt;&amp;nbsp; &amp;nbsp; - add LIBDIR to the `LD_RUN_PATH' environment variable
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; during linking
&lt;br&gt;&amp;nbsp; &amp;nbsp; - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
&lt;br&gt;&amp;nbsp; &amp;nbsp; - have your system administrator add LIBDIR to `/etc/ld.so.conf'
&lt;br&gt;&lt;br&gt;See any operating system documentation about shared libraries for
&lt;br&gt;more information, such as the ld(1) and ld.so(8) manual pages.
&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;chmod 755 /opt/apache/server/modules/mod_auth_tkt.so
&lt;br&gt;make[1]: Leaving directory `/opt/apache/mod_auth_tkt-2.0.0rc3/src'
&lt;br&gt;cd doc &amp;&amp; make install
&lt;br&gt;make[1]: Entering directory `/opt/apache/mod_auth_tkt-2.0.0rc3/doc'
&lt;br&gt;mkdir -p /usr/share/man/man3
&lt;br&gt;cp mod_auth_tkt.3 /usr/share/man/man3
&lt;br&gt;chmod 644 /usr/share/man/man3/mod_auth_tkt.3
&lt;br&gt;make[1]: Leaving directory `/opt/apache/mod_auth_tkt-2.0.0rc3/doc'
&lt;br&gt;g3:/opt/apache/mod_auth_tkt-2.0.0rc3 #
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;I have added the LoadFile with all possibilitys of libcrypto
&lt;br&gt;&lt;br&gt;I´ve included all versions of the libcrypto lib.
&lt;br&gt;&lt;br&gt;LoadFile /usr/lib/libcrypto.so.0.9.8
&lt;br&gt;LoadFile /usr/lib/libcrypto.so.0.9.7
&lt;br&gt;LoadFile /usr/lib/libcrypto
&lt;br&gt;&lt;br&gt;but with no success....
&lt;br&gt;&lt;br&gt;Any Ideas left....
&lt;br&gt;&lt;br&gt;Christian</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-can-i-decrypt-a-cookie-in-a-module-tp20205613p20207506.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20207262</id>
	<title>Re: How can i decrypt a cookie in a module</title>
	<published>2008-10-28T06:30:40Z</published>
	<updated>2008-10-28T06:30:40Z</updated>
	<author>
		<name>Peter Poeml</name>
	</author>
	<content type="html">On Tue, Oct 28, 2008 at 02:12:26PM +0100, Christian Klinger wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;The symbol BF_Decrypt is probably to be found in libcrypto from &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;gt;OpenSSL.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;When mod_auth_tkt was compiled, it was not linked with that library. &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;gt;So
&lt;br&gt;&amp;gt; &amp;gt;either you need to add -lcrypto to the compile command, or you can
&lt;br&gt;&amp;gt; &amp;gt;alternatively start Apache with the &amp;quot;LoadFile directive&amp;quot;, which will
&lt;br&gt;&amp;gt; &amp;gt;cause Apache to load the library so that the symbol can be found at
&lt;br&gt;&amp;gt; &amp;gt;runtime.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;Peter
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hello Peter,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; thanks for the answers, but i don´t get it.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I try to add the Icrypto in my Makefile i get the error again:
&lt;/div&gt;&lt;/div&gt;I meant -l (as in &amp;quot;link&amp;quot;), not -I (as in &amp;quot;include&amp;quot;).
&lt;br&gt;&lt;br&gt;Try to add this into the command: 
&lt;br&gt;-lssl -lcrypto
&lt;br&gt;&lt;br&gt;This will add a reference to libssl and libcrypto (from your library
&lt;br&gt;path) be added to the shared object that you compile with 'apxs -c ...'.
&lt;br&gt;&lt;br&gt;&lt;br&gt;You didn't get an error from the -I you tried, because it just adds a
&lt;br&gt;search path to look for include files, and non-existing paths are
&lt;br&gt;ignored.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; What file should i include to the LoadFile? Blowfish.h mod_auth_tkt.so?
&lt;br&gt;&lt;br&gt;You would use it as such:
&lt;br&gt;&lt;br&gt;LoadFile /usr/lib/libcrypto.so
&lt;br&gt;&lt;br&gt;To find the correct library, you could try 
&lt;br&gt;ldd $(which sshd) | grep crypto
&lt;br&gt;&lt;br&gt;&amp;gt; Sorry i´m a newbie in this stuff.
&lt;br&gt;&lt;br&gt;Everybody is at some point in time :)
&lt;br&gt;&lt;br&gt;Peter
&lt;br&gt;-- 
&lt;br&gt;Contact: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20207262&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;admin@...&lt;/a&gt; (a.k.a. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20207262&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ftpadmin@...&lt;/a&gt;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#opensuse-mirrors on freenode.net
&lt;br&gt;Info: &lt;a href=&quot;http://en.opensuse.org/Mirror_Infrastructure&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.opensuse.org/Mirror_Infrastructure&lt;/a&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;SUSE LINUX Products GmbH
&lt;br&gt;Research &amp; Development
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;attachment0&lt;/strong&gt; (196 bytes) &lt;a href=&quot;http://www.nabble.com/attachment/20207262/0/attachment0&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-can-i-decrypt-a-cookie-in-a-module-tp20205613p20207262.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20207125</id>
	<title>Re: How can i decrypt a cookie in a module</title>
	<published>2008-10-28T06:24:11Z</published>
	<updated>2008-10-28T06:24:11Z</updated>
	<author>
		<name>Dave Ingram</name>
	</author>
	<content type="html">Christian Klinger wrote:
&lt;br&gt;&amp;gt; thanks for the answers, but i don´t get it.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I try to add the Icrypto in my Makefile i get the error again:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; [snip]
&lt;br&gt;That's a font issue - it's actually a lowercase L (for library) rather
&lt;br&gt;than an uppercase i (for include directory).
&lt;br&gt;&lt;br&gt;&amp;gt; What file should i include to the LoadFile? Blowfish.h mod_auth_tkt.so?
&lt;br&gt;I believe the LoadFile should be the path to the OpenSSL crypto library,
&lt;br&gt;which would be something like /usr/lib/libcrypto.so (but you may need to
&lt;br&gt;select a specific version). See the docs at
&lt;br&gt;&lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/mod_so.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://httpd.apache.org/docs/2.2/mod/mod_so.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Sorry i´m a newbie in this stuff.
&lt;br&gt;Everyone starts somewhere :-)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Dave
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-can-i-decrypt-a-cookie-in-a-module-tp20205613p20207125.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20206956</id>
	<title>Re: How can i decrypt a cookie in a module</title>
	<published>2008-10-28T06:12:26Z</published>
	<updated>2008-10-28T06:12:26Z</updated>
	<author>
		<name>Christian Klinger</name>
	</author>
	<content type="html">&lt;div class='shrinkable-quote'&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The symbol BF_Decrypt is probably to be found in libcrypto from &amp;nbsp;
&lt;br&gt;&amp;gt; OpenSSL.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When mod_auth_tkt was compiled, it was not linked with that library. &amp;nbsp;
&lt;br&gt;&amp;gt; So
&lt;br&gt;&amp;gt; either you need to add -lcrypto to the compile command, or you can
&lt;br&gt;&amp;gt; alternatively start Apache with the &amp;quot;LoadFile directive&amp;quot;, which will
&lt;br&gt;&amp;gt; cause Apache to load the library so that the symbol can be found at
&lt;br&gt;&amp;gt; runtime.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Peter
&lt;/div&gt;&lt;br&gt;Hello Peter,
&lt;br&gt;&lt;br&gt;thanks for the answers, but i don´t get it.
&lt;br&gt;&lt;br&gt;I try to add the Icrypto in my Makefile i get the error again:
&lt;br&gt;&lt;br&gt;g3:/opt/apache/mod_auth_tkt-2.0.0rc3 # make
&lt;br&gt;cd src &amp;&amp; make all
&lt;br&gt;make[1]: Entering directory `/opt/apache/mod_auth_tkt-2.0.0rc3/src'
&lt;br&gt;/opt/apache/server/bin/apxs -c -Wc, &amp;quot;-Wall -ansi -g -Wall -ansi - 
&lt;br&gt;pedantic -Wno-implicit-function-declaration -Wno-long-long -Icrypto&amp;quot; &amp;nbsp;
&lt;br&gt;mod_auth_tkt.c
&lt;br&gt;/opt/apache/server/build/libtool --silent --mode=compile gcc -prefer- 
&lt;br&gt;pic &amp;nbsp;-DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT - 
&lt;br&gt;D_GNU_SOURCE -g -O2 -pthread -I/opt/apache/server/include &amp;nbsp;-I/opt/ 
&lt;br&gt;apache/server/include &amp;nbsp; -I/opt/apache/server/include &amp;nbsp; &amp;nbsp;-c -o &amp;nbsp;
&lt;br&gt;mod_auth_tkt.lo mod_auth_tkt.c &amp;&amp; touch mod_auth_tkt.slo
&lt;br&gt;/opt/apache/server/build/libtool --silent --mode=link gcc -o &amp;nbsp;
&lt;br&gt;mod_auth_tkt.la &amp;nbsp;-rpath /opt/apache/server/modules -module -avoid- 
&lt;br&gt;version &amp;nbsp; &amp;nbsp;mod_auth_tkt.lo
&lt;br&gt;make[1]: Leaving directory `/opt/apache/mod_auth_tkt-2.0.0rc3/src'
&lt;br&gt;cd doc &amp;&amp; make all
&lt;br&gt;make[1]: Entering directory `/opt/apache/mod_auth_tkt-2.0.0rc3/doc'
&lt;br&gt;pod2man --section=3 --release=2.0.0rc3 mod_auth_tkt.pod mod_auth_tkt.3
&lt;br&gt;make[1]: Leaving directory `/opt/apache/mod_auth_tkt-2.0.0rc3/doc'
&lt;br&gt;&lt;br&gt;&lt;br&gt;What file should i include to the LoadFile? Blowfish.h mod_auth_tkt.so?
&lt;br&gt;&lt;br&gt;Sorry i´m a newbie in this stuff.
&lt;br&gt;&lt;br&gt;Christian
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; Contact: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20206956&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;admin@...&lt;/a&gt; (a.k.a. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20206956&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ftpadmin@...&lt;/a&gt;)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #opensuse-mirrors on freenode.net
&lt;br&gt;&amp;gt; Info: &lt;a href=&quot;http://en.opensuse.org/Mirror_Infrastructure&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.opensuse.org/Mirror_Infrastructure&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; SUSE LINUX Products GmbH
&lt;br&gt;&amp;gt; Research &amp; Development
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-can-i-decrypt-a-cookie-in-a-module-tp20205613p20206956.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20206535</id>
	<title>Re: How can i decrypt a cookie in a module</title>
	<published>2008-10-28T05:43:14Z</published>
	<updated>2008-10-28T05:43:14Z</updated>
	<author>
		<name>Peter Poeml</name>
	</author>
	<content type="html">On Tue, Oct 28, 2008 at 12:35:51PM +0100, Christian Klinger wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hello,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; how can i decrypt a blowfish sigend cookie in an module.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I have tried to do this so far: mod_auth_tkt is the module which &amp;nbsp;
&lt;br&gt;&amp;gt; should decrypt the cookie.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I have included openssl/blowfish in the mod_auth_tkt.c
&lt;br&gt;&amp;gt; #include &amp;lt;openssl/blowfish.h&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I try to get my key config with this command:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; BF_set_key(&amp;key, 8, (unsigned char *)bf_key[1]);
&lt;br&gt;&amp;gt; &amp;nbsp; BF_Decrypt(b, &amp;key);
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I hope this is correct so far?
&lt;br&gt;&amp;gt; make &amp;&amp; make install works so far.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; But if i try to start apache i get this error message:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Syntax error on line 235 of /opt/apache/server/conf/httpd.conf:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Cannot load /opt/apache/server/modules/mod_auth_tkt.so into server: / 
&lt;br&gt;&amp;gt; opt/apache/server/modules/mod_auth_tkt.so: undefined symbol: BF_Decrypt
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Any ideas where i can look for this? 
&lt;/div&gt;&lt;/div&gt;The symbol BF_Decrypt is probably to be found in libcrypto from OpenSSL.
&lt;br&gt;&lt;br&gt;When mod_auth_tkt was compiled, it was not linked with that library. So
&lt;br&gt;either you need to add -lcrypto to the compile command, or you can
&lt;br&gt;alternatively start Apache with the &amp;quot;LoadFile directive&amp;quot;, which will
&lt;br&gt;cause Apache to load the library so that the symbol can be found at
&lt;br&gt;runtime.
&lt;br&gt;&lt;br&gt;Peter
&lt;br&gt;-- 
&lt;br&gt;Contact: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20206535&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;admin@...&lt;/a&gt; (a.k.a. &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=20206535&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ftpadmin@...&lt;/a&gt;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#opensuse-mirrors on freenode.net
&lt;br&gt;Info: &lt;a href=&quot;http://en.opensuse.org/Mirror_Infrastructure&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://en.opensuse.org/Mirror_Infrastructure&lt;/a&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;SUSE LINUX Products GmbH
&lt;br&gt;Research &amp; Development
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;attachment0&lt;/strong&gt; (196 bytes) &lt;a href=&quot;http://www.nabble.com/attachment/20206535/0/attachment0&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-can-i-decrypt-a-cookie-in-a-module-tp20205613p20206535.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20205613</id>
	<title>How can i decrypt a cookie in a module</title>
	<published>2008-10-28T04:35:51Z</published>
	<updated>2008-10-28T04:35:51Z</updated>
	<author>
		<name>Christian Klinger</name>
	</author>
	<content type="html">Hello,
&lt;br&gt;&lt;br&gt;how can i decrypt a blowfish sigend cookie in an module.
&lt;br&gt;&lt;br&gt;I have tried to do this so far: mod_auth_tkt is the module which &amp;nbsp;
&lt;br&gt;should decrypt the cookie.
&lt;br&gt;&lt;br&gt;I have included openssl/blowfish in the mod_auth_tkt.c
&lt;br&gt;#include &amp;lt;openssl/blowfish.h&amp;gt;
&lt;br&gt;&lt;br&gt;I try to get my key config with this command:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;BF_set_key(&amp;key, 8, (unsigned char *)bf_key[1]);
&lt;br&gt;&amp;nbsp; &amp;nbsp;BF_Decrypt(b, &amp;key);
&lt;br&gt;&lt;br&gt;I hope this is correct so far?
&lt;br&gt;make &amp;&amp; make install works so far.
&lt;br&gt;&lt;br&gt;But if i try to start apache i get this error message:
&lt;br&gt;&lt;br&gt;Syntax error on line 235 of /opt/apache/server/conf/httpd.conf:
&lt;br&gt;&lt;br&gt;Cannot load /opt/apache/server/modules/mod_auth_tkt.so into server: / 
&lt;br&gt;opt/apache/server/modules/mod_auth_tkt.so: undefined symbol: BF_Decrypt
&lt;br&gt;&lt;br&gt;Any ideas where i can look for this? 
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-can-i-decrypt-a-cookie-in-a-module-tp20205613p20205613.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-20169165</id>
	<title>Re: Howto implement a new algorithm scheduler in mod_proxy_balancer</title>
	<published>2008-10-25T16:57:23Z</published>
	<updated>2008-10-25T16:57:23Z</updated>
	<author>
		<name>ricardo13</name>
	</author>
	<content type="html">Hi
&lt;br&gt;&lt;br&gt;I will build a scheduler that receive a little message from cluster. At cluster, there is a process that send messages about CPU.
&lt;br&gt;Then the server I need to build a separate program that receives that message and passes to the apache.
&lt;br&gt;&lt;br&gt;Can I use socket to communicate external process with apache ??? Or shared memory ??
&lt;br&gt;&lt;br&gt;Thank you
&lt;br&gt;&lt;br&gt;Ricardo</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Howto-implement-a-new-algorithm-scheduler-in-mod_proxy_balancer-tp20082207p20169165.html" />
</entry>

</feed>
