<p>Corey Farrell <strong>posted comments</strong> on this change.</p><p><a href="https://gerrit.asterisk.org/7872">View Change</a></p><p>Patch set 5:</p><p>(5 comments)</p><ul style="list-style: none; padding-left: 20px;"><li><p><a href="https://gerrit.asterisk.org/#/c/7872/5/include/asterisk/module.h">File include/asterisk/module.h:</a></p><ul style="list-style: none; padding-left: 20px;"><li><p style="margin-bottom: 4px;"><a href="https://gerrit.asterisk.org/#/c/7872/5/include/asterisk/module.h@342">Patch Set #5, Line 342:</a> </p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;"><pre style="font-family: monospace,monospace; white-space: pre-wrap;">        /*! Modules which must be started first, in comma-separated string format. */<br> const char *requires;<br></pre></blockquote></p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;">This seems to need more clarification.</blockquote></p><p style="white-space: pre-wrap; word-wrap: break-word;">"Modules which must be loaded and started first, in comma-separated string format." ?</p><p style="white-space: pre-wrap; word-wrap: break-word;">This field is for modules which are unconditionally mandatory. I had only mentioned "started first" since this field does not actually enforce load order.  Load order is often enforced by dlopen symbol resolution (RTLD_NOW forces res_fax load before res_fax_spandsp), but sometimes when one module requires another but doesn't directly use symbols the dlopen's can succeed in any order (app_adsiprog vs res_adsi for example).  The requires field deals with "starting" the module.</p><p style="white-space: pre-wrap; word-wrap: break-word;">It's unfortunate that the start module callback is '.load' instead of '.start' - this inappropriately named field makes things confusing but I'm not sure renaming would be worth it.</p></li></ul></li><li><p><a href="https://gerrit.asterisk.org/#/c/7872/5/res/res_agi.c">File res/res_agi.c:</a></p><ul style="list-style: none; padding-left: 20px;"><li><p style="margin-bottom: 4px;"><a href="https://gerrit.asterisk.org/#/c/7872/5/res/res_agi.c@4720">Patch Set #5, Line 4720:</a> <code style="font-family:monospace,monospace">        .requires = "res_speech",</code></p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;">Why is this required for AGI?  It should be optional.</blockquote></p><p style="white-space: pre-wrap; word-wrap: break-word;">res_speech is not implemented with OPTIONAL_API so res_agi.so directly references symbols from res_speech (ast_speech_grammar_activate for example).</p></li></ul></li><li><p><a href="https://gerrit.asterisk.org/#/c/7872/5/res/res_ari.c">File res/res_ari.c:</a></p><ul style="list-style: none; padding-left: 20px;"><li><p style="margin-bottom: 4px;"><a href="https://gerrit.asterisk.org/#/c/7872/5/res/res_ari.c@1200">Patch Set #5, Line 1200:</a> <code style="font-family:monospace,monospace">        .optional_apis = "res_http_websocket",</code></p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;">Heh.  I thought ARI was essentially nonfunctional without a websocket.</blockquote></p><p style="white-space: pre-wrap; word-wrap: break-word;">What about some of the basic information retrieval URL's (no use of events)?</p></li></ul></li><li><p><a href="https://gerrit.asterisk.org/#/c/7872/5/res/res_pjsip_outbound_publish.c">File res/res_pjsip_outbound_publish.c:</a></p><ul style="list-style: none; padding-left: 20px;"><li><p style="margin-bottom: 4px;"><a href="https://gerrit.asterisk.org/#/c/7872/5/res/res_pjsip_outbound_publish.c@1705">Patch Set #5, Line 1705:</a> <code style="font-family:monospace,monospace">     .requires = "res_pjproject,res_pjsip",</code></p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;">Should only need res_pjsip as res_pjsip cannot function without res_pjproje</blockquote></p><p style="white-space: pre-wrap; word-wrap: break-word;">This module directly calls ast_pjproject_get_buildopt.  You are right it's not technically required.  For situations like this I don't have very strong feelings but lean towards listing everything that is directly used.</p></li></ul></li><li><p><a href="https://gerrit.asterisk.org/#/c/7872/5/res/res_pjsip_registrar.c">File res/res_pjsip_registrar.c:</a></p><ul style="list-style: none; padding-left: 20px;"><li><p style="margin-bottom: 4px;"><a href="https://gerrit.asterisk.org/#/c/7872/5/res/res_pjsip_registrar.c@1137">Patch Set #5, Line 1137:</a> <code style="font-family:monospace,monospace">  .requires = "res_pjproject,res_pjsip",</code></p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;">Should only need res_pjsip as res_pjsip cannot function without res_pjproje</blockquote></p><p style="white-space: pre-wrap; word-wrap: break-word;">Same as res_pjsip_outbound_publish.</p></li></ul></li></ul><p>To view, visit <a href="https://gerrit.asterisk.org/7872">change 7872</a>. To unsubscribe, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/7872"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: comment </div>
<div style="display:none"> Gerrit-Change-Id: I3ad9547a0a6442409ff4e352a6d897bef2cc04bf </div>
<div style="display:none"> Gerrit-Change-Number: 7872 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: Corey Farrell <git@cfware.com> </div>
<div style="display:none"> Gerrit-Reviewer: Corey Farrell <git@cfware.com> </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </div>
<div style="display:none"> Gerrit-Reviewer: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Richard Mudgett <rmudgett@digium.com> </div>
<div style="display:none"> Gerrit-Comment-Date: Sun, 14 Jan 2018 22:57:59 +0000 </div>
<div style="display:none"> Gerrit-HasComments: Yes </div>