<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0"  xmlns:duser="http://rss.dada.net/ns/dadauser"
               xmlns:dmedia="http://rss.dada.net/ns/dadamedia"
               xmlns:dc="http://purl.org/dc/elements/1.1/"
               xmlns:media="http://search.yahoo.com/mrss/"
               xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	       xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
	       xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"
             >
<channel>
 <title>Erlang Developers Home</title>
 <link>http://erlangdevelopers.splinder.com</link>
 <description>The First Erlang Developers Social Group Ever!</description>
 <language>it</language>
 <pubDate>Fri, 23 Oct 2009 12:47:03 +0200</pubDate>
 <image> <url>http://erlangdevelopers.splinder.com/misc/img/80x27-Spowered.gif</url>
 <link>http://erlangdevelopers.splinder.com</link>
 <title>Splinder</title>
</image>
<item>
 <title>Flash XML patch for ejabberd 2.0.3</title>
 <link>http://erlangdevelopers.splinder.com/post/19928645/Flash+XML+patch+for+ejabberd+2</link>
 <description>&lt;p&gt;Hello folks!&lt;br /&gt;
I've made a new patch to fit new ejabberd 2.0.3. &lt;br /&gt;
The file can be found &lt;a href="https://support.process-one.net/browse/EJAB-599?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel" target="_blank"&gt;here&lt;/a&gt;&lt;br /&gt;
Hope it works for you all.&lt;/p&gt;Pubblicato da &lt;a href="http://www.splinder.com/profile/stefko" &gt;stefko&lt;/a&gt; | &lt;a href="http://erlangdevelopers.splinder.com/post/19928645/Flash+XML+patch+for+ejabberd+2#comment" &gt;Commenti (51)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;Tag: &lt;a href="http://erlangdevelopers.splinder.com/tag/flash" &gt;flash&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/patch" &gt;patch&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/ejabberd" &gt;ejabberd&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/xml+socket" &gt;xml socket&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.splinder.com/blogthis?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2" title="Cita il post nel tuo blog" rel="nofollow" class="image" &gt;&lt;img src="http://www.splinder.com/modules/service_links/blogthis.png" alt="Cita il post nel tuo blog" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.splinder.com/community/contacts/invite?nid=19928645" title="Segnala il post" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/emailthis.png" alt="Segnala il post" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://del.icio.us/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2&amp;title=Flash+XML+patch+for+ejabberd+2.0.3" title="Aggiungi su del.icio.us" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/delicious.png" alt="Aggiungi su del.icio.us" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2&amp;title=Flash+XML+patch+for+ejabberd+2.0.3" title="Aggiungi su digg.com" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/digg.png" alt="Aggiungi su digg.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2&amp;title=Flash+XML+patch+for+ejabberd+2.0.3" title="Aggiungi su Google" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/google.png" alt="Aggiungi su Google" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2&amp;t=Flash+XML+patch+for+ejabberd+2.0.3" title="Aggiungi su Yahoo" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/yahoo.png" alt="Aggiungi su Yahoo" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://technorati.com/faves?add=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2" title="Aggiungi su Technorati" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/technorati.png" alt="Aggiungi su Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.badzu.net/submit?action=it&amp;link=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2&amp;title=Flash+XML+patch+for+ejabberd+2.0.3" title="Aggiungi su Badzu" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/badzu.png" alt="Aggiungi su Badzu" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2" title="Aggiungi su Facebook" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/facebook.png" alt="Aggiungi su Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://oknotizie.alice.it/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2&amp;title=Flash+XML+patch+for+ejabberd+2.0.3" title="Aggiungi su OKNOtizie" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/oknotizie.png" alt="Aggiungi su OKNOtizie" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2" title="Aggiungi a Twitter" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/twitter.png" alt="Aggiungi a Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2&amp;top=1" title="Add to Windows Live" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/windowslive.png" alt="Add to Windows Live" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19928645%2FFlash%2BXML%2Bpatch%2Bfor%2Bejabberd%2B2&amp;t=Flash+XML+patch+for+ejabberd+2.0.3" title="Aggiungi a MySpace" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/myspace.png" alt="Aggiungi a MySpace" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
<pubDate>Tue, 24 Feb 2009 12:30:41 +0100</pubDate>
<guid isPermaLink="true">http://erlangdevelopers.splinder.com/post/19928645/Flash+XML+patch+for+ejabberd+2</guid>
<source url="http://erlangdevelopers.splinder.com/post/19928645/Flash+XML+patch+for+ejabberd+2">Flash XML patch for ejabberd 2.0.3</source>
<comments>http://erlangdevelopers.splinder.com/post/19928645/Flash+XML+patch+for+ejabberd+2#comment</comments>
<category domain="http://erlangdevelopers.splinder.com/tag/flash">flash</category>
<category domain="http://erlangdevelopers.splinder.com/tag/patch">patch</category>
<category domain="http://erlangdevelopers.splinder.com/tag/ejabberd">ejabberd</category>
<category domain="http://erlangdevelopers.splinder.com/tag/xml_socket">xml_socket</category>
<duser:profile>http://www.splinder.com/profile/stefko</duser:profile>
<duser:nickname>stefko</duser:nickname>
<dc:creator>stefko</dc:creator>
<dc:publisher>Erlang Developers Home</dc:publisher>
</item>
<item>
 <title>ERLANG OTP/R12B and EJABBERD Memory Leak(s)</title>
 <link>http://erlangdevelopers.splinder.com/post/19785752/ERLANG+OTPR12B+and+EJABBERD+Me</link>
 <description>&lt;p&gt;A little bit of Zeak (JsJaC) posted this note about ejabberd memory leak and a possible bug fix in Erlang OTP/R12B:&lt;br /&gt;
