Next Previous Contents

23. File Formats

23.1 swap.state

NOTE: this information is current as of version 2.2.STABLE4.

A swap.state entry is defined by the storeSwapLogData structure, and has the following elements:

struct _storeSwapLogData {
    char op;
    int swap_file_number;
    time_t timestamp;
    time_t lastref;
    time_t expires;
    time_t lastmod;
    size_t swap_file_sz;
    u_short refcount;
    u_short flags;
    unsigned char key[MD5_DIGEST_CHARS];
};

op

Either SWAP_LOG_ADD (1) when an object is added to the disk storage, or SWAP_LOG_DEL (2) when an object is deleted.

swap_file_number

The 32-bit file number which maps to a pathname. Only the low 24-bits are relevant. The high 8-bits are used as an index to an array of storage directories, and are set at run time because the order of storage directories may change over time.

timestamp

A 32-bit Unix time value that represents the time when the origin server generated this response. If the response has a valid Date: header, this timestamp corresponds to that time. Otherwise, it is set to the Squid process time when the response is read (as soon as the end of headers are found).

lastref

The last time that a client requested this object. Strictly speaking, this time is set whenver the StoreEntry is locked (via storeLockObject()).

expires

The value of the response's Expires: header, if any. If the response does not have an Expires: header, this is set to -1. If the response has an invalid (unparseable) Expires: header, it is also set to -1. There are some cases where Squid sets expires to -2. This happens for the internal ``netdb'' object and for FTP URL responses.

lastmod

The value of the response's Last-modified: header, if any. This is set to -1 if there is no Last-modified: header, or if it is unparseable.

swap_file_sz

This is the number of bytes that the object occupies on disk. It includes the Squid ``swap file header''.

refcount

The number of times that this object has been accessed (referenced). Since its a 16-bit quantity, it is susceptible to overflow if a single object is accessed 65,536 times before being replaced.

flags

A copy of the StoreEntry flags field. Used as a sanity check when rebuilding the cache at startup. Objects that have the KEY_PRIVATE flag set are not added back to the cache.

key

The 128-bit MD5 hash for this object.

Note that storeSwapLogData entries are written in native machine byte order. They are not necessarily portable across architectures.


Next Previous Contents