libmicrohttpd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libmicrohttpd] PATCH: Fix check for epoll mode and blocking socket


From: Kolja Nowak
Subject: Re: [libmicrohttpd] PATCH: Fix check for epoll mode and blocking socket
Date: Wed, 18 May 2022 10:01:31 +0000

Hi,

> Your patch is correct, applied as suggested.

Thanks!

> Can you share more information about your exotic platform?

ucos-II running on a Xtensa8 CPU with unicoi fusion TCPIP stack.

> Do you need other modifications to run successfully MHD or it 
> works just with this patch?

I can't answer this definitively, this is still work in progress. As for now, I 
got a simple test running in both internal and external select() mode using a 
single thread, which is what I care about. 

> Do you use autotools (configure) or you some custom MHD_config.h?

No way to use autotools, I use a hand-crafted MHD_config.h, built by trial and 
error and reading #ifdef soup ...

> It's interesting that support for blocking sockets is still needed for 
> some platforms. We may consider drop support for blocking sockets (to 
> simplify the code), but if this support is still important for some 
> platforms we will continue to maintain it.

> It is not clear from your message: does your platform not support 
> non-blocking sockets or just fcntl() does not work, while non-blocking 
> sockets can be enabled by some other way?

It doesn't look like it. We have some kind of "POSIX layer" on top of the 
fusion TCPIP stack. This layer provides fcntl() and defines O_NONBLOCK, but the 
call fails at runtime. The fusion stack also provides a proprietary API, but I 
haven't looked deeply into it, I cannot rule out there is a way to enable 
non-blocking which the POSIX layer doesn't use. 

Might be worth mentioning that enabling non-inheritable mode doesn't work 
either. 

Also, none of the three options for ITC are available, and because there is no 
way to configure the lib without ITC, I had to provide pipe(...) { return -1; } 
to satisfy the linker. It doesn't get called though, as long as everything else 
is configured accordingly to make sure ITC is never used.

Greetings,
Kolja Nowak.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]