&lt;a href="http://blog.jwchat.org/2009/01/14/ejabberd-memory-leak/" target="_blank"&gt;http://blog.jwchat.org/2009/01/14/ejabberd-memory-leak/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The problem regards how R12 does garbage collecting as we read here:&lt;br /&gt;
&lt;a href="http://erlang.org/pipermail/erlang-questions/2008-July/036559.html" target="_blank"&gt;http://erlang.org/pipermail/erlang-questions/2008-July/036559.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Well, I'm managing a large cluster of ejabberd servers installation for server-side development and I experienced a similar (very) fastidious memory leak, due to a large amount of HTTP-POLL client connections (JSJaC library), These TCP connections seems to not be closed on the server side modules (ERLANG modules), causing memory crunching (over one gig) and finally the OOM kills the BEAM process.&lt;br /&gt;
As we read in the R12B release notes there was this fix too:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;OTP-7615&amp;nbsp; Fixed memory leak of unclosed TCP-ports. A gen_tcp:send()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; followed by a failing gen_tcp:recv() could in some cases&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cause the port to linger after being closed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A hard solution (&lt;a href="http://www.splinder.com/profile/stefko" target="_blank"&gt;stefko&lt;/a&gt;) was to cron the Ejabberd restart every hour, in order to avoid the OOM to kill it and go out of service.&lt;br /&gt;
I updated all cluster's nodes to ERLANG OTP/R12B, and I'm monitoring the cluster memory to check the fix gone.&lt;br /&gt;
Currently I'm running ejabberd 1.1.3 and the ajax client uses JSJaC 1.3.2.&lt;br /&gt;
&lt;br /&gt;
LP&lt;br /&gt;
&lt;br /&gt;
The Erlang OTP/R12B release notes: &lt;a href="http://erlang.org/download/otp_src_R12B-5.readme" target="_blank"&gt;http://erlang.org/download/otp_src_R12B-5.readme&lt;/a&gt;&lt;br /&gt;
The Ejabberd HTTP-POLL: &lt;a href="http://www.ejabberd.im/node/94" target="_blank"&gt;http://www.ejabberd.im/node/94&lt;/a&gt;&lt;br /&gt;
JSJaC XMPP Client LIB: &lt;a href="http://blog.jwchat.org/jsjac/" target="_blank"&gt;http://blog.jwchat.org/jsjac/&lt;/a&gt;&lt;/p&gt;Pubblicato da &lt;a href="http://www.splinder.com/profile/loretoparisi" &gt;loretoparisi&lt;/a&gt; | &lt;a href="http://erlangdevelopers.splinder.com/post/19785752/ERLANG+OTPR12B+and+EJABBERD+Me#comment" &gt;Commenti&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.splinder.com/blogthis?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe" title="Cita il post nel tuo blog" rel="nofollow" class="image" &gt;&lt;img src="http://www.splinder.com/modules/service_links/blogthis.png" alt="Cita il post nel tuo blog" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.splinder.com/community/contacts/invite?nid=19785752" title="Segnala il post" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/emailthis.png" alt="Segnala il post" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://del.icio.us/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe&amp;title=ERLANG+OTP%2FR12B+and+EJABBERD+Memory+Leak%28s%29" title="Aggiungi su del.icio.us" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/delicious.png" alt="Aggiungi su del.icio.us" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe&amp;title=ERLANG+OTP%2FR12B+and+EJABBERD+Memory+Leak%28s%29" title="Aggiungi su digg.com" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/digg.png" alt="Aggiungi su digg.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe&amp;title=ERLANG+OTP%2FR12B+and+EJABBERD+Memory+Leak%28s%29" title="Aggiungi su Google" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/google.png" alt="Aggiungi su Google" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe&amp;t=ERLANG+OTP%2FR12B+and+EJABBERD+Memory+Leak%28s%29" title="Aggiungi su Yahoo" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/yahoo.png" alt="Aggiungi su Yahoo" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://technorati.com/faves?add=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe" title="Aggiungi su Technorati" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/technorati.png" alt="Aggiungi su Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.badzu.net/submit?action=it&amp;link=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe&amp;title=ERLANG+OTP%2FR12B+and+EJABBERD+Memory+Leak%28s%29" title="Aggiungi su Badzu" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/badzu.png" alt="Aggiungi su Badzu" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe" title="Aggiungi su Facebook" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/facebook.png" alt="Aggiungi su Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://oknotizie.alice.it/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe&amp;title=ERLANG+OTP%2FR12B+and+EJABBERD+Memory+Leak%28s%29" title="Aggiungi su OKNOtizie" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/oknotizie.png" alt="Aggiungi su OKNOtizie" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe" title="Aggiungi a Twitter" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/twitter.png" alt="Aggiungi a Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe&amp;top=1" title="Add to Windows Live" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/windowslive.png" alt="Add to Windows Live" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F19785752%2FERLANG%2BOTPR12B%2Band%2BEJABBERD%2BMe&amp;t=ERLANG+OTP%2FR12B+and+EJABBERD+Memory+Leak%28s%29" title="Aggiungi a MySpace" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/myspace.png" alt="Aggiungi a MySpace" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
<pubDate>Sat, 07 Feb 2009 15:48:16 +0100</pubDate>
<guid isPermaLink="true">http://erlangdevelopers.splinder.com/post/19785752/ERLANG+OTPR12B+and+EJABBERD+Me</guid>
<source url="http://erlangdevelopers.splinder.com/post/19785752/ERLANG+OTPR12B+and+EJABBERD+Me">ERLANG OTP/R12B and EJABBERD Memory Leak(s)</source>
<comments>http://erlangdevelopers.splinder.com/post/19785752/ERLANG+OTPR12B+and+EJABBERD+Me#comment</comments>
<duser:profile>http://www.splinder.com/profile/loretoparisi</duser:profile>
<duser:nickname>loretoparisi</duser:nickname>
<dc:creator>loretoparisi</dc:creator>
<dc:publisher>Erlang Developers Home</dc:publisher>
</item>
<item>
 <title>Programming Erlang, Software for A Concurrent World</title>
 <link>http://erlangdevelopers.splinder.com/post/17296208/Programming+Erlang%2C+Software+f</link>
 <description>&lt;p&gt;A copy of &amp;quot;Programming Erlang, Software for A Concurrent World&amp;quot; by Mr. Joe Armstrong just landed in my lucky hands! I can't wait to read&amp;nbsp; and learn from Erlangs'creator :)&lt;br /&gt;
&lt;br /&gt;
I'm writing the introduction:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The World is parallel.&lt;br /&gt;
If we want to write programs that behave as other objects behave in&lt;br /&gt;
the real world, then these programs will have a concurrent structure.&lt;br /&gt;
&lt;br /&gt;
Use a language that was designed for writing concurrent applications,&lt;br /&gt;
and development becomes&amp;nbsp; lot easier.&lt;br /&gt;
&lt;br /&gt;
Erlang programs model how we think and interact&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Joe Armstrong&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Programming Erlang, Software for a Concurrent World, Joe Armstrong, Pragmatic Bookshelf, @2007 armstrononsoftware)&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.pragprog.com/titles/jaerlang/programming-erlang" target="_blank"&gt;Programming Erlang, Software for a Concurrent World, The Pragmatic Bookshelf.&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://armstrongonsoftware.blogspot.com/" target="_blank"&gt;Armstrononsoftware, Blogger&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;Pubblicato da &lt;a href="http://www.splinder.com/profile/loretoparisi" &gt;loretoparisi&lt;/a&gt; | &lt;a href="http://erlangdevelopers.splinder.com/post/17296208/Programming+Erlang%2C+Software+f#comment" &gt;Commenti (2)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;Tag: &lt;a href="http://erlangdevelopers.splinder.com/tag/programming+erlang" &gt;programming erlang&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/joe+armstrong" &gt;joe armstrong&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.splinder.com/blogthis?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf" title="Cita il post nel tuo blog" rel="nofollow" class="image" &gt;&lt;img src="http://www.splinder.com/modules/service_links/blogthis.png" alt="Cita il post nel tuo blog" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.splinder.com/community/contacts/invite?nid=17296208" title="Segnala il post" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/emailthis.png" alt="Segnala il post" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://del.icio.us/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf&amp;title=Programming+Erlang%2C+Software+for+A+Concurrent+World" title="Aggiungi su del.icio.us" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/delicious.png" alt="Aggiungi su del.icio.us" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf&amp;title=Programming+Erlang%2C+Software+for+A+Concurrent+World" title="Aggiungi su digg.com" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/digg.png" alt="Aggiungi su digg.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf&amp;title=Programming+Erlang%2C+Software+for+A+Concurrent+World" title="Aggiungi su Google" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/google.png" alt="Aggiungi su Google" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf&amp;t=Programming+Erlang%2C+Software+for+A+Concurrent+World" title="Aggiungi su Yahoo" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/yahoo.png" alt="Aggiungi su Yahoo" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://technorati.com/faves?add=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf" title="Aggiungi su Technorati" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/technorati.png" alt="Aggiungi su Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.badzu.net/submit?action=it&amp;link=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf&amp;title=Programming+Erlang%2C+Software+for+A+Concurrent+World" title="Aggiungi su Badzu" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/badzu.png" alt="Aggiungi su Badzu" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf" title="Aggiungi su Facebook" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/facebook.png" alt="Aggiungi su Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://oknotizie.alice.it/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf&amp;title=Programming+Erlang%2C+Software+for+A+Concurrent+World" title="Aggiungi su OKNOtizie" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/oknotizie.png" alt="Aggiungi su OKNOtizie" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf" title="Aggiungi a Twitter" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/twitter.png" alt="Aggiungi a Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf&amp;top=1" title="Add to Windows Live" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/windowslive.png" alt="Add to Windows Live" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F17296208%2FProgramming%2BErlang%252C%2BSoftware%2Bf&amp;t=Programming+Erlang%2C+Software+for+A+Concurrent+World" title="Aggiungi a MySpace" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/myspace.png" alt="Aggiungi a MySpace" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
<pubDate>Fri, 30 May 2008 11:28:29 +0200</pubDate>
<guid isPermaLink="true">http://erlangdevelopers.splinder.com/post/17296208/Programming+Erlang%2C+Software+f</guid>
<source url="http://erlangdevelopers.splinder.com/post/17296208/Programming+Erlang%2C+Software+f">Programming Erlang, Software for A Concurrent World</source>
<comments>http://erlangdevelopers.splinder.com/post/17296208/Programming+Erlang%2C+Software+f#comment</comments>
<category domain="http://erlangdevelopers.splinder.com/tag/programming_erlang">programming_erlang</category>
<category domain="http://erlangdevelopers.splinder.com/tag/joe_armstrong">joe_armstrong</category>
<duser:profile>http://www.splinder.com/profile/loretoparisi</duser:profile>
<duser:nickname>loretoparisi</duser:nickname>
<dc:creator>loretoparisi</dc:creator>
<dc:publisher>Erlang Developers Home</dc:publisher>
</item>
<item>
 <title>Lists arithmetic</title>
 <link>http://erlangdevelopers.splinder.com/post/16848645/Lists+arithmetic</link>
 <description>&lt;p&gt;In Erlang we can use many method to access to lists and tuples, and some of them are very quick and easy.&lt;br /&gt;
