<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">
    
    <channel>
    
    <title>Process&#45;one Discussion Forums</title>
    <link>http://www.process-one.net/en/forum/</link>
    <description>Process&#45;one Discussion Forums</description>
    <dc:language>en</dc:language>
    <dc:rights>Copyright 2008</dc:rights>
    <dc:date>2008-09-23T07:02:19+01:00</dc:date>
    <admin:generatorAgent rdf:resource="http://expressionengine.com/" />
    

    <item>
      <title>Not able to connect to jabber server with jsjac&#45;1.3.1</title>
      <link>http://www.process&#45;one.net/en/forum/viewthread/138/</link>
      <guid>http://www.process-one.net/en/forum/viewthread/138/#When:07:02:19Z</guid>
      <description>&lt;p&gt;Hi,
&lt;br /&gt;
     I am new to jsjac&#45;1.3.1. I am using  jsjac&#45;1.3.1 to connect with jabber server. for connection i am using example html i.e. simpleclient.html under exapmle directory of jsjac&#45;1.3.1. 
&lt;/p&gt;
&lt;p&gt;
Can any one help me in understanding the field(&lt;b&gt;HTTP Base&lt;/b&gt;) on this page and what will be the possible value for that.
&lt;/p&gt;
&lt;p&gt;
when i tried to coonect with jabber server through jsjac&#45;1.3.1 it is giving me &#8220;[object Error]&#8221; on the same page.
&lt;/p&gt;
&lt;p&gt;
Can anyone help me out in this. how  can i resolve this problem.
&lt;/p&gt;</description>
      <dc:date>2008-09-23T07:02:19+01:00</dc:date>
    </item>

    <item>
      <title>Blocking messages based on criteria</title>
      <link>http://www.process&#45;one.net/en/forum/viewthread/134/</link>
      <guid>http://www.process-one.net/en/forum/viewthread/134/#When:22:06:49Z</guid>
      <description>&lt;p&gt;Hello,
&lt;/p&gt;
&lt;p&gt;
As part of a web application I&#8217;m developing I need to deny communication unless a registered chat session (maintained by the web app) is created between two users.
&lt;/p&gt;
&lt;p&gt;
At first glance it seemed to make sense to use the filter_packet hook to call the logic in my module but for some reason the code doesn&#8217;t seem to get executed.
&lt;/p&gt;
&lt;p&gt;
Is there something I have to enable for filter_packet hook to be called? 
&lt;/p&gt;
&lt;p&gt;
Is this the correct approach or should I be using something else?
&lt;/p&gt;
&lt;p&gt;
Thanks!
&lt;/p&gt;
&lt;p&gt;
D
&lt;/p&gt;</description>
      <dc:date>2008-08-19T22:06:49+01:00</dc:date>
    </item>

    <item>
      <title>Whole Server List In My Client</title>
      <link>http://www.process&#45;one.net/en/forum/viewthread/133/</link>
      <guid>http://www.process-one.net/en/forum/viewthread/133/#When:20:45:07Z</guid>
      <description>&lt;p&gt;Hello!
&lt;/p&gt;
&lt;p&gt;
Im new! I&#8217;ve install EJabberd.
&lt;br /&gt;
I want to know if theres any tool to make a list of users in my server and then, when someone login gets the whole list that resides in my server? I also need that the user cannot delete any of the list.
&lt;/p&gt;
&lt;p&gt;
Thanks!
&lt;/p&gt;
&lt;p&gt;
:D
&lt;/p&gt;</description>
      <dc:date>2008-08-19T20:45:07+01:00</dc:date>
    </item>

    <item>
      <title>SPAM Messages</title>
      <link>http://www.process&#45;one.net/en/forum/viewthread/132/</link>
      <guid>http://www.process-one.net/en/forum/viewthread/132/#When:20:42:48Z</guid>
      <description>&lt;p&gt;Hello!
&lt;br /&gt;
I&#8217;ve install ejabberd! Its really nice. But I want to know a few things.
&lt;br /&gt;
Theres a way to capture SPAM messages in the server?
&lt;br /&gt;
For example: 
&lt;br /&gt;
A is connected to my server
&lt;br /&gt;
B send a message some thing with words: sex, virus, etc&#8230;
&lt;br /&gt;
A doesnt get the message because my server delete it.
&lt;/p&gt;
&lt;p&gt;
I want to do this because of the virus in msn is making me crazy!
&lt;br /&gt;
jejeje&#8230;
&lt;/p&gt;
&lt;p&gt;
Another thing I need, I&#8217;ll post it in other Topic
&lt;/p&gt;
&lt;p&gt;
Thanks!
&lt;/p&gt;</description>
      <dc:date>2008-08-19T20:42:48+01:00</dc:date>
    </item>

    <item>
      <title>Check if a user is logged on</title>
      <link>http://www.process&#45;one.net/en/forum/viewthread/127/</link>
      <guid>http://www.process-one.net/en/forum/viewthread/127/#When:22:46:21Z</guid>
      <description>&lt;p&gt;Hi.
