[Ur] socket detaching

Adam Chlipala adamc at csail.mit.edu
Tue Aug 5 09:20:39 EDT 2014


On 08/05/2014 04:57 AM, Sergey Mironov wrote:
> Well, I really prefer not to use Apache for serving anything but the
> completely static pages.

OK; I wasn't sure if your example files being served were generated 
dynamically or not.

> The second reason is the ability to control the [serve] function's
> behavior. For example, my application should serve the firmware
> tarballs to authorized users only. Authorization routine requires
> parsing of fingerprint of the user's system and searching here and
> there in the database. Integrating such things into Apache may be
> tricky (actually, I have no idea how to communicate with Apache. May
> cookies be used for that?).
>
> I think you will say that I am talking about non-static content and
> all non-static content should be stored in the database completely.
> Well, for the most of the applications - maybe. But sometimes
> application should interact with file-based backends and in those
> cases controlling the [serve] logic is very desirable. For my
> application, I am doing it via [val serveTarball : string ->
> transaction page] right from the [main] function.

But you can use the FFI to produce Ur values of [blob] type in any way 
you like, and then you can use [returnBlob] to serve them -- there's no 
need to intercept sockets.

Did you just ask the socket detaching as an optimization?  Did it make 
an important performance difference in practice?



More information about the Ur mailing list