With ++ and -- operators you can add and subtract lists, like in the following example:&lt;br /&gt;
&lt;br /&gt;
Thelist=[1,2,3,4,5,6,7,8,9,10],&lt;br /&gt;
Even = lists:filter(fun(E) -&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;  E rem 2 == 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; end,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thelist),&lt;br /&gt;
Odd=Thelist -- Even,&lt;br /&gt;
Newlist = Odd ++ [ one, five ].&lt;br /&gt;
&lt;br /&gt;
So Odd list will contains [1,3,5,7,9], Even list will contains [2,4,6,8,10] and Newlist will contain [1,3,5,7,9,one,five].&lt;/p&gt;Pubblicato da &lt;a href="http://www.splinder.com/profile/stefko" &gt;stefko&lt;/a&gt; | &lt;a href="http://erlangdevelopers.splinder.com/post/16848645/Lists+arithmetic#comment" &gt;Commenti&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;Tag: &lt;a href="http://erlangdevelopers.splinder.com/tag/list" &gt;list&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/erlang" &gt;erlang&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/arithmetic" &gt;arithmetic&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.splinder.com/blogthis?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic" title="Cita il post nel tuo blog" rel="nofollow" class="image" &gt;&lt;img src="http://www.splinder.com/modules/service_links/blogthis.png" alt="Cita il post nel tuo blog" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.splinder.com/community/contacts/invite?nid=16848645" title="Segnala il post" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/emailthis.png" alt="Segnala il post" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://del.icio.us/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic&amp;title=Lists+arithmetic" title="Aggiungi su del.icio.us" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/delicious.png" alt="Aggiungi su del.icio.us" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic&amp;title=Lists+arithmetic" title="Aggiungi su digg.com" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/digg.png" alt="Aggiungi su digg.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic&amp;title=Lists+arithmetic" title="Aggiungi su Google" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/google.png" alt="Aggiungi su Google" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic&amp;t=Lists+arithmetic" title="Aggiungi su Yahoo" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/yahoo.png" alt="Aggiungi su Yahoo" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://technorati.com/faves?add=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic" title="Aggiungi su Technorati" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/technorati.png" alt="Aggiungi su Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.badzu.net/submit?action=it&amp;link=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic&amp;title=Lists+arithmetic" title="Aggiungi su Badzu" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/badzu.png" alt="Aggiungi su Badzu" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic" title="Aggiungi su Facebook" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/facebook.png" alt="Aggiungi su Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://oknotizie.alice.it/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic&amp;title=Lists+arithmetic" title="Aggiungi su OKNOtizie" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/oknotizie.png" alt="Aggiungi su OKNOtizie" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic" title="Aggiungi a Twitter" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/twitter.png" alt="Aggiungi a Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic&amp;top=1" title="Add to Windows Live" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/windowslive.png" alt="Add to Windows Live" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16848645%2FLists%2Barithmetic&amp;t=Lists+arithmetic" title="Aggiungi a MySpace" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/myspace.png" alt="Aggiungi a MySpace" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
<pubDate>Wed, 23 Apr 2008 10:20:03 +0200</pubDate>
<guid isPermaLink="true">http://erlangdevelopers.splinder.com/post/16848645/Lists+arithmetic</guid>
<source url="http://erlangdevelopers.splinder.com/post/16848645/Lists+arithmetic">Lists arithmetic</source>
<comments>http://erlangdevelopers.splinder.com/post/16848645/Lists+arithmetic#comment</comments>
<category domain="http://erlangdevelopers.splinder.com/tag/list">list</category>
<category domain="http://erlangdevelopers.splinder.com/tag/erlang">erlang</category>
<category domain="http://erlangdevelopers.splinder.com/tag/arithmetic">arithmetic</category>
<duser:profile>http://www.splinder.com/profile/stefko</duser:profile>
<duser:nickname>stefko</duser:nickname>
<dc:creator>stefko</dc:creator>
<dc:publisher>Erlang Developers Home</dc:publisher>
</item>
<item>
 <title>XML socket in Flash with Ejebberd 2.0.0</title>
 <link>http://erlangdevelopers.splinder.com/post/16639798/XML+socket+in+Flash+with+Ejebb</link>
 <description>&lt;p&gt;I've recently been involved in the problem of Flash (7.0 and following) XML socket. &lt;br /&gt;
