lib/aerospike/utils/epoc.rb in aerospike-0.1.3 vs lib/aerospike/utils/epoc.rb in aerospike-0.1.5
- old
+ new
@@ -20,9 +20,16 @@
CITRUSLEAF_EPOCH = 1262304000
# Converts an Expiration time to TTL in seconds
def self.TTL(secs_from_citrus_leaf_epoc)
- CITRUSLEAF_EPOCH+secs_from_citrus_leaf_epoc - Time.now.to_i
+ if secs_from_citrus_leaf_epoc == 0
+ 0xFFFFFFFF
+ else
+ now = Time.now.to_i - CITRUSLEAF_EPOCH
+ # Record was not expired at server but if it looks expired at client
+ # because of delay or clock differences, present it as not-expired.
+ secs_from_citrus_leaf_epoc > now ? secs_from_citrus_leaf_epoc - now : 1
+ end
end
end # module