X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=common%2Fstringring.c;h=7784e1bcdc40600a87d4e4d4f243f634bca1132c;hb=d67dd1bf5a247e20141b9907f5a452da73624235;hp=5f7101ab2489aa1f146872a263c01d527d6ae5a1;hpb=d256c26b209489efece29717898f18fd511e66a5;p=blerg.git diff --git a/common/stringring.c b/common/stringring.c index 5f7101a..7784e1b 100644 --- a/common/stringring.c +++ b/common/stringring.c @@ -152,6 +152,21 @@ int stringring_remove_index(struct stringring *sr, int idx) { return ret; } +int stringring_touch(struct stringring *sr, const char *data) { + STRINGRING_DATA_CHECK(); + int ret, idx; + + flock(sr->fd, LOCK_EX); + idx = stringring_find_unlocked(sr, data, 0); + ret = idx >= 0; + if (ret) { + sr->sb->entries[idx].timestamp = time(NULL); + } + flock(sr->fd, LOCK_UN); + + return ret; +} + int stringring_remove(struct stringring *sr, const char *data) { STRINGRING_DATA_CHECK(); int ret;