Flash uses a &amp;quot;strange&amp;quot; kind of packet transfer in XML socket so Ejabberd 2.0.0 is not compatible with some Flash version.&lt;br /&gt;
I've seen a patch for Ejabberd 1.1.X versions and I've adapted it to fit with ejabberd 2.0.0.&lt;br /&gt;
Please note that this patch changes configure.ac file, but you must DO NOT run aclocal command.&lt;br /&gt;
At the moment aclocal.m4 file contains some macro that aclocal command will overwrite!&lt;br /&gt;
So please follow these steps to apply this patch to Ejabberd 2.0.0:&lt;br /&gt;
&lt;br /&gt;
patch -p0 &amp;lt;flash-xml-ejabberd-2.0.0.diff&lt;br /&gt;
rm configure&lt;br /&gt;
autoconf&lt;br /&gt;
./configure --enable-flash-hack&lt;br /&gt;
make&lt;br /&gt;
&lt;br /&gt;
And you'll be able to use XMPP like this:&lt;br /&gt;
&amp;lt;?xml version='1.0'?&amp;gt;  &amp;lt;flash:stream to='example.net' xmlns='jabber:client'     xmlns:flash='http://www.jabber.com/streams/flash' version='1.0'&amp;gt;&amp;lt;/flash:stream&amp;gt;&lt;br /&gt;
&lt;a href="http://www.webalice.it/loretoparisi/ejabberd/flash-xml-ejabberd-2.0.0.patch" target="_blank"&gt;The patch is available here.&lt;/a&gt;&lt;/p&gt;Pubblicato da &lt;a href="http://www.splinder.com/profile/stefko" &gt;stefko&lt;/a&gt; | &lt;a href="http://erlangdevelopers.splinder.com/post/16639798/XML+socket+in+Flash+with+Ejebb#comment" &gt;Commenti (1)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;Tag: &lt;a href="http://erlangdevelopers.splinder.com/tag/flash" &gt;flash&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/patch" &gt;patch&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/ejabberd" &gt;ejabberd&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/xml+socket" &gt;xml socket&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.splinder.com/blogthis?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb" title="Cita il post nel tuo blog" rel="nofollow" class="image" &gt;&lt;img src="http://www.splinder.com/modules/service_links/blogthis.png" alt="Cita il post nel tuo blog" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.splinder.com/community/contacts/invite?nid=16639798" title="Segnala il post" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/emailthis.png" alt="Segnala il post" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://del.icio.us/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb&amp;title=XML+socket+in+Flash+with+Ejebberd+2.0.0" title="Aggiungi su del.icio.us" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/delicious.png" alt="Aggiungi su del.icio.us" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb&amp;title=XML+socket+in+Flash+with+Ejebberd+2.0.0" title="Aggiungi su digg.com" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/digg.png" alt="Aggiungi su digg.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb&amp;title=XML+socket+in+Flash+with+Ejebberd+2.0.0" title="Aggiungi su Google" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/google.png" alt="Aggiungi su Google" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb&amp;t=XML+socket+in+Flash+with+Ejebberd+2.0.0" title="Aggiungi su Yahoo" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/yahoo.png" alt="Aggiungi su Yahoo" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://technorati.com/faves?add=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb" title="Aggiungi su Technorati" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/technorati.png" alt="Aggiungi su Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.badzu.net/submit?action=it&amp;link=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb&amp;title=XML+socket+in+Flash+with+Ejebberd+2.0.0" title="Aggiungi su Badzu" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/badzu.png" alt="Aggiungi su Badzu" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb" title="Aggiungi su Facebook" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/facebook.png" alt="Aggiungi su Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://oknotizie.alice.it/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb&amp;title=XML+socket+in+Flash+with+Ejebberd+2.0.0" title="Aggiungi su OKNOtizie" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/oknotizie.png" alt="Aggiungi su OKNOtizie" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb" title="Aggiungi a Twitter" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/twitter.png" alt="Aggiungi a Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb&amp;top=1" title="Add to Windows Live" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/windowslive.png" alt="Add to Windows Live" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16639798%2FXML%2Bsocket%2Bin%2BFlash%2Bwith%2BEjebb&amp;t=XML+socket+in+Flash+with+Ejebberd+2.0.0" title="Aggiungi a MySpace" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/myspace.png" alt="Aggiungi a MySpace" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
<pubDate>Mon, 07 Apr 2008 13:03:02 +0200</pubDate>
<guid isPermaLink="true">http://erlangdevelopers.splinder.com/post/16639798/XML+socket+in+Flash+with+Ejebb</guid>
<source url="http://erlangdevelopers.splinder.com/post/16639798/XML+socket+in+Flash+with+Ejebb">XML socket in Flash with Ejebberd 2.0.0</source>
<comments>http://erlangdevelopers.splinder.com/post/16639798/XML+socket+in+Flash+with+Ejebb#comment</comments>
<category domain="http://erlangdevelopers.splinder.com/tag/flash">flash</category>
<category domain="http://erlangdevelopers.splinder.com/tag/patch">patch</category>
<category domain="http://erlangdevelopers.splinder.com/tag/ejabberd">ejabberd</category>
<category domain="http://erlangdevelopers.splinder.com/tag/xml_socket">xml_socket</category>
<duser:profile>http://www.splinder.com/profile/stefko</duser:profile>
<duser:nickname>stefko</duser:nickname>
<dc:creator>stefko</dc:creator>
<dc:publisher>Erlang Developers Home</dc:publisher>
</item>
<item>
 <title>Ejabberd 2.0 Cookie Patch</title>
 <link>http://erlangdevelopers.splinder.com/post/16638983/Ejabberd+2.0+Cookie+Patch</link>
 <description>&lt;p&gt;As promised I'm releasing the cookie patch for ejabberd 2.0. The patch is quite simple and takes few minutes to check it out.&lt;br /&gt;
To apply the patch cumulatively, simply do the following&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ejabberd/src/web/ $ patch &amp;lt; $HOME/ejabberd-2.0-cookie.patch&lt;br /&gt;
&lt;br /&gt;
Otherwise you could apply the patch to single files:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ejabberd/src/web/ $ patch ejabberd_http.hrl $HOME/ejabberd_http_hrl.patch&lt;br /&gt;
ejabberd/src/web/ $ patch ejabberd_http.erl $HOME/ejabberd_http_erl.patch &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let me know if you got errors applying this patch.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
&lt;a target="_blank" href="http://www.webalice.it/loretoparisi/ejabberd/ejabberd-2.0-cookie.patch"&gt;ejabberd 2.0 Cumulative Cookie Patch&lt;/a&gt;&lt;br /&gt;
&lt;a target="_blank" href="http://www.webalice.it/loretoparisi/ejabberd/ejabberd_http_erl.patch"&gt;ejabberd_http Source Cookie Patch&lt;/a&gt;&lt;br /&gt;
&lt;a target="_blank" href="http://www.webalice.it/loretoparisi/ejabberd/ejabberd_http_hrl.patch"&gt;ejabberd_http Header Cookie Patch&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;Pubblicato da &lt;a href="http://www.splinder.com/profile/loretoparisi" &gt;loretoparisi&lt;/a&gt; | &lt;a href="http://erlangdevelopers.splinder.com/post/16638983/Ejabberd+2.0+Cookie+Patch#comment" &gt;Commenti&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;Tag: &lt;a href="http://erlangdevelopers.splinder.com/tag/cookie" &gt;cookie&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/patch" &gt;patch&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/ejabberd" &gt;ejabberd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.splinder.com/blogthis?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch" title="Cita il post nel tuo blog" rel="nofollow" class="image" &gt;&lt;img src="http://www.splinder.com/modules/service_links/blogthis.png" alt="Cita il post nel tuo blog" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.splinder.com/community/contacts/invite?nid=16638983" title="Segnala il post" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/emailthis.png" alt="Segnala il post" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://del.icio.us/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch&amp;title=Ejabberd+2.0+Cookie+Patch" title="Aggiungi su del.icio.us" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/delicious.png" alt="Aggiungi su del.icio.us" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch&amp;title=Ejabberd+2.0+Cookie+Patch" title="Aggiungi su digg.com" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/digg.png" alt="Aggiungi su digg.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch&amp;title=Ejabberd+2.0+Cookie+Patch" title="Aggiungi su Google" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/google.png" alt="Aggiungi su Google" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch&amp;t=Ejabberd+2.0+Cookie+Patch" title="Aggiungi su Yahoo" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/yahoo.png" alt="Aggiungi su Yahoo" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://technorati.com/faves?add=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch" title="Aggiungi su Technorati" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/technorati.png" alt="Aggiungi su Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.badzu.net/submit?action=it&amp;link=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch&amp;title=Ejabberd+2.0+Cookie+Patch" title="Aggiungi su Badzu" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/badzu.png" alt="Aggiungi su Badzu" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch" title="Aggiungi su Facebook" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/facebook.png" alt="Aggiungi su Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://oknotizie.alice.it/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch&amp;title=Ejabberd+2.0+Cookie+Patch" title="Aggiungi su OKNOtizie" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/oknotizie.png" alt="Aggiungi su OKNOtizie" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch" title="Aggiungi a Twitter" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/twitter.png" alt="Aggiungi a Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch&amp;top=1" title="Add to Windows Live" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/windowslive.png" alt="Add to Windows Live" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16638983%2FEjabberd%2B2.0%2BCookie%2BPatch&amp;t=Ejabberd+2.0+Cookie+Patch" title="Aggiungi a MySpace" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/myspace.png" alt="Aggiungi a MySpace" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
<pubDate>Mon, 07 Apr 2008 11:37:55 +0200</pubDate>
<guid isPermaLink="true">http://erlangdevelopers.splinder.com/post/16638983/Ejabberd+2.0+Cookie+Patch</guid>
<source url="http://erlangdevelopers.splinder.com/post/16638983/Ejabberd+2.0+Cookie+Patch">Ejabberd 2.0 Cookie Patch</source>
<comments>http://erlangdevelopers.splinder.com/post/16638983/Ejabberd+2.0+Cookie+Patch#comment</comments>
<category domain="http://erlangdevelopers.splinder.com/tag/cookie">cookie</category>
<category domain="http://erlangdevelopers.splinder.com/tag/patch">patch</category>
<category domain="http://erlangdevelopers.splinder.com/tag/ejabberd">ejabberd</category>
<duser:profile>http://www.splinder.com/profile/loretoparisi</duser:profile>
<duser:nickname>loretoparisi</duser:nickname>
<dc:creator>loretoparisi</dc:creator>
<dc:publisher>Erlang Developers Home</dc:publisher>
</item>
<item>
 <title>Add cookie support in ejabberd</title>
 <link>http://erlangdevelopers.splinder.com/post/16609181/Add+cookie+support+in+ejabberd</link>
 <description>&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;br /&gt;
&lt;br /&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;br /&gt;
-record(request, {method,&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; path,&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; q = [],&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; 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; auth,&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; lang = &amp;quot;&amp;quot;,&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; data = &amp;quot;&amp;quot;,&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; cookie = &amp;quot;&amp;quot;, %% lp: 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; 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; }).&lt;br /&gt;
&lt;br /&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;br /&gt;
&lt;br /&gt;
Now we will edit the ejabberd_http.erl module, adding the field request_cookie to the record state:&lt;br /&gt;
&lt;br /&gt;
-record(state, {sockmod,&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; socket,&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; request_method,&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; request_version,&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; request_path,&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; request_auth,&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; request_cookie, %% lp: 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; request_keepalive,&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; (...)&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
At this point, we have to pass cookies to handlers, modifying the process_headers and process_request functions:&lt;br /&gt;
&lt;br /&gt;
In the process_header, we will add to the case construct&lt;br /&gt;
&lt;br /&gt;
process_header(State, Data) -&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SockMod = State#state.sockmod,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Socket = State#state.socket,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; case Data of&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {ok, {http_request, Method, Uri, Version}} -&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (...)&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {ok, {http_header, _, 'Authorization', _, Auth}} -&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; State#state{request_auth = parse_auth(Auth)};&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {ok, {http_header, _, 'Cookie', _, Cookie}} -&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; %% lp: 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; State#state{request_cookie = Cookie};&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {ok, {http_header, _, 'Content-Length', _, SLen}} -&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (...)&lt;br /&gt;
&lt;br /&gt;
In the process_request we have to modify the function header as follows:&lt;br /&gt;
&lt;br /&gt;
process_request(#state{request_method = 'GET',&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; request_path = {abs_path, Path},&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; request_auth = Auth,&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; request_lang = Lang,&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; request_cookie = Cookie, %% lp: 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; request_handlers = RequestHandlers,&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; sockmod = SockMod,&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; socket = Socket} = State) -&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; (...)&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 = #request{method = 'GET',&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; path = LPath,&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; q = LQuery,&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; auth = Auth,&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; lang = Lang,&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; cookie = Cookie, %% lp: here again :)&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; ip=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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (...)&lt;br /&gt;
&lt;br /&gt;
and in the next header too:&lt;br /&gt;
&lt;br /&gt;
process_request(#state{request_method = 'POST',&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; request_path = {abs_path, Path},&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; request_auth = Auth,&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; request_content_length = Len,&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; request_lang = Lang,&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; request_cookie = Cookie, %% lp: 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; sockmod = SockMod,&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; socket = Socket,&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; request_handlers = RequestHandlers} = State)&lt;br /&gt;
&amp;nbsp; when is_integer(Len) -&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; (...)&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; Request = #request{method = 'POST',&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; path = LPath,&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; q = LQuery,&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; auth = Auth,&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; cookie = Cookie, %% lp: cookie the last one ;)&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; data = 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lang = Lang},&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; case process(RequestHandlers, Request) 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; (...)&lt;br /&gt;
&lt;br /&gt;
Now, we are ready to add the cookie request's field to our modules processing http requests:&lt;br /&gt;
&lt;br /&gt;
process(#request{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; path = &amp;quot;login&amp;quot;,&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; q = _Query,&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; lang = _Lang,&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; cookie = _Cookie} = Request) -&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; %% _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; %% 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; %% Send response :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I will eventually post a addon patch for this :)&lt;br /&gt;
&lt;br /&gt;
Enjoy your Jabber,&lt;br /&gt;
LP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PS. We used ejabberd 2.0, but you can do this in ejabberd 1.1.x in the same way&lt;br /&gt;
&lt;br /&gt;
 Links:&lt;br /&gt;
&lt;a href="http://www.process-one.net/en/wiki/ejabberd_module_development/" target="_blank"&gt;http://www.process-one.net/en/wiki/ejabberd_module_development/&lt;/a&gt;&lt;/p&gt;Pubblicato da &lt;a href="http://www.splinder.com/profile/loretoparisi" &gt;loretoparisi&lt;/a&gt; | &lt;a href="http://erlangdevelopers.splinder.com/post/16609181/Add+cookie+support+in+ejabberd#comment" &gt;Commenti&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;Tag: &lt;a href="http://erlangdevelopers.splinder.com/tag/cookie" &gt;cookie&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/request+headers" &gt;request headers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.splinder.com/blogthis?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd" title="Cita il post nel tuo blog" rel="nofollow" class="image" &gt;&lt;img src="http://www.splinder.com/modules/service_links/blogthis.png" alt="Cita il post nel tuo blog" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.splinder.com/community/contacts/invite?nid=16609181" title="Segnala il post" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/emailthis.png" alt="Segnala il post" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://del.icio.us/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd&amp;title=Add+cookie+support+in+ejabberd" title="Aggiungi su del.icio.us" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/delicious.png" alt="Aggiungi su del.icio.us" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd&amp;title=Add+cookie+support+in+ejabberd" title="Aggiungi su digg.com" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/digg.png" alt="Aggiungi su digg.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd&amp;title=Add+cookie+support+in+ejabberd" title="Aggiungi su Google" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/google.png" alt="Aggiungi su Google" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd&amp;t=Add+cookie+support+in+ejabberd" title="Aggiungi su Yahoo" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/yahoo.png" alt="Aggiungi su Yahoo" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://technorati.com/faves?add=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd" title="Aggiungi su Technorati" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/technorati.png" alt="Aggiungi su Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.badzu.net/submit?action=it&amp;link=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd&amp;title=Add+cookie+support+in+ejabberd" title="Aggiungi su Badzu" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/badzu.png" alt="Aggiungi su Badzu" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd" title="Aggiungi su Facebook" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/facebook.png" alt="Aggiungi su Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://oknotizie.alice.it/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd&amp;title=Add+cookie+support+in+ejabberd" title="Aggiungi su OKNOtizie" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/oknotizie.png" alt="Aggiungi su OKNOtizie" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd" title="Aggiungi a Twitter" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/twitter.png" alt="Aggiungi a Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd&amp;top=1" title="Add to Windows Live" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/windowslive.png" alt="Add to Windows Live" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16609181%2FAdd%2Bcookie%2Bsupport%2Bin%2Bejabberd&amp;t=Add+cookie+support+in+ejabberd" title="Aggiungi a MySpace" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/myspace.png" alt="Aggiungi a MySpace" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
<pubDate>Fri, 04 Apr 2008 18:05:40 +0200</pubDate>
<guid isPermaLink="true">http://erlangdevelopers.splinder.com/post/16609181/Add+cookie+support+in+ejabberd</guid>
<source url="http://erlangdevelopers.splinder.com/post/16609181/Add+cookie+support+in+ejabberd">Add cookie support in ejabberd</source>
<comments>http://erlangdevelopers.splinder.com/post/16609181/Add+cookie+support+in+ejabberd#comment</comments>
<category domain="http://erlangdevelopers.splinder.com/tag/cookie">cookie</category>
<category domain="http://erlangdevelopers.splinder.com/tag/request_headers">request_headers</category>
<duser:profile>http://www.splinder.com/profile/loretoparisi</duser:profile>
<duser:nickname>loretoparisi</duser:nickname>
<dc:creator>loretoparisi</dc:creator>
<dc:publisher>Erlang Developers Home</dc:publisher>
</item>
<item>
 <title>Logging in ejabberd 1.1.2</title>
 <link>http://erlangdevelopers.splinder.com/post/16564086/Logging+in+ejabberd+1.1.2</link>
 <description>&lt;p&gt;In the previous post &lt;a href="http://www.splinder.com/profile/stefko" target="_blank"&gt;stefko&lt;/a&gt; told us about the new logging facility in ejabberd 2.0. But how can we apply logging verbosity levels in previous releases of ejabberd, such as ejabberd 1.1.2 ?&lt;br /&gt;
Well,&lt;br /&gt;
I modififed the ejabberd.hrl in this way:&lt;br /&gt;
&lt;br /&gt;
%%&lt;br /&gt;
%%&amp;nbsp;&amp;nbsp;&amp;nbsp; --- 2007-05-10 - LP: LOGGER ---&lt;br /&gt;
%% &amp;nbsp;&amp;nbsp;&amp;nbsp; Verbosity levels:&lt;br /&gt;
%%&lt;br /&gt;
%% &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Level 0 - No verbosity&lt;br /&gt;
%%&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Level 1 - Error&lt;br /&gt;
%% &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Level 2 - Warning&lt;br /&gt;
%% &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Level 3 - Info&lt;br /&gt;
%% &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Level 4 - Debug&lt;br /&gt;
%%&lt;br /&gt;
&lt;br /&gt;
%% LP: Logger environment verbosity level variable&lt;br /&gt;
-define(LOGGER_ENV_LEVEL, &amp;quot;EJABBERD_LOGGER_LEVEL&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
%% LP: Default Logger Level to 3 - Info level&lt;br /&gt;
-define(LOGGER_DEFAULTLEVEL, 3).%% LP: Get verbosity level&lt;br /&gt;
&lt;br /&gt;
-define(LOGGER_SETLEVEL(Level),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; case string:to_integer(os:getenv(?LOGGER_ENV_LEVEL)) of&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {_,[]} -&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; case ({Level,[]} =&amp;lt; string:to_integer(os:getenv(?LOGGER_ENV_LEVEL))) 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; true -&amp;gt; Level;&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; false -&amp;gt; string:to_integer(os:getenv(?LOGGER_ENV_LEVEL))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _ -&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; ?LOGGER_DEFAULTLEVEL&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end).&lt;br /&gt;
&lt;br /&gt;
%% LP: Log messages&lt;br /&gt;
-define(LOGGER_LOG(Format, Args, Level),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; %% switch verbosity against level&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; case Level of&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0 -&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; %% NO VERBOSITY&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; ok;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 1 -&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; %% ERROR LEVEL&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; error_logger:error_msg(&amp;quot;ERROR(~p:~p:~p): &amp;quot;++Format++&amp;quot;~n&amp;quot;,&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; [self(),?MODULE,?LINE]++Args);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 2 -&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; %% WARNING LEVEL&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; error_logger:warning_msg(&amp;quot;WARN(~p:~p:~p): &amp;quot;++Format++&amp;quot;~n&amp;quot;,&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; [self(),?MODULE,?LINE]++Args);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 3 -&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; %% INFO_MSG LEVEL&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; error_logger:info_msg(&amp;quot;INFO(~p:~p:~p): &amp;quot;++Format++&amp;quot;~n&amp;quot;,&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; [self(),?MODULE,?LINE]++Args);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 4 -&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; %% DEBUG LEVEL - no custom file logger&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; error_logger:info_msg(&amp;quot;DEBUG(~p:~p:~p) : &amp;quot;++Format++&amp;quot;~n&amp;quot;,&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; [self(),?MODULE,?LINE]++Args);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; _ -&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; %% UNDEFINED LEVEL&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; ok&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; end).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then redifining the ?DEBUG, ?INFO_MSG, ?WARNING_MSG and ?ERROR_MSG with the new ?LOGGER_LOG define and adjusting the logger level with ?LOGGER_SETLEVEL(Value), whereas Value goes from 0 (no messages) to 4 (debug mode) as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%% LP: Debug Message&lt;br /&gt;
-define(DEBUG(Format, Args), ?LOGGER_LOG(Format, Args, ?LOGGER_SETLEVEL(4))).&lt;br /&gt;
&lt;br /&gt;
%% LP: Info Message&lt;br /&gt;
-define(INFO_MSG(Format, Args), ?LOGGER_LOG(Format, Args, ?LOGGER_SETLEVEL(3))).&lt;br /&gt;
&lt;br /&gt;
%% LP: Warning Message&lt;br /&gt;
-define(WARNING_MSG(Format, Args), ?LOGGER_LOG(Format, Args, ?LOGGER_SETLEVEL(2))).&lt;br /&gt;
&lt;br /&gt;
%% LP: Error Message&lt;br /&gt;
-define(ERROR_MSG(Format, Args), ?LOGGER_LOG(Format, Args, ?LOGGER_SETLEVEL(1))).&lt;br /&gt;
&lt;br /&gt;
In this way it's possible to log errors, warnings, messages using the same code (no need to change other modules log instructions) by setting up the environment variable &amp;quot;EJABBERD_LOGGER_LEVEL&amp;quot;, called by os:getenv in the erl shell command:&lt;br /&gt;
&lt;br /&gt;
erl ... -env ERL_MAX_PORTS 32000 \&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -env EJABBERD_LOGGER_LEVEL 4 \&lt;br /&gt;
&lt;br /&gt;
LP&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;Pubblicato da &lt;a href="http://www.splinder.com/profile/loretoparisi" &gt;loretoparisi&lt;/a&gt; | &lt;a href="http://erlangdevelopers.splinder.com/post/16564086/Logging+in+ejabberd+1.1.2#comment" &gt;Commenti&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;Tag: &lt;a href="http://erlangdevelopers.splinder.com/tag/debug" &gt;debug&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/loglevel" &gt;loglevel&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/verbosity" &gt;verbosity&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/logger" &gt;logger&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.splinder.com/blogthis?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2" title="Cita il post nel tuo blog" rel="nofollow" class="image" &gt;&lt;img src="http://www.splinder.com/modules/service_links/blogthis.png" alt="Cita il post nel tuo blog" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.splinder.com/community/contacts/invite?nid=16564086" title="Segnala il post" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/emailthis.png" alt="Segnala il post" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://del.icio.us/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2&amp;title=Logging+in+ejabberd+1.1.2" title="Aggiungi su del.icio.us" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/delicious.png" alt="Aggiungi su del.icio.us" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2&amp;title=Logging+in+ejabberd+1.1.2" title="Aggiungi su digg.com" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/digg.png" alt="Aggiungi su digg.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2&amp;title=Logging+in+ejabberd+1.1.2" title="Aggiungi su Google" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/google.png" alt="Aggiungi su Google" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2&amp;t=Logging+in+ejabberd+1.1.2" title="Aggiungi su Yahoo" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/yahoo.png" alt="Aggiungi su Yahoo" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://technorati.com/faves?add=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2" title="Aggiungi su Technorati" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/technorati.png" alt="Aggiungi su Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.badzu.net/submit?action=it&amp;link=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2&amp;title=Logging+in+ejabberd+1.1.2" title="Aggiungi su Badzu" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/badzu.png" alt="Aggiungi su Badzu" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2" title="Aggiungi su Facebook" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/facebook.png" alt="Aggiungi su Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://oknotizie.alice.it/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2&amp;title=Logging+in+ejabberd+1.1.2" title="Aggiungi su OKNOtizie" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/oknotizie.png" alt="Aggiungi su OKNOtizie" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2" title="Aggiungi a Twitter" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/twitter.png" alt="Aggiungi a Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2&amp;top=1" title="Add to Windows Live" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/windowslive.png" alt="Add to Windows Live" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16564086%2FLogging%2Bin%2Bejabberd%2B1.1.2&amp;t=Logging+in+ejabberd+1.1.2" title="Aggiungi a MySpace" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/myspace.png" alt="Aggiungi a MySpace" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
<pubDate>Tue, 01 Apr 2008 13:04:14 +0200</pubDate>
<guid isPermaLink="true">http://erlangdevelopers.splinder.com/post/16564086/Logging+in+ejabberd+1.1.2</guid>
<source url="http://erlangdevelopers.splinder.com/post/16564086/Logging+in+ejabberd+1.1.2">Logging in ejabberd 1.1.2</source>
<comments>http://erlangdevelopers.splinder.com/post/16564086/Logging+in+ejabberd+1.1.2#comment</comments>
<category domain="http://erlangdevelopers.splinder.com/tag/debug">debug</category>
<category domain="http://erlangdevelopers.splinder.com/tag/loglevel">loglevel</category>
<category domain="http://erlangdevelopers.splinder.com/tag/verbosity">verbosity</category>
<category domain="http://erlangdevelopers.splinder.com/tag/logger">logger</category>
<duser:profile>http://www.splinder.com/profile/loretoparisi</duser:profile>
<duser:nickname>loretoparisi</duser:nickname>
<dc:creator>loretoparisi</dc:creator>
<dc:publisher>Erlang Developers Home</dc:publisher>
</item>
<item>
 <title>Dynamic verbosity level change in ejabberd 2.0.0</title>
 <link>http://erlangdevelopers.splinder.com/post/16486007/Dynamic+verbosity+level+change</link>
 <description>&lt;p&gt;There's a very useful method to dynamically change verbosity level in ejabberd 2.0.0.&lt;br /&gt;
You must connect with a remote shell to the node you're interested to debug and simply write:&lt;br /&gt;
&lt;br /&gt;
ejabberd_loglevel:set(LogLevel).&lt;br /&gt;
&lt;br /&gt;
Where LogLevel is:&lt;br /&gt;
&lt;br /&gt;
    0: No ejabberd log at all (not recommended)&lt;br /&gt;
    1: Critical&lt;br /&gt;
    2: Error&lt;br /&gt;
    3: Warning&lt;br /&gt;
    4: Info&lt;br /&gt;
    5: Debug&lt;br /&gt;
&lt;/p&gt;Pubblicato da &lt;a href="http://www.splinder.com/profile/stefko" &gt;stefko&lt;/a&gt; | &lt;a href="http://erlangdevelopers.splinder.com/post/16486007/Dynamic+verbosity+level+change#comment" &gt;Commenti&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;Tag: &lt;a href="http://erlangdevelopers.splinder.com/tag/debug" &gt;debug&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/ejabberd" &gt;ejabberd&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/concurrent+programming" &gt;concurrent programming&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/loglevel" &gt;loglevel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.splinder.com/blogthis?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange" title="Cita il post nel tuo blog" rel="nofollow" class="image" &gt;&lt;img src="http://www.splinder.com/modules/service_links/blogthis.png" alt="Cita il post nel tuo blog" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.splinder.com/community/contacts/invite?nid=16486007" title="Segnala il post" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/emailthis.png" alt="Segnala il post" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://del.icio.us/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange&amp;title=Dynamic+verbosity+level+change+in+ejabberd+2.0.0" title="Aggiungi su del.icio.us" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/delicious.png" alt="Aggiungi su del.icio.us" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange&amp;title=Dynamic+verbosity+level+change+in+ejabberd+2.0.0" title="Aggiungi su digg.com" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/digg.png" alt="Aggiungi su digg.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange&amp;title=Dynamic+verbosity+level+change+in+ejabberd+2.0.0" title="Aggiungi su Google" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/google.png" alt="Aggiungi su Google" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange&amp;t=Dynamic+verbosity+level+change+in+ejabberd+2.0.0" title="Aggiungi su Yahoo" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/yahoo.png" alt="Aggiungi su Yahoo" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://technorati.com/faves?add=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange" title="Aggiungi su Technorati" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/technorati.png" alt="Aggiungi su Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.badzu.net/submit?action=it&amp;link=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange&amp;title=Dynamic+verbosity+level+change+in+ejabberd+2.0.0" title="Aggiungi su Badzu" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/badzu.png" alt="Aggiungi su Badzu" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange" title="Aggiungi su Facebook" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/facebook.png" alt="Aggiungi su Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://oknotizie.alice.it/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange&amp;title=Dynamic+verbosity+level+change+in+ejabberd+2.0.0" title="Aggiungi su OKNOtizie" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/oknotizie.png" alt="Aggiungi su OKNOtizie" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange" title="Aggiungi a Twitter" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/twitter.png" alt="Aggiungi a Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange&amp;top=1" title="Add to Windows Live" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/windowslive.png" alt="Add to Windows Live" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16486007%2FDynamic%2Bverbosity%2Blevel%2Bchange&amp;t=Dynamic+verbosity+level+change+in+ejabberd+2.0.0" title="Aggiungi a MySpace" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/myspace.png" alt="Aggiungi a MySpace" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
<pubDate>Wed, 26 Mar 2008 11:46:15 +0100</pubDate>
<guid isPermaLink="true">http://erlangdevelopers.splinder.com/post/16486007/Dynamic+verbosity+level+change</guid>
<source url="http://erlangdevelopers.splinder.com/post/16486007/Dynamic+verbosity+level+change">Dynamic verbosity level change in ejabberd 2.0.0</source>
<comments>http://erlangdevelopers.splinder.com/post/16486007/Dynamic+verbosity+level+change#comment</comments>
<category domain="http://erlangdevelopers.splinder.com/tag/debug">debug</category>
<category domain="http://erlangdevelopers.splinder.com/tag/ejabberd">ejabberd</category>
<category domain="http://erlangdevelopers.splinder.com/tag/concurrent_programming">concurrent_programming</category>
<category domain="http://erlangdevelopers.splinder.com/tag/loglevel">loglevel</category>
<duser:profile>http://www.splinder.com/profile/stefko</duser:profile>
<duser:nickname>stefko</duser:nickname>
<dc:creator>stefko</dc:creator>
<dc:publisher>Erlang Developers Home</dc:publisher>
</item>
<item>
 <title>STDLIB: List To Record (revisited)</title>
 <link>http://erlangdevelopers.splinder.com/post/16369595/STDLIB%3A+List+To+Record+%28revisi</link>
 <description>&lt;p&gt;In a previous post,&amp;nbsp; &lt;a href="http://erlangdevelopers.splinder.com/post/16147279/STDLIB%3A+List+To+Record" target="_blank"&gt;STDLIB: List To Record&lt;/a&gt;, we looked at a way to convert a list to a record by means of matching record fields. We made use of lists:mapfoldl and setelement lists and tuples's functions. That was just an exercise to practise with lists fun.&lt;br /&gt;
Now we'll a see a better way to implement this function that make more sense, using built-in function list_to_tuple and doing exactly the same job.&lt;br /&gt;
&lt;br /&gt;
list_to_record(Query)-&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Fields=record_info(fields,qs),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; QS=#qs{},&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Record=lists:map(fun(Key) -&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; BKey=atom_to_list(Key),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Vl=case catch lists:keysearch(BKey,1,Query) 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; {value,VKey} -&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; {K,V}=VKey,&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; V;&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; false -&amp;gt;&amp;nbsp; undefined;&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; {'EXIT',Reason} -&amp;gt; undefined&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; end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end,Fields),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; list_to_tuple(lists:merge([qs],Record)).&lt;br /&gt;
&lt;br /&gt;
That's all,&lt;br /&gt;
LP&lt;/p&gt;Pubblicato da &lt;a href="http://www.splinder.com/profile/loretoparisi" &gt;loretoparisi&lt;/a&gt; | &lt;a href="http://erlangdevelopers.splinder.com/post/16369595/STDLIB%3A+List+To+Record+%28revisi#comment" &gt;Commenti&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;Tag: &lt;a href="http://erlangdevelopers.splinder.com/tag/record" &gt;record&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/list" &gt;list&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/erlang" &gt;erlang&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/stdlib" &gt;stdlib&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/mapfoldl" &gt;mapfoldl&lt;/a&gt;, &lt;a href="http://erlangdevelopers.splinder.com/tag/tuple" &gt;tuple&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.splinder.com/blogthis?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi" title="Cita il post nel tuo blog" rel="nofollow" class="image" &gt;&lt;img src="http://www.splinder.com/modules/service_links/blogthis.png" alt="Cita il post nel tuo blog" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.splinder.com/community/contacts/invite?nid=16369595" title="Segnala il post" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/emailthis.png" alt="Segnala il post" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://del.icio.us/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi&amp;title=STDLIB%3A+List+To+Record+%28revisited%29" title="Aggiungi su del.icio.us" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/delicious.png" alt="Aggiungi su del.icio.us" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi&amp;title=STDLIB%3A+List+To+Record+%28revisited%29" title="Aggiungi su digg.com" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/digg.png" alt="Aggiungi su digg.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi&amp;title=STDLIB%3A+List+To+Record+%28revisited%29" title="Aggiungi su Google" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/google.png" alt="Aggiungi su Google" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi&amp;t=STDLIB%3A+List+To+Record+%28revisited%29" title="Aggiungi su Yahoo" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/yahoo.png" alt="Aggiungi su Yahoo" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://technorati.com/faves?add=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi" title="Aggiungi su Technorati" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/technorati.png" alt="Aggiungi su Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.badzu.net/submit?action=it&amp;link=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi&amp;title=STDLIB%3A+List+To+Record+%28revisited%29" title="Aggiungi su Badzu" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/badzu.png" alt="Aggiungi su Badzu" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi" title="Aggiungi su Facebook" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/facebook.png" alt="Aggiungi su Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://oknotizie.alice.it/post?url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi&amp;title=STDLIB%3A+List+To+Record+%28revisited%29" title="Aggiungi su OKNOtizie" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/oknotizie.png" alt="Aggiungi su OKNOtizie" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://twitter.com/home?status=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi" title="Aggiungi a Twitter" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/twitter.png" alt="Aggiungi a Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi&amp;top=1" title="Add to Windows Live" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/windowslive.png" alt="Add to Windows Live" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Ferlangdevelopers.splinder.com%2Fpost%2F16369595%2FSTDLIB%253A%2BList%2BTo%2BRecord%2B%2528revisi&amp;t=STDLIB%3A+List+To+Record+%28revisited%29" title="Aggiungi a MySpace" rel="nofollow" class="image" target="_blank"&gt;&lt;img src="http://www.splinder.com/modules/service_links/myspace.png" alt="Aggiungi a MySpace" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
<pubDate>Mon, 17 Mar 2008 10:13:43 +0100</pubDate>
<guid isPermaLink="true">http://erlangdevelopers.splinder.com/post/16369595/STDLIB%3A+List+To+Record+%28revisi</guid>
<source url="http://erlangdevelopers.splinder.com/post/16369595/STDLIB%3A+List+To+Record+%28revisi">STDLIB: List To Record (revisited)</source>
<comments>http://erlangdevelopers.splinder.com/post/16369595/STDLIB%3A+List+To+Record+%28revisi#comment</comments>
<category domain="http://erlangdevelopers.splinder.com/tag/record">record</category>
<category domain="http://erlangdevelopers.splinder.com/tag/list">list</category>
<category domain="http://erlangdevelopers.splinder.com/tag/erlang">erlang</category>
<category domain="http://erlangdevelopers.splinder.com/tag/stdlib">stdlib</category>
<category domain="http://erlangdevelopers.splinder.com/tag/mapfoldl">mapfoldl</category>
<category domain="http://erlangdevelopers.splinder.com/tag/tuple">tuple</category>
<duser:profile>http://www.splinder.com/profile/loretoparisi</duser:profile>
<duser:nickname>loretoparisi</duser:nickname>
<dc:creator>loretoparisi</dc:creator>
<dc:publisher>Erlang Developers Home</dc:publisher>
</item>
</channel>
</rss>
