Ignore:
Timestamp:
15/11/13 09:06:45 (6 years ago)
Author:
fielding@…
Message:

Explain the value 2147483648 in delta-seconds, reduce the MUST implement as 31 bits to an ought (not valid use of 2119 terms), and remove unimplemented requirement that sender MUST NOT generate a value greater than 2147483648; see #512

File:
1 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/p6-cache.xml

    r2492 r2494  
    213213</artwork></figure>
    214214<t>
    215    If a cache receives a delta-seconds value larger than the largest
    216    positive integer it can represent, or if any of its subsequent calculations
    217    overflows, the cache &MUST; consider the value to be 2147483648
    218    (2<x:sup>31</x:sup>). A recipient parsing a delta-seconds value &MUST; use
    219    an arithmetic type of at least 31 bits of range, and a sender &MUST-NOT;
    220    generate delta-seconds with a value greater than 2147483648.
    221 </t>
    222 <t>
    223    Note that this value (2147483648) might cause implementation issues on some
    224    platforms (in particular, those that represent INT_MAX as
    225    2<x:sup>31</x:sup>-1), and therefore ought to be handled carefully.
    226 </t>
     215   A recipient parsing a delta-seconds value and converting it to binary form
     216   ought to use an arithmetic type of at least 31 bits of non-negative integer
     217   range.
     218   If a cache receives a delta-seconds value greater than the greatest integer
     219   it can represent, or if any of its subsequent calculations overflows,
     220   the cache &MUST; consider the value to be either 2147483648
     221   (2<x:sup>31</x:sup>) or the greatest positive integer it can conveniently
     222   represent.
     223</t>
     224<x:note>
     225   <t>
     226       &Note; The value 2147483648 is here for historical reasons, effectively
     227       represents infinity (over 68 years), and does not need to be stored in
     228       binary form; an implementation could produce it as a canned string if
     229       any overflow occurs, even if the calculations are performed with an
     230       arithmetic type incapable of directly representing that number.
     231       What matters here is that an overflow be detected and not treated as a
     232       negative value in later calculations.
     233   </t>
     234</x:note>
    227235</section>
    228236
Note: See TracChangeset for help on using the changeset viewer.