Re: Trying to get a mod_h3 working using openssl and nghttp3

Tarek <[email protected]> Fri, 17 Jul 2026 17:49:41 -0400
Newsgroups gmane.comp.apache.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------51F0vy4E4Xnmmt31ZVg2sunh
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

This patch adds optional hooks so modules that manage connections 
outside the event MPM accept loop (UDP connections) can be accounted for.

Patch against trunk for feedback: 
https://github.com/machine-moon/httpd/commit/9ae19a4b0af00973d867f0740a709e059b4e6c7c

This patch is critical for mod_http3.

You can find the project here: https://github.com/machine-moon/mod_http3


On 2026-05-12 14:55, Pierre Brochard wrote:
>
> A syntax to specify udp listening sockets should be found for 
> virtualhosts. nginx add quic and reuseport keyword to their listen 
> directive in config files.
>
> Pierre
>
> Le 12/05/2026 à 19:11, Pierre a écrit :
>> I was thinking of adding the udp ports to the list of ports to listen 
>> in the listening thread of thé event pool.
>>
>> Le 12 mai 2026 18:48, tarek i <[email protected]> a écrit :
>>
>>     Hi,
>>
>>     I’m new here and participating in GSoC 2026, currently working on
>>     the mod_http3 project. I’ve made some cleanups to the codebase
>>     here: https://github.com/machine-moon/mod_http3/
>>
>>     Could someone point me toward beginner documentation on the
>>     Worker MPM?
>>
>>     Also I’d appreciate any help with testing my changes using (curl,
>>     chrome, etc).
>>
>>     Cheers,
>>     Tarek
>>
>>
>>     On Tue, May 12, 2026 at 11:53 AM Eric Covener <[email protected]>
>>     wrote:
>>
>>         On Tue, May 12, 2026 at 11:24 AM jean-frederic clere
>>         <[email protected]> wrote:
>>         >
>>         > On 5/10/26 6:53 PM, Pierre Brochard wrote:
>>         > > Hi,
>>         > >
>>         > > What about the Event MPM which has workers threads, a
>>         thread for waiting
>>         > > sockets and others (for each child) ?
>>         > >
>>         > > It may be more adequate than the Worker MPM ?
>>         >
>>         > If we want to use the openssl streams like sockets we need
>>         to write a
>>         > specialized worker, for the moment the prototype use
>>         threads that aren't
>>         > in the MPM logic.
>>         >
>>         > I did a bunch of tries and on linux the upd data seem to
>>         stick on the
>>         > process/thread that was used to "accept" the new connection.
>>
>>         Did you see PT_USER / ap_mpm_register_poll_callback_timeout
>>         in trunk?
>>
>>
-- 
Cheers,
Tarek

GPG Fingerprint: B9BD295C26A1ED077599810CA284507F96DB79EF

--------------51F0vy4E4Xnmmt31ZVg2sunh
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi,<br>
      <br>
      This patch adds optional hooks so modules that manage connections
      outside the event MPM accept loop (UDP connections) can be
      accounted for.<br>
      <br>
      Patch against trunk for feedback:
<a class="moz-txt-link-freetext" href="https://github.com/machine-moon/httpd/commit/9ae19a4b0af00973d867f0740a709e059b4e6c7c">https://github.com/machine-moon/httpd/commit/9ae19a4b0af00973d867f0740a709e059b4e6c7c</a><br>
      <br>
      This patch is critical for mod_http3. <br>
      <br>
      You can find the project here:
      <a class="moz-txt-link-freetext" href="https://github.com/machine-moon/mod_http3">https://github.com/machine-moon/mod_http3</a></p>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 2026-05-12 14:55, Pierre Brochard
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:[email protected]">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>A syntax to specify udp listening sockets should be found for
        virtualhosts. nginx add quic and reuseport keyword to their
        listen directive in config files.</p>
      <p>Pierre</p>
      <div class="moz-cite-prefix">Le 12/05/2026 à 19:11, Pierre a
        écrit :<br>
      </div>
      <blockquote type="cite"
cite="mid:[email protected]">
        <meta http-equiv="content-type"
          content="text/html; charset=UTF-8">
        <div dir="auto">I was thinking of adding the udp ports to the
          list of ports to listen in the listening thread of thé event
          pool.</div>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">Le 12 mai 2026 18:48, tarek i <a
              class="moz-txt-link-rfc2396E"
              href="mailto:[email protected]" moz-do-not-send="true">&lt;[email protected]&gt;</a>
            a écrit :<br type="attribution">
            <blockquote class="quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div dir="ltr">
                <div dir="ltr">Hi,<br>
                  <br>
                  I’m new here and participating in GSoC 2026, currently
                  working on the mod_http3 project. I’ve made some
                  cleanups to the codebase here: <a
                    href="https://github.com/machine-moon/mod_http3/"
                    moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/machine-moon/mod_http3/</a><br>
                  <br>
                  Could someone point me toward beginner documentation
                  on the Worker MPM?<br>
                  <br>
                  Also I’d appreciate any help with testing my
                  changes using (curl, chrome, etc).<br>
                  <br>
                  Cheers,<br>
                  Tarek<br>
                  <br>
                </div>
                <br>
                <div>
                  <div dir="ltr">On Tue, May 12, 2026 at 11:53 AM Eric
                    Covener &lt;<a href="mailto:[email protected]"
                      moz-do-not-send="true"
                      class="moz-txt-link-freetext">[email protected]</a>&gt;
                    wrote:<br>
                  </div>
                  <blockquote
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb( 204 , 204 , 204 );padding-left:1ex">On
                    Tue, May 12, 2026 at 11:24 AM jean-frederic clere
                    &lt;<a href="mailto:[email protected]"
                      moz-do-not-send="true"
                      class="moz-txt-link-freetext">[email protected]</a>&gt;
                    wrote:<br>
                    &gt;<br>
                    &gt; On 5/10/26 6:53 PM, Pierre Brochard wrote:<br>
                    &gt; &gt; Hi,<br>
                    &gt; &gt;<br>
                    &gt; &gt; What about the Event MPM which has workers
                    threads, a thread for waiting<br>
                    &gt; &gt; sockets and others (for each child) ?<br>
                    &gt; &gt;<br>
                    &gt; &gt; It may be more adequate than the Worker
                    MPM ?<br>
                    &gt;<br>
                    &gt; If we want to use the openssl streams like
                    sockets we need to write a<br>
                    &gt; specialized worker, for the moment the
                    prototype use threads that aren't<br>
                    &gt; in the MPM logic.<br>
                    &gt;<br>
                    &gt; I did a bunch of tries and on linux the upd
                    data seem to stick on the<br>
                    &gt; process/thread that was used to "accept" the
                    new connection.<br>
                    <br>
                    Did you see PT_USER / 
                    ap_mpm_register_poll_callback_timeout in trunk?<br>
                  </blockquote>
                </div>
              </div>
            </blockquote>
          </div>
          <br>
        </div>
      </blockquote>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Cheers,
Tarek

GPG Fingerprint: B9BD295C26A1ED077599810CA284507F96DB79EF</pre>
  </body>
</html>

--------------51F0vy4E4Xnmmt31ZVg2sunh--