Hi Jonas,

I have no problems with teaming up. Like you, this project is my foremost
focus for GSoC but I'm also looking at other/related projects. Let's wait
for Ludo to confirm/deny that we are allowed to team up.

Regards,
Rohan

On 5 March 2015 at 19:14, Jonas Rebmann <jonas.rebm...@googlemail.com>
wrote:

> Hi,
>
> I contacted Ludo about the DHCP client just before I noticed this
> conversation. I'm interested in making it my gsoc project as well.
> I'm an undergraduate in computer science in Germany, I'm a bit into free
> software and I'm especially interested in making my gsoc for the gnu
> project.
> Would it be possible to team up on this project?
> Other project ideas for guix/dmd are very welcome.
> I'll be waiting for Ludovics reply and see what other project ideas might
> be interesting for me.
>
> Kind regards,
> Jonas
>
> 2015-03-05 11:51 GMT+01:00 Ludovic Courtès <l...@gnu.org>:
>
>> Hello!
>>
>> Rohan Prinja <rohan.pri...@gmail.com> skribis:
>>
>> > The project I'm interested in working on for GNU GSoC this year is to
>> > implement a DHCP client library in Guile. The end result, as I discussed
>> > with Ludovic, would be a package installable via Guix. This would make
>> > available a command roughly equivalent to ISC's dhclient. The library
>> > should also implement a service that dmd can run.
>>
>> Specifically, the library’s functionality should be available in a way
>> that makes it easy to integrate in some event loop.
>>
>> > Things I've done so far - read the dmd manual, started learning Guile
>> (I've
>> > programmed in Racket before, but not Guile), reading up on the DHCP
>> > protocol, and started looking at ISC's implementation of dhclient (I
>> used
>> > the one obtained by apt-get source isc-dhcp-client).
>>
>> (Alternately, you can get it with ‘guix build -S isc-dhclient’.  ;-))
>>
>> This is a good start.  You might want to look at
>> <https://www.ietf.org/rfc/rfc2131.txt> more than at the actual
>> implementation.
>>
>> > @Ludovic: continuing our discussion - could you please explain what you
>> > mean by the dmd event loop? I searched in the manual as well the dmd-0.2
>> > source but couldn't find any reference to it. Is this something planned
>> to
>> > be added to dmd? How will it look like?
>>
>> It’s something planned.  Basically dmd has to react to various events;
>> currently, the only events that happen in practice are SIGCHLD,
>> connections made by the client programs (‘deco’, ‘reboot’, etc.), and
>> commands sent on open connections by these clients.
>>
>> Currently, in lieu of an full-blown even loop, there’s just this naive
>> loop in the (dmd) module:
>>
>>           (let next-command ()
>>             (match (accept sock)
>>               ((command-source . client-address)
>>                (process-connection command-source))
>>               (_ #f))
>>             (next-command))
>>
>> That doesn’t scale well and isn’t safe though, because a client could
>> wait forever and thus lead dmd to wait forever as well (although that’s
>> slightly beyond the adversary model we would think of.)
>>
>> More importantly, we would like dmd to be able to handle other kinds of
>> events.  For instance, I would like it to run a “REPL server” (info
>> "(guile) REPL Servers"); that means it will also have to check for
>> events occurring on the REPL server socket.
>>
>> Other types of events could include network reconfigurations (which
>> could be detected via a PF_NETLINK/NETLINK_ROUTE socket), device
>> additions/removal, events related to the DHCP client process, etc.
>>
>> To be able to handle these events, dmd needs a usual event loop.  It
>> doesn’t have it yet, but that’s something I’m planning to add (I say “I”
>> but anyone reading this message is welcome to help ;-)).
>>
>> Does it clarify things a bit?
>>
>> Thanks,
>> Ludo’.
>>
>>
>

Reply via email to