<p>This patch makes it so that the localcache module does not reset the expiration of a key on an addition or subtraction. Instead the expiration is based off when the key was first inserted. For example, if you add 1 to a key every second and have it expire after 20 seconds, the counter will increase for 20 seconds and then be reset. The current behavior is that the counter will just continually increase and will not reset unless there is 20 seconds of inactivity on the key.</p>

<p>This behavior is more in-line with how other caches (such as memcache) treat these operations, and I believe should be the expected behavior. It also makes it much easier to use the localcache for things such as rate-limiting, loop detecting, etc without having to resort to interesting tricks in the keys (such as including the current second, minute, etc).</p>

<hr>

<h4>You can merge this Pull Request by running</h4>
<pre>  git pull https://github.com/rrb3942/opensips localcache_counter_expire</pre>
<p>Or view, comment on, or merge it at:</p>
<p>&nbsp;&nbsp;<a href='https://github.com/OpenSIPS/opensips/pull/160'>https://github.com/OpenSIPS/opensips/pull/160</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Do not reset counter expiration on incr/decr</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/OpenSIPS/opensips/pull/160/files#diff-0">modules/cachedb_local/hash.c</a>
    (8)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/OpenSIPS/opensips/pull/160.patch'>https://github.com/OpenSIPS/opensips/pull/160.patch</a></li>
  <li><a href='https://github.com/OpenSIPS/opensips/pull/160.diff'>https://github.com/OpenSIPS/opensips/pull/160.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/160'>view it on GitHub</a>.<img src='https://github.com/notifications/beacon/5479561__eyJzY29wZSI6Ik5ld3NpZXM6QmVhY29uIiwiZXhwaXJlcyI6MTcwNDkyMDE2NywiZGF0YSI6eyJpZCI6MjMzMjM1OTR9fQ==--a25f3c44f754eafc20b0b5cbb0b69acd5468de80.gif' height='1' width='1'></p>