<p>Many platforms with 4 byte integers define RAND_MAX as INT_MAX but some (Solaris and derivatives for example), RAND_MAX is only 32767 but INT_MAX is 2147483647.  This change allows falling back to the posix random() and srandom() variants with casts to int if both int and long are 4 bytes, then defining a consistent KAM_RAND_MAX of 2147483647.  If both INT_MAX and RAND_MAX are 2 bytes, then we are stuck with ANSI rand().</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/kamailio/kamailio/pull/701'>https://github.com/kamailio/kamailio/pull/701</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>core: add portable rand() macros</li>
  <li>ims_charging: update to use kam_rand()</li>
  <li>auth: update to use kam_rand()</li>
  <li>carrierroute: update to use kam_rand()</li>
  <li>cdp: update to use kam_rand()</li>
  <li>cfgutils: update to use kam_rand()</li>
  <li>dialog: update to use kam_rand()</li>
  <li>dispatcher: update to use kam_rand()</li>
  <li>drouting: update to use kam_rand()</li>
  <li>ims_auth: update to use kam_rand()</li>
  <li>ims_dialog: update to use kam_rand()</li>
  <li>ims_registrar_scscf: update to use kam_rand()</li>
  <li>iptrtpproxy: update to use kam_rand()</li>
  <li>lcr: update to use kam_rand()</li>
  <li>nat_traversal: update to use kam_rand()</li>
  <li>nsq: update to use kam_rand()</li>
  <li>pipelimit: update to use kam_rand()</li>
  <li>presence: update to use kam_rand()</li>
  <li>registrar: update to use kam_rand()</li>
  <li>rls: update to use kam_rand()</li>
  <li>sipcapture: update to use kam_rand()</li>
  <li>tm: update to use kam_rand()</li>
  <li>tsilo: update to use kam_rand()</li>
  <li>usrloc: update to use kam_rand()</li>
  <li>xmpp: update to use kam_rand()</li>
  <li>xprint: update to use kam_rand()</li>
  <li>core: update to use kam_rand()</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-0">main.c</a>
    (9)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-1">modules/auth/auth_mod.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-2">modules/carrierroute/cr_func.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-3">modules/carrierroute/prime_hash.c</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-4">modules/cdp/peermanager.c</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-5">modules/cdp/session.c</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-6">modules/cdp/utils.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-7">modules/cfgutils/cfgutils.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-8">modules/dialog/dlg_hash.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-9">modules/dispatcher/dispatch.c</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-10">modules/dispatcher/dispatch.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-11">modules/dispatcher/dispatcher.c</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-12">modules/drouting/drouting.c</a>
    (11)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-13">modules/ims_auth/authorize.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-14">modules/ims_charging/ro_session_hash.c</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-15">modules/ims_charging/ro_session_hash.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-16">modules/ims_dialog/dlg_hash.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-17">modules/ims_registrar_scscf/reg_mod.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-18">modules/ims_registrar_scscf/registrar_notify.c</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-19">modules/ims_registrar_scscf/save.c</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-20">modules/ims_registrar_scscf/sip_msg.c</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-21">modules/iptrtpproxy/iptrtpproxy.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-22">modules/lcr/lcr_mod.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-23">modules/nat_traversal/nat_traversal.c</a>
    (9)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-24">modules/nsq/reader.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-25">modules/pipelimit/pipelimit.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-26">modules/presence/presence.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-27">modules/registrar/sip_msg.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-28">modules/rls/notify.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-29">modules/sipcapture/sipcapture.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-30">modules/tm/callid.c</a>
    (7)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-31">modules/tm/h_table.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-32">modules/tm/uac.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-33">modules/tsilo/ts_hash.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-34">modules/usrloc/ul_mi.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-35">modules/xmpp/util.c</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-36">modules/xprint/xp_lib.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-37">msg_translator.c</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-38">pt.c</a>
    (13)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-39">rand/kam_rand.h</a>
    (35)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/kamailio/kamailio/pull/701/files#diff-40">select_core.c</a>
    (5)
  </li>
</ul>

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

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/pull/701">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe/AF36ZTJ3xgjrcWhiiB-M-LzydeYvHImwks5qTZoVgaJpZM4JHoBt">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AF36ZSAsxNjABT4o8ZKXcWbPLevRSLO9ks5qTZoVgaJpZM4JHoBt.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/kamailio/kamailio/pull/701"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>