&lt;/p&gt;
&lt;p&gt;
Is there an API call I can do in order to check if a user is currently online?
&lt;/p&gt;
&lt;p&gt;
Thanks!
&lt;br /&gt;
&#45;&#45;
&lt;br /&gt;
Tor&#45;Helge Persett
&lt;/p&gt;</description>
      <dc:date>2008-05-02T22:46:21+01:00</dc:date>
    </item>

    <item>
      <title>Get User Info from ejabbered.</title>
      <link>http://www.process&#45;one.net/en/forum/viewthread/128/</link>
      <guid>http://www.process-one.net/en/forum/viewthread/128/#When:03:58:36Z</guid>
      <description>&lt;p&gt;Hi All,
&lt;/p&gt;
&lt;p&gt;
I have installed ejabber2.0 on my machine and have created a couple users via UI and adding manually in cfg file. Now i could login with these new users.
&lt;/p&gt;
&lt;p&gt;
I am new to jabber. I want to know:
&lt;/p&gt;
&lt;p&gt;
1. How can i add friends so that i can see them as my friends and chat with them?
&lt;br /&gt;
2. Do i always need to add users in ejabberd.cfg file, restart to relect the user?
&lt;/p&gt;
&lt;p&gt;
Are there any API support to access the ejabber that i have installed on my machine.
&lt;/p&gt;
&lt;p&gt;
Where can i find documentation regarding this.
&lt;/p&gt;
&lt;p&gt;
Any help would be highly appreciated.
&lt;/p&gt;
&lt;p&gt;
Thanks in advace.
&lt;/p&gt;
&lt;p&gt;
Thanks,
&lt;br /&gt;
Shridhar
&lt;/p&gt;</description>
      <dc:date>2008-05-08T03:58:36+01:00</dc:date>
    </item>

    <item>
      <title>Sources des installeurs ejabberd sous linux</title>
      <link>http://www.process&#45;one.net/en/forum/viewthread/126/</link>
      <guid>http://www.process-one.net/en/forum/viewthread/126/#When:22:32:43Z</guid>
      <description>&lt;p&gt;Bonjour,
&lt;/p&gt;
&lt;p&gt;
J&#8217;ai développé un module d&#8217;installation de ejabberd pour la solution SME Server (smeserver&#45;ejabberd) qui se présente en format rpm et s&#8217;appuie sur l&#8217;installateur ejabberd&#45;1.1.4&#45;linux&#45;x86&#45;installer.bin.gz que vous avez développé.
&lt;/p&gt;
&lt;p&gt;
Je prépare une mise à jour pour la version 2.0
&lt;/p&gt;
&lt;p&gt;
Mon problème est lié à la licence GNU GPL. Mon paquetage source incorpore actuellement votre installeur, et je dois être capable pour le distribuer en conformité avec la GPL de donner l&#8217;accès au sources de l&#8217;installeur en question (ou de les incorporer directement dans le rpm source) . Est&#45;il possible de les obtenir ?
&lt;/p&gt;
&lt;p&gt;
Merci de votre réponse
&lt;/p&gt;
&lt;p&gt;
Jean&#45;Paul Leclère
&lt;/p&gt;</description>
      <dc:date>2008-04-27T22:32:43+01:00</dc:date>
    </item>

    <item>
      <title>Kicking a user</title>
      <link>http://www.process&#45;one.net/en/forum/viewthread/124/</link>
      <guid>http://www.process-one.net/en/forum/viewthread/124/#When:23:00:58Z</guid>
      <description>&lt;p&gt;In ejabberd 1.1.4 I had a module which had the ability to kick a user, this was accomplished by routing a broadcast &#8220;disconnect&#8221; packet to the user via.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;
