|
|
|
@ -9,13 +9,11 @@ int etag_is_equal(buffer *etag, const char *matches) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int etag_create(buffer *etag, struct stat *st) {
|
|
|
|
|
buffer_copy_string_len(etag, CONST_STR_LEN("\""));
|
|
|
|
|
buffer_append_off_t(etag, st->st_ino);
|
|
|
|
|
buffer_copy_off_t(etag, st->st_ino);
|
|
|
|
|
buffer_append_string_len(etag, CONST_STR_LEN("-"));
|
|
|
|
|
buffer_append_off_t(etag, st->st_size);
|
|
|
|
|
buffer_append_string_len(etag, CONST_STR_LEN("-"));
|
|
|
|
|
buffer_append_long(etag, st->st_mtime);
|
|
|
|
|
buffer_append_string_len(etag, CONST_STR_LEN("\""));
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
@ -26,7 +24,9 @@ int etag_mutate(buffer *mut, buffer *etag) {
|
|
|
|
|
for (h=0, i=0; i < etag->used; ++i) h = (h<<5)^(h>>27)^(etag->ptr[i]);
|
|
|
|
|
|
|
|
|
|
buffer_reset(mut);
|
|
|
|
|
buffer_copy_long(mut, h);
|
|
|
|
|
buffer_copy_string_len(mut, CONST_STR_LEN("\""));
|
|
|
|
|
buffer_append_long(mut, h);
|
|
|
|
|
buffer_append_string_len(mut, CONST_STR_LEN("\""));
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|