+ if (!cached || !MSG_IS_FULLY_CACHED(cached->flags)) {
+ have_size = get_file_size_with_crs(filename);
+ if (cached && (cached->size <= have_size || !body)) {
+ procmsg_msginfo_free(cached);
+ ok = file_strip_crs(filename);
+ if (ok == 0 && cached && cached->size <= have_size) {
+ /* we have it all and stripped */
+ debug_print("...fully cached in fact; setting flag.\n");
+ procmsg_msginfo_set_flags(cached, MSG_FULLY_CACHED, 0);
+ }
+ return filename;
+ } else if (!cached && time(NULL) - get_file_mtime(filename) < 60) {
+ debug_print("message not cached and file recent, considering file complete\n");
+ ok = file_strip_crs(filename);
+ if (ok == 0)
+ return filename;
+ } else {
+ procmsg_msginfo_free(cached);
+ }
+ }
+ if (cached && MSG_IS_FULLY_CACHED(cached->flags)) {