&lt;span style=&quot;color: #0000BB&quot;&gt;force_disconnect&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;User&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Server&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Msg&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) &#45;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;ejabberd_sm&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;route&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;jlib&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;make_jid&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;jlib&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;make_jid&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;User&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Server&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;xmlelement&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;broadcast&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#91;&#93;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#91;&#123;disconnect&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Msg&#125;&#93;&#125;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;).&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
This no longer seems to work with ejabberd 2.0, i was wondering if their was an easier way of possibly doing this.
&lt;/p&gt;</description>
      <dc:date>2008-04-17T23:00:58+01:00</dc:date>
    </item>

    <item>
      <title>ejabberd&#45;2.0.0 problem!!</title>
      <link>http://www.process&#45;one.net/en/forum/viewthread/123/</link>
      <guid>http://www.process-one.net/en/forum/viewthread/123/#When:11:12:44Z</guid>
      <description>&lt;p&gt;i encountered a problem with ejabberd 2.0.0 it was running fine with me until an incident happen the machine that hosts my ejabberd shutdowned and when it starts up ejabberd won&#8217;t work properly i tried to stop and start it again it files an errors in logs i will attach the log and the crach report
&lt;/p&gt;
&lt;p&gt;
/var/log/ejabberd/sasl.log
&lt;br /&gt;
=SUPERVISOR REPORT==== 13&#45;Apr&#45;2008::11:06:30 ===
&lt;br /&gt;
     Supervisor: &#123;local,mnesia_sup&#125;
&lt;br /&gt;
     Context:&amp;nbsp;   child_terminated
&lt;br /&gt;
     Reason:&amp;nbsp;    shutdown
