<p>This pull requests adds the following:</p>

<ul>
<li>added a new status - ASYNC_CHANGE_FD which allows changing the file descriptor in the reactor if something goes wrong in the resume function, such that you can do failover</li>
<li>added a state parameter for database async query - database engines can now use a parameter to hold state between the async call (async_raw_query) and the async resume (async_raw_resume)</li>
<li>adapted sipcapture and avpops to the new functionalities</li>
<li>db_virtual can now use the async raw query functionality; since mysql is the only engine that supports this, it will be the only one supported</li>
</ul>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>&nbsp;&nbsp;<a href='https://github.com/OpenSIPS/opensips/pull/715'>https://github.com/OpenSIPS/opensips/pull/715</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>add ASYNC_CHANGE_FD status in reactor</li>
  <li>hold db state between async call and resume function</li>
  <li>async support for db_virtual</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-0">async.h</a>
    (7)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-1">db/db.h</a>
    (9)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-2">modules/avpops/avpops_impl.c</a>
    (11)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-3">modules/avpops/avpops_impl.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-4">modules/db_mysql/dbase.c</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-5">modules/db_mysql/dbase.h</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-6">modules/db_virtual/README</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-7">modules/db_virtual/db_virtual.c</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-8">modules/db_virtual/db_virtual.h</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-9">modules/db_virtual/dbase.c</a>
    (177)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-10">modules/db_virtual/dbase.h</a>
    (15)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-11">modules/db_virtual/doc/db_virtual_admin.xml</a>
    (15)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-12">modules/sipcapture/sipcapture.c</a>
    (15)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-13">modules/sipcapture/sipcapture.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-14">modules/tm/async.c</a>
    (51)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-15">modules/tm/async.c.orig</a>
    (258)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-16">modules/tm/async.h</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-17">net/net_tcp_proc.c</a>
    (12)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/715/files#diff-18">net/net_udp.c</a>
    (2)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/OpenSIPS/opensips/pull/715.patch'>https://github.com/OpenSIPS/opensips/pull/715.patch</a></li>
  <li><a href='https://github.com/OpenSIPS/opensips/pull/715.diff'>https://github.com/OpenSIPS/opensips/pull/715.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br>Reply to this email directly or <a href="https://github.com/OpenSIPS/opensips/pull/715">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AFOciZFTd1QEaT7J6l7maT02hz5s8mEfks5pMCTGgaJpZM4Gt7dV.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/OpenSIPS/opensips/pull/715"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>