<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Yeah I would think you wouldn't call exit().  That would cause
      the process to die and it would need to be forked again, being
      nearly as inefficient as traditional CGI.</p>
    <p>It sounds like your application might need to be redesigned a bit
      if calling exit() or using a goto is deemed a necessity. In
      Python/WSGI a request just triggers a function call, which exits
      normally. Anything more complex than that would seem awkward.<br>
    </p>
    <div class="moz-cite-prefix">On 4/11/21 5:50 PM, Timothy Butler
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:19c38.973537d52f.19c38.97352d360c.71937208-B8A9-4CF6-9727-07F49D18F3E2@ofb.biz">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      Thanks, Micah. That’s what I was thinking. There’s apparently
      something like Python’s WSGI called PSGI, but so far I’ve found it
      easier to figure out how to implement FastCGI — it’s dead simple
      so far.
      <div class=""><br class="">
      </div>
      <div class="">One thing I’ve found conflicting info on that maybe
        you have a thought on, since it applies across languages, I
        believe: some people say you should never call exit() on a
        script being run through FastCGI. Others say it doesn’t matter.
        My code uses exit in a lot of places where it is important to
        make sure nothing keeps executing, but there’s not a fatal
        error. I’ve mostly used it so that I don’t accidentally overlook
        something continuing on and cause a security hole. However, I’m
        wondering if I need to remove those calls. </div>
      <div class=""><br class="">
      </div>
      <div class="">I found one suggestion of using GOTO (which I’ve not
        used since I played with Basic so many years ago) to go to an
        empty block of code beyond all the other code as a replacement
        to exit(). </div>
      <div class=""><br class="">
      </div>
      <div class="">Any thoughts?</div>
      <div class=""><br class="">
      </div>
      <div class="">Tim<br class="">
        <div class=""><br class="">
        </div>
        <div class=""><br class="">
          <div class="">
            <meta charset="UTF-8" class="">
            <div><b class="">Timothy R. Butler</b>, M.Div<br class="">
              Editor-in-Chief, <a href="https://ofb.biz" class=""
                moz-do-not-send="true"><i class="">Open for Business</i></a><br
                class="">
              <a href="mailto:tbutler@ofb.biz" class=""
                moz-do-not-send="true">tbutler@ofb.biz</a> </div>
          </div>
          <div><br class="">
            <blockquote type="cite" class="">
              <div class="">On Apr 11, 2021, at 5:35 PM, Micah Yoder
                <<a href="mailto:micah@yoderdev.com" class=""
                  moz-do-not-send="true">micah@yoderdev.com</a>>
                wrote:</div>
              <br class="Apple-interchange-newline">
              <div class="">
                <meta http-equiv="Content-Type" content="text/html;
                  charset=UTF-8" class="">
                <div class="">
                  <p class="">No recent Perl experience, but I do know
                    that php-fpm (the FastCGI version of PHP) is vastly
                    preferable to mod_php for several reasons.</p>
                  <p class="">Python applications commonly use WSGI,
                    which is its own protocol but similar.</p>
                  <p class="">Basically IMHO that or something like it
                    is the only sane way to run web applications. 
                    Old-school CGI should pretty much never be used, and
                    bundling the language in the web server (mod_*) is a
                    bad idea too.<br class="">
                  </p>
                  <div class="moz-cite-prefix">On 4/11/21 5:21 PM,
                    Timothy Butler wrote:<br class="">
                  </div>
                  <blockquote type="cite"
cite="mid:19c38.9735afaf67.19c38.8735decc0a.A6F7A2E3-CC2F-42C9-907D-3E6967FA9766@ofb.biz"
                    class="">
                    <meta http-equiv="Content-Type" content="text/html;
                      charset=UTF-8" class="">
                    Hey, everyone,
                    <div class="">Does anyone on here have insight into
                      using FastCGI to speed up Perl execution? I’ve
                      been playing with it the last week and I am amazed
                      at the results, but FastCGI seems to be mostly
                      dormant. My CMS goes from taking around 600ms to
                      fulfill a request to as low as 180ms (all but as
                      fast as a static page). So far as I can tell, it
                      has several advantages over mod_perl, most
                      importantly that it works with Suexec to keep
                      scripts from running with privileges beyond the
                      current site’s own.</div>
                    <div class=""><br class="">
                    </div>
                    <div class="">On the other hand, the FCGI module for
                      Perl seems to have broken UTF-8 support, which is
                      a pretty nasty thing in 2021. </div>
                    <div class=""><br class="">
                    </div>
                    <div class="">Thoughts?</div>
                    <div class=""><br class="">
                    </div>
                    <div class="">Tim</div>
                    <div class=""><br class="">
                    </div>
                    <div class=""><br class="">
                      <div class="">
                        <div style="letter-spacing: normal; text-align:
                          start; text-indent: 0px; text-transform: none;
                          white-space: normal; word-spacing: 0px;
                          -webkit-text-stroke-width: 0px; word-wrap:
                          break-word; -webkit-nbsp-mode: space;
                          line-break: after-white-space;" class="">
                          <div style="font-family: Helvetica;
                            font-style: normal; font-variant-ligatures:
                            normal; font-variant-position: normal;
                            font-variant-caps: normal;
                            font-variant-numeric: normal;
                            font-variant-alternates: normal;
                            font-variant-east-asian: normal;
                            font-weight: normal; letter-spacing: normal;
                            line-height: normal; orphans: 2; text-align:
                            -webkit-auto; text-indent: 0px;
                            text-transform: none; white-space: normal;
                            widows: 2; word-spacing: 0px;
                            -webkit-text-stroke-width: 0px; word-wrap:
                            break-word; -webkit-nbsp-mode: space;
                            line-break: after-white-space;" class="">
                            <div class=""><b class="">Timothy Butler</b></div>
                            <div class=""><a
                                href="mailto:tbutler@ofb.biz" class=""
                                moz-do-not-send="true">tbutler@ofb.biz</a></div>
                            <div class=""><br class="">
                            </div>
                          </div>
                          <i style="font-family: 'Book Antiqua',
                            Georgia, Times, serif;" class="">"The best
                            theology would need no advocates: it would
                            prove itself."</i><span style="font-family:
                            'Book Antiqua', Georgia, Times, serif;"
                            class=""> —Karl Barth</span></div>
                      </div>
                      <br class="">
                    </div>
                    <br class="">
                    <fieldset class="mimeAttachmentHeader"></fieldset>
                    <pre class="moz-quote-pre" wrap="">_______________________________________________
ChristianSource FSLUG mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Christiansource@ofb.biz" moz-do-not-send="true">Christiansource@ofb.biz</a>
<a class="moz-txt-link-freetext" href="http://cs.uninetsolutions.com/" moz-do-not-send="true">http://cs.uninetsolutions.com</a>
</pre>
                  </blockquote>
                </div>
                _______________________________________________<br
                  class="">
                ChristianSource FSLUG mailing list<br class="">
                <a href="mailto:Christiansource@ofb.biz" class=""
                  moz-do-not-send="true">Christiansource@ofb.biz</a><br
                  class="">
                <a class="moz-txt-link-freetext" href="http://cs.uninetsolutions.com">http://cs.uninetsolutions.com</a><br class="">
              </div>
            </blockquote>
          </div>
          <br class="">
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
ChristianSource FSLUG mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Christiansource@ofb.biz">Christiansource@ofb.biz</a>
<a class="moz-txt-link-freetext" href="http://cs.uninetsolutions.com">http://cs.uninetsolutions.com</a>
</pre>
    </blockquote>
  </body>
</html>