Tuesday, May 19, 2009

Projects status

Last week I was very busy with the university and finishing up BRisa tasks, so I didn't have time to code for Eupnp, even though I couldn't take it out of my mind (ideas!).

The status is:

  • BRisa: almost ready for release (may happen sometime this week, we expect friday)
  • Eupnp: detected a 8 byte leak on inet_ntoa (well known in the community), next steps will be implementing a cache for known devices (SSDP), add filters for search targets (CP) and starting the device builder module
I'll be working on these tasks this week and on the next week I'll have to halt a bit for some university tests. I expect to have some results until friday.

Real coffee

It's been a while since I accidentally broke my coffee jar while washing it.. and since it's specially designed for that - and I didn't have time to go look for another jar of this brand - I've been drinking instant coffee Nescafe since then (bad!).

Today I managed to do a workaround with the coffee machine and another jar, so, real coffee again!

Hoorai.

Wednesday, May 06, 2009

Zaroo Leaks!

Grinding Leaks:

  • cd eupnp
  • ./autogen.sh
  • make
  • Create the lt binary under .lib: EINA_ERROR_LEVEL=3 ./src/bin/eupnp_basic_control_point
  • Valgrind it: EINA_ERROR_LEVEL=3 valgrind --leak-check=full --num-callers=6 --show-reachable=yes src/bin/.libs/lt-eupnp_basic_control_point
Outputs
==17842== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 23 from 1)
==17842== malloc/free: in use at exit: 0 bytes in 0 blocks.
==17842== malloc/free: 36 allocs, 36 frees, 7,265 bytes allocated.
==17842== For counts of detected errors, rerun with: -v
==17842== All heap blocks were freed -- no leaks are possible.

Zaroo leaks!




Test construction failure leaks: two instances, one binds to the address, the other can't bind, check for leaks

Output:
[eupnp_udp_transport.c:85] eupnp_udp_transport_prepare() Error binding. Address already in use
[eupnp_udp_transport.c:135] eupnp_udp_transport_new() Could not prepare socket.
[eupnp_ssdp.c:324] eupnp_ssdp_server_new() Could not create SSDP server instance.
[eupnp_control_point.c:86] eupnp_control_point_new() Could not create control point.
==18183==
==18183== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 23 from 1)
==18183== malloc/free: in use at exit: 0 bytes in 0 blocks.
==18183== malloc/free: 23 allocs, 23 frees, 1,490 bytes allocated.
==18183== For counts of detected errors, rerun with: -v
==18183== All heap blocks were freed -- no leaks are possible.

Monday, May 04, 2009

GSoC Eupnp Progress

Project:

  • Repository: http://github.com/dieb/eupnp/tree
  • Cloning: git clone git://github.com/dieb/eupnp.git
  • Testing: ./autogen.sh, make, make install, try the binaries under src/bin with EINA_ERROR_LEVEL=3 if you want complete debug.
These are the features I already pushed (see update below):
  • UDP transport component;
  • SSDP HTTP basic request parser;
  • SSDP Discovery Request (M-Search);
  • Control Point and SSDP classes;
  • Working basic control point for testing features described above


Update: Gustavo Barbieri (project mentor) helped me a lot improving everything and also fix the repository tree that had a 'trunk' folder. So I created a new tree and pushed the files already improved.

From now on, only incremental commits! :-)