--- a/src/internfile/internfile.cpp
+++ b/src/internfile/internfile.cpp
@@ -158,16 +158,24 @@
// identification, then do the rest with the temp file.
list<string>ucmd;
if (m_cfg->getUncompressor(l_mime, ucmd)) {
- if (!uncompressfile(m_cfg, m_fn, ucmd, m_tdir, m_tfile)) {
- return;
+ // Check for compressed size limit
+ int maxkbs = -1;
+ if (!m_cfg->getConfParam("compressedfilemaxkbs", &maxkbs) ||
+ maxkbs < 0 || !stp || int(stp->st_size / 1024) < maxkbs) {
+ if (!uncompressfile(m_cfg, m_fn, ucmd, m_tdir, m_tfile)) {
+ return;
+ }
+ LOGDEB1(("internfile: after ucomp: m_tdir %s, tfile %s\n",
+ m_tdir.c_str(), m_tfile.c_str()));
+ m_fn = m_tfile;
+ // Note: still using the original file's stat. right ?
+ l_mime = mimetype(m_fn, stp, m_cfg, usfci);
+ if (l_mime.empty() && imime)
+ l_mime = *imime;
+ } else {
+ LOGINFO(("internfile: %s over size limit %d kbs\n",
+ m_fn.c_str(), maxkbs));
}
- LOGDEB1(("internfile: after ucomp: m_tdir %s, tfile %s\n",
- m_tdir.c_str(), m_tfile.c_str()));
- m_fn = m_tfile;
- // Note: still using the original file's stat. right ?
- l_mime = mimetype(m_fn, stp, m_cfg, usfci);
- if (l_mime.empty() && imime)
- l_mime = *imime;
}
}