[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libmicrohttpd] [GSoC Update] Week 3
From: |
Didik Setiawan |
Subject: |
[libmicrohttpd] [GSoC Update] Week 3 |
Date: |
Tue, 20 Jun 2017 11:35:50 +0700 |
User-agent: |
Mutt/1.8.3+3 (d3922568a777) (2017-05-23) |
================================= SUMMARY ======================================
My public fork of Wget2 project is available here [1]. I will continuously keep
pushing my work so anyone interested can track me there. Feel free to
participate in the discussions going on merge request with my mentors. Your
feedback are highly appreciated.
=============================== INTRODUCTION ===================================
The purpose of this project is to use Libmicrohttpd as test suite for Wget2. I
plan to do this by do some changes on function wget_test_start_server() also
wget_test_stop_server() on src/libtest.c of Wget2. With this approach, I don't
need to change existing test suite which call the internal server code through
functions mentioned above.
I've count there are 38 test file which use wget_test_start_server(). I must
ensure all the test passed when I've done the transition.
For installation prerequisite, I must ensure that Libmicrohttpd are included
when building Wget2 binary. Then I need to modify configure.ac. I will give
proper warning about this requirement. There is a section in README.md where I
must explain to user to provide Libmicrohttpd to make all test running
correctly.
With Libmicrohttpd I can add new test using feature that not yet implemented in
old server code, but ready on Libmicrohttpd, such as HTTP authentication [2] and
concurrent request checking.
Mentors:
Darshit Shah <address@hidden>
Ander Juaristi <address@hidden>
================================== UPDATES =====================================
Things which were done in this week:
* I have finished modify configure.ac to include Libmicrohttpd into Wget2. I
keep my work in this branch [3] of my repository.
* I have ensured that all make check passed on several testing machine
including: Debian/GCC, Fedora/Clang, MingW64 and OSX.
* Started working on wget_test_start_server(). Workflow to resolve this:
- Remove initial process for HTTP server socket.
- Create _http_server_start() function, wrapper for Libmicrohttpd. There is
also function answer_to_connection() which use to create proper HTTP
response.
- Use select method (MHD_USE_SELECT_INTERNALLY) for threading model in
Libmicrohttpd to get better compatibility.
- http_server_port seized automatically using Libmicrohttpd function by
passing MHD_DAEMON_INFO_BIND_PORT or MHD_DAEMON_INFO_LISTEN_FD parameter to
MHD_get_daemon_info().
- Using iteration to parse urls data in answer_to_connection(). This
guarantee we can pass any variadic data to Libmicrohttpd and prevent
segmentation fault.
- Fix answer_to_connection() function to create proper HTTP response (to deal
with parameters and arguments on url, to add proper HTTP headers).
================================= NEXT STEPS ===================================
Things which would be done in the coming week:
* Make sure all test suite running correctly. I've created spreadsheet about
summary of test file which use wget_test_start_server() [4]. Currently, it
reaches 38% (14 of 22). I targeted to reaches 100% by start of first
evaluation date.
[1]: https://gitlab.com/dstw/wget2
[2]:
https://www.gnu.org/software/libmicrohttpd/manual/libmicrohttpd.html#microhttpd_002ddauth
[3]: https://gitlab.com/dstw/wget2/tree/use-mhd
[4]:
https://docs.google.com/spreadsheets/d/13KzAXiB2mfud-c9LSdvKnnDHmAr5kUaDulkCA-p5q7M/edit?usp=sharing
Regards,
Didik Setiawan
- Re: [libmicrohttpd] [GSoC Update] Week 1, (continued)
- [libmicrohttpd] [GSoC Update] Week 2, Didik Setiawan, 2017/06/12
- Re: [libmicrohttpd] [GSoC Update] Week 2, Christian Grothoff, 2017/06/13
- Re: [libmicrohttpd] [GSoC Update] Week 2, Darshit Shah, 2017/06/13
- Re: [libmicrohttpd] [GSoC Update] Week 2, Evgeny Grin, 2017/06/14
- Re: [libmicrohttpd] [GSoC Update] Week 2, Didik Setiawan, 2017/06/17
- Re: [libmicrohttpd] [GSoC Update] Week 2, Tim Rühsen, 2017/06/17
- Re: [libmicrohttpd] [GSoC Update] Week 2, Evgeny Grin, 2017/06/17
- Re: [libmicrohttpd] [GSoC Update] Week 2, Didik Setiawan, 2017/06/17
- Re: [libmicrohttpd] [GSoC Update] Week 2, Evgeny Grin, 2017/06/17
[libmicrohttpd] [GSoC Update] Week 3,
Didik Setiawan <=