&lt;br /&gt;
     Offender:&amp;nbsp;  [&#123;pid,&amp;lt;0.63.0&amp;gt;&#125;,
&lt;br /&gt;
                  &#123;name,mnesia_kernel_sup&#125;,
&lt;br /&gt;
                  &#123;mfa,&#123;mnesia_kernel_sup,start,[]&#125;&#125;,
&lt;br /&gt;
                  &#123;restart_type,permanent&#125;,
&lt;br /&gt;
                  &#123;shutdown,infinity&#125;,
&lt;br /&gt;
                  &#123;child_type,supervisor&#125;]
&lt;/p&gt;
&lt;p&gt;
=SUPERVISOR REPORT==== 13&#45;Apr&#45;2008::11:06:30 ===
&lt;br /&gt;
     Supervisor: &#123;local,mnesia_sup&#125;
&lt;br /&gt;
     Context:&amp;nbsp;   shutdown
&lt;br /&gt;
     Reason:&amp;nbsp;    reached_max_restart_intensity
&lt;br /&gt;
     Offender:&amp;nbsp;  [&#123;pid,&amp;lt;0.63.0&amp;gt;&#125;,
&lt;br /&gt;
                  &#123;name,mnesia_kernel_sup&#125;,
&lt;br /&gt;
                  &#123;mfa,&#123;mnesia_kernel_sup,start,[]&#125;&#125;,
&lt;br /&gt;
                  &#123;restart_type,permanent&#125;,
&lt;br /&gt;
                  &#123;shutdown,infinity&#125;,
&lt;br /&gt;
                  &#123;child_type,supervisor&#125;]
&lt;/p&gt;
&lt;p&gt;
=PROGRESS REPORT==== 13&#45;Apr&#45;2008::11:06:30 ===
&lt;br /&gt;
          supervisor: &#123;local,crypto_sup&#125;
&lt;br /&gt;
             started: [&#123;pid,&amp;lt;0.120.0&amp;gt;&#125;,
&lt;br /&gt;
                       &#123;name,crypto_server&#125;,
&lt;br /&gt;
                       &#123;mfa,&#123;crypto_server,start_link,[]&#125;&#125;,
&lt;br /&gt;
                       &#123;restart_type,permanent&#125;,
&lt;br /&gt;
                       &#123;shutdown,2000&#125;,
&lt;br /&gt;
                       &#123;child_type,worker&#125;]
&lt;/p&gt;
&lt;p&gt;
=PROGRESS REPORT==== 13&#45;Apr&#45;2008::11:06:30 ===
&lt;br /&gt;
         application: crypto
&lt;br /&gt;
          started_at: ejabberd@localhost
&lt;/p&gt;
&lt;p&gt;
=PROGRESS REPORT==== 13&#45;Apr&#45;2008::11:06:30 ===
&lt;br /&gt;
          supervisor: &#123;local,ssl_sup&#125;
&lt;br /&gt;
             started: [&#123;pid,&amp;lt;0.126.0&amp;gt;&#125;,
&lt;br /&gt;
                       &#123;name,ssl_server&#125;,
&lt;br /&gt;
                       &#123;mfa,&#123;ssl_server,start_link,[]&#125;&#125;,
&lt;br /&gt;
                       &#123;restart_type,permanent&#125;,
&lt;br /&gt;
                       &#123;shutdown,2000&#125;,
&lt;br /&gt;
                       &#123;child_type,worker&#125;]
&lt;/p&gt;
&lt;p&gt;
=PROGRESS REPORT==== 13&#45;Apr&#45;2008::11:06:30 ===
&lt;br /&gt;
          supervisor: &#123;local,ssl_sup&#125;
&lt;br /&gt;
             started: [&#123;pid,&amp;lt;0.127.0&amp;gt;&#125;,
&lt;br /&gt;
                       &#123;name,ssl_broker_sup&#125;,
&lt;br /&gt;
                       &#123;mfa,&#123;ssl_broker_sup,start_link,[]&#125;&#125;,
&lt;br /&gt;
                       &#123;restart_type,permanent&#125;,
&lt;br /&gt;
                       &#123;shutdown,2000&#125;,
&lt;br /&gt;
                       &#123;child_type,supervisor&#125;]
&lt;/p&gt;
&lt;p&gt;
=PROGRESS REPORT==== 13&#45;Apr&#45;2008::11:06:30 ===
&lt;br /&gt;
         application: ssl
&lt;br /&gt;
          started_at: ejabberd@localhost
&lt;/p&gt;
&lt;p&gt;
=PROGRESS REPORT==== 13&#45;Apr&#45;2008::11:06:30 ===
&lt;br /&gt;
          supervisor: &#123;local,stringprep_sup&#125;
&lt;br /&gt;
             started: [&#123;pid,&amp;lt;0.129.0&amp;gt;&#125;,
&lt;br /&gt;
                       &#123;name,stringprep&#125;,
&lt;br /&gt;
                       &#123;mfa,&#123;stringprep,start_link,[]&#125;&#125;,
&lt;br /&gt;
                       &#123;restart_type,permanent&#125;,
&lt;br /&gt;
                       &#123;shutdown,brutal_kill&#125;,
&lt;br /&gt;
                       &#123;child_type,worker&#125;]
&lt;/p&gt;
&lt;p&gt;
=CRASH REPORT==== 13&#45;Apr&#45;2008::11:06:31 ===
&lt;br /&gt;
  crasher:
&lt;br /&gt;
    pid: &amp;lt;0.36.0&amp;gt;
&lt;br /&gt;
    registered_name: []
&lt;br /&gt;
    error_info: &#123;bad_return,
&lt;br /&gt;
                     &#123;&#123;ejabberd_app,start,[normal,[]]&#125;,
&lt;br /&gt;
                      &#123;&#8217;EXIT&#8217;,
&lt;br /&gt;
                          &#123;&#123;case_clause,
&lt;br /&gt;
                               &#123;aborted,
&lt;br /&gt;
                                   &#123;node_not_running,ejabberd@localhost&#125;&#125;&#125;,
&lt;br /&gt;
                           [&#123;ejabberd_config,set_opts,1&#125;,
&lt;br /&gt;
                            &#123;ejabberd_app,start,2&#125;,
&lt;br /&gt;
                            &#123;application_master,start_it_old,4&#125;]&#125;&#125;&#125;&#125;
&lt;br /&gt;
    initial_call: &#123;application_master,
&lt;br /&gt;
                     init,
&lt;br /&gt;
                     [&amp;lt;0.5.0&amp;gt;,
&lt;br /&gt;
                      &amp;lt;0.35.0&amp;gt;,
&lt;br /&gt;
                      &#123;appl_data,
&lt;br /&gt;
                          ejabberd,
&lt;br /&gt;
                          [ejabberd,
&lt;br /&gt;
                           ejabberd_sup,
&lt;br /&gt;
                           ejabberd_auth,
&lt;br /&gt;
                           ejabberd_router,
&lt;br /&gt;
                           ejabberd_sm,
&lt;br /&gt;
                           ejabberd_s2s,
&lt;br /&gt;
                           ejabberd_local,
&lt;br /&gt;
                           ejabberd_listeners,
&lt;br /&gt;
                           ejabberd_iq_sup,
&lt;br /&gt;
                           ejabberd_service_sup,
&lt;br /&gt;
                           ejabberd_s2s_out_sup,
&lt;br /&gt;
                           ejabberd_s2s_in_sup,
&lt;br /&gt;
                           ejabberd_c2s_sup,
&lt;br /&gt;
                           ejabberd_mod_roster,
&lt;br /&gt;
                           ejabberd_mod_echo,
&lt;br /&gt;
                           ejabberd_mod_pubsub,
&lt;br /&gt;
                           ejabberd_mod_irc,
&lt;br /&gt;
                           ejabberd_mod_muc,
&lt;br /&gt;
                           ejabberd_offline,
&lt;br /&gt;
                           random_generator],
&lt;br /&gt;
                          undefined,
&lt;br /&gt;
                          &#123;ejabberd_app,[]&#125;,
&lt;br /&gt;
                          [acl,
&lt;br /&gt;
                           adhoc,
&lt;br /&gt;
                           configure,
&lt;br /&gt;
                           cyrsasl_anonymous,
&lt;br /&gt;
                           cyrsasl,
&lt;br /&gt;
                           cyrsasl_digest,
&lt;br /&gt;
                           cyrsasl_plain,
&lt;br /&gt;
                           ejabberd_admin,
&lt;br /&gt;
                           ejabberd_app,
&lt;br /&gt;
                           ejabberd_auth_anonymous,
&lt;br /&gt;
                           ejabberd_auth,
&lt;br /&gt;
                           ejabberd_auth_external,
&lt;br /&gt;
                           ejabberd_auth_internal,
&lt;br /&gt;
                           ejabberd_auth_ldap,
&lt;br /&gt;
                           ejabberd_auth_odbc,
&lt;br /&gt;
                           ejabberd_auth_pam,
&lt;br /&gt;
                           ejabberd,
&lt;br /&gt;
                           ejabberd_c2s,
&lt;br /&gt;
                           ejabberd_c2s_config,
&lt;br /&gt;
                           ejabberd_config,
&lt;br /&gt;
                           ejabberd_ctl,
&lt;br /&gt;
                           ejabberd_frontend_socket,
&lt;br /&gt;
                           ejabberd_hooks,
&lt;br /&gt;
                           ejabberd_http,
&lt;br /&gt;
                           ejabberd_http_bind,
&lt;br /&gt;
                           ejabberd_http_poll,
&lt;br /&gt;
                           ejabberd_listener,
&lt;br /&gt;
                           ejabberd_local,
&lt;br /&gt;
                           ejabberd_logger_h,
&lt;br /&gt;
                           ejabberd_loglevel,
&lt;br /&gt;
                           ejabberd_node_groups,
&lt;br /&gt;
                           ejabberd_rdbms,
&lt;/p&gt;</description>
      <dc:date>2008-04-14T11:12:44+01:00</dc:date>
    </item>

    <item>
      <title>Add cookie support to ejabberd</title>
      <link>http://www.process&#45;one.net/en/forum/viewthread/122/</link>
      <guid>http://www.process-one.net/en/forum/viewthread/122/#When:17:27:27Z</guid>
      <description>&lt;p&gt;Hello,
&lt;br /&gt;
I posted a brief guide describing how to add cookies support to ejabberd (link below) in a simple way.
&lt;br /&gt;
I was wondering if it was possible to eventually release a patch for the users who needs this support &lt;img class=&apos;inline&apos; src=&quot;http://www.process&#45;one.net/images/smileys/smile.gif&quot; width=&quot;19&quot; height=&quot;19&quot; alt=&quot;smile&quot; style=&quot;border:0;&quot; /&gt;
&lt;br /&gt;
The patch is relatively simple and it would patch ejabberd_http.erl module and its header file ejabberd_http.hrl.
&lt;br /&gt;
It works on ejabberd 1.1.x and ejabberd 2.x.
&lt;br /&gt;
If needed I could send to you the cookie patch, or attach here the entire code.
&lt;/p&gt;
&lt;p&gt;
(update)
&lt;br /&gt;
I&#8217;m attaching the original post here:
&lt;/p&gt;
&lt;p&gt;
To add cookies to HTTP POST/GET requests in ejabberd (1.1.x and 2.x) we have to add some fields in the request headers, setting up the request and state records in ejabberd_http.erl module and its header file ejabberd_http.hrl.
&lt;/p&gt;
&lt;p&gt;
First of all, we will add the field cookie to the record request in ejabberd_http.hrl header file as follows:
&lt;br /&gt;
&lt;/p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;
&lt;span style=&quot;color: #007700&quot;&gt;&#45;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;record&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;method&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;q &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#91;&#93;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;us&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;auth&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lang &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;data &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;cookie &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, %% &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lp&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;cookie request field&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;ip&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;&#125;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;).&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;&lt;p&gt;
As you can see we are referring to ejabberd 2.0 (in the request record we have the new field ip for new user info).
&lt;/p&gt;
&lt;p&gt;
Now we will edit the ejabberd_http.erl module, adding the field request_cookie to the record state:
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;
&lt;span style=&quot;color: #007700&quot;&gt;&#45;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;record&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;state&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;sockmod&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;socket&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_method&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_version&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_path&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_auth&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_cookie&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, %% &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lp&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;cookie request field&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;request_keepalive&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;(...)&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;&lt;p&gt;
 
&lt;br /&gt;
At this point, we have to pass cookies to handlers, modifying the process_headers and process_request functions:
&lt;/p&gt;
&lt;p&gt;
In the process_header, we will add to the case construct
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;
&lt;span style=&quot;color: #0000BB&quot;&gt;process_header&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;State&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) &#45;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;SockMod &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;State&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;#state.sockmod,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Socket &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;State&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;#state.socket,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;case &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Data of&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#123;ok&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;http_request&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Method&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Uri&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Version&#125;&#125; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;&#45;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(...)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;ok&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;http_header&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&apos;Authorization&apos;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Auth&#125;&#125; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;&#45;&amp;gt;&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;State&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;#state&#123;request_auth = parse_auth(Auth)&#125;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;ok&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;http_header&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&apos;Cookie&apos;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Cookie&#125;&#125; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;&#45;&amp;gt;&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;%% &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lp&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;setting up request header cookie&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;State&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;#state&#123;request_cookie = Cookie&#125;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;ok&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;http_header&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&apos;Content&#45;Length&apos;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;SLen&#125;&#125; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;&#45;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(...)&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
In the process_request we have to modify the function header as follows:
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;
&lt;span style=&quot;color: #0000BB&quot;&gt;process_request&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;#state&#123;request_method = &apos;GET&apos;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_path &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;abs_path&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Path&#125;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_auth &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Auth&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_lang &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Lang&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_cookie &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Cookie&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, %% &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lp&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;cookie request field&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;request_handlers &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;RequestHandlers&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;sockmod &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;SockMod&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;socket &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Socket&#125; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;State&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) &#45;&amp;gt;&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;&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;(...)&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Request &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;#request&#123;method = &apos;GET&apos;,&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;path &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;LPath&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;q &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;LQuery&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;auth &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Auth&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lang &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Lang&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;cookie &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Cookie&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, %% &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lp&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;here again &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;:)&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;ip&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;IP&#125;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;(...)&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;&lt;p&gt;
and in the next header too:
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;
&lt;span style=&quot;color: #0000BB&quot;&gt;process_request&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;#state&#123;request_method = &apos;POST&apos;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_path &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&#123;abs_path&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Path&#125;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_auth &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Auth&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_content_length &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Len&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_lang &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Lang&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_cookie &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Cookie&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, %% &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lp&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;cookie&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;sockmod &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;SockMod&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;socket &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Socket&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;request_handlers &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;RequestHandlers&#125; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;State&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;when is_integer&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Len&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) &#45;&amp;gt;&lt;br /&gt;&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;(...)&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Request &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;#request&#123;method = &apos;POST&apos;,&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;path &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;LPath&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;q &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;LQuery&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;auth &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Auth&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;cookie &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Cookie&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, %% &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lp&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;cookie the last one &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;)&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;data &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lang &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Lang&#125;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;case &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;process&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;RequestHandlers&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Request&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;of&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;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(...)&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Now, we are ready to add the cookie request&#8217;s field to our modules processing http requests:
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;
&lt;span style=&quot;color: #0000BB&quot;&gt;process&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;#request&#123;us = _US,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;path &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;login&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;q &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_Query&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;lang &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_Lang&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&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;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;cookie &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_Cookie&#125; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Request&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) &#45;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%% &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_Cookie will contain the request cookie now&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;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;%% &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Manage request by cookies&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;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;%% &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;Send response &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;:)&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Cheers,
&lt;br /&gt;
LP
&lt;/p&gt;
&lt;p&gt;
Link:
&lt;br /&gt;
&lt;a href=&quot;http://www.process&#45;one.net/en?URL=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd&quot;&gt;http://erlangdevelopers.splinder.com/post/16609181/Add+cookie+support+in+ejabberd&lt;/a&gt;
&lt;/p&gt;</description>
      <dc:date>2008-04-04T17:27:27+01:00</dc:date>
    </item>

    
    </channel>
</rss>