<div>Hi,</div><div><br></div><div>  My name is Sreenatha Bhatlapenumarthi. I'd like to migrate TorBEL </div><div>  from TorCtl to Stem as a part of GSoC'13 project this summer.</div>
<div><br></div><div>  Damian pointed out that there is still some improvement to be made to</div><div>  TorBEL to replace DNSEL. I've downloaded the source code from [0] and </div><div>  started looking around for missing functionality and components that use </div>
<div>  TorCtl(and hence need migration) and here is what I've observed:</div><div><ul><li>TorBEL components that use TorCtl</li><ul><li>Controller - control.py</li><li>Logger - logger.py</li><li>Router - router.py</li>
<li>Tests - tests.py</li><li>The main interface - torbel</li></ul><li>Exit policies of narrow_exit routers can be checked in <font face="courier new, monospace">Router.will_exit_to</font>[1]</li><li><font face="courier new, monospace">RouterRecord.update_to()</font><font face="arial, helvetica, sans-serif">[2]</font> can use "Router Status Entry" descriptors[3] to update the router's attributes</li>
<li>I think the following line[4] in network.py has a bug - <font face="courier new, monospace">socket.inet_aton</font> works only for IPv4 addresses[5].</li><ul><li> <font face="courier new, monospace">(ip,) = struct.unpack(">I", socket.inet_aton(peer.host))</font></li>
</ul></ul></div><div><div> Please let me know if I've missed something or got something wrong.</div></div><div><br></div><div> I donot have any background on Haskell as such but if you recommend that I</div><div> learn it inorder to understand TorDNSEL, I am prepared to spend the required</div>
<div> amount of time learning it during May before the coding period starts. Also, can </div><div> you give me a rough estimate of how long you think the migration will take so that </div><div> I can plan the project timeline accordingly?</div>
<div> </div><div> Thanks for taking your time out to read this.</div><div><br></div><div>[0] - <a href="https://git.torproject.org/torbel.git" target="_blank">https://git.torproject.org/torbel.git</a></div><div>[1] - <a href="https://github.com/lucyd/torbel/blob/master/query.py#L85">https://github.com/lucyd/torbel/blob/master/query.py#L85</a></div>
<div>[2] - <a href="https://github.com/lucyd/torbel/blob/master/router.py#L125">https://github.com/lucyd/torbel/blob/master/router.py#L125</a></div><div>[3] - <a href="https://stem.torproject.org/api/descriptor/router_status_entry.html#stem.descriptor.router_status_entry.RouterStatusEntry">https://stem.torproject.org/api/descriptor/router_status_entry.html#stem.descriptor.router_status_entry.RouterStatusEntry</a></div>
<div>[4] - <a href="https://github.com/lucyd/torbel/blob/master/network.py#L75">https://github.com/lucyd/torbel/blob/master/network.py#L75</a></div><div>[5] - <a href="http://docs.python.org/2/library/socket.html#socket.inet_aton">http://docs.python.org/2/library/socket.html#socket.inet_aton</a></div>
<div><br></div><div>Cheers,</div>
<div>Sreenatha</div>
<div><br></div>