From f06ec9d2324363ceaaf7249072ec178b940795f7 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 2 Aug 2019 17:36:46 +0100 Subject: [PATCH] [Refactor] Move mime types to a lua_mime library --- lualib/lua_mime.lua | 651 +++++++++++++++++++++++++++++++++ src/plugins/lua/mime_types.lua | 650 +------------------------------- 2 files changed, 660 insertions(+), 641 deletions(-) diff --git a/lualib/lua_mime.lua b/lualib/lua_mime.lua index 09c8bf82a..f3fe46c4e 100644 --- a/lualib/lua_mime.lua +++ b/lualib/lua_mime.lua @@ -236,4 +236,655 @@ exports.add_text_footer = function(task, html_footer, text_footer) return res end +-- All mime extensions with corresponding content types +exports.full_extensions_map = { + {"323", "text/h323"}, + {"3g2", "video/3gpp2"}, + {"3gp", "video/3gpp"}, + {"3gp2", "video/3gpp2"}, + {"3gpp", "video/3gpp"}, + {"7z", "application/x-7z-compressed"}, + {"aa", "audio/audible"}, + {"AAC", "audio/aac"}, + {"aaf", "application/octet-stream"}, + {"aax", "audio/vnd.audible.aax"}, + {"ac3", "audio/ac3"}, + {"aca", "application/octet-stream"}, + {"accda", "application/msaccess.addin"}, + {"accdb", "application/msaccess"}, + {"accdc", "application/msaccess.cab"}, + {"accde", "application/msaccess"}, + {"accdr", "application/msaccess.runtime"}, + {"accdt", "application/msaccess"}, + {"accdw", "application/msaccess.webapplication"}, + {"accft", "application/msaccess.ftemplate"}, + {"acx", "application/internet-property-stream"}, + {"AddIn", "text/xml"}, + {"ade", "application/msaccess"}, + {"adobebridge", "application/x-bridge-url"}, + {"adp", "application/msaccess"}, + {"ADT", "audio/vnd.dlna.adts"}, + {"ADTS", "audio/aac"}, + {"afm", "application/octet-stream"}, + {"ai", "application/postscript"}, + {"aif", "audio/aiff"}, + {"aifc", "audio/aiff"}, + {"aiff", "audio/aiff"}, + {"air", "application/vnd.adobe.air-application-installer-package+zip"}, + {"amc", "application/mpeg"}, + {"anx", "application/annodex"}, + {"apk", "application/vnd.android.package-archive" }, + {"application", "application/x-ms-application"}, + {"art", "image/x-jg"}, + {"asa", "application/xml"}, + {"asax", "application/xml"}, + {"ascx", "application/xml"}, + {"asd", "application/octet-stream"}, + {"asf", "video/x-ms-asf"}, + {"ashx", "application/xml"}, + {"asi", "application/octet-stream"}, + {"asm", "text/plain"}, + {"asmx", "application/xml"}, + {"aspx", "application/xml"}, + {"asr", "video/x-ms-asf"}, + {"asx", "video/x-ms-asf"}, + {"atom", "application/atom+xml"}, + {"au", "audio/basic"}, + {"avi", "video/x-msvideo"}, + {"axa", "audio/annodex"}, + {"axs", "application/olescript"}, + {"axv", "video/annodex"}, + {"bas", "text/plain"}, + {"bcpio", "application/x-bcpio"}, + {"bin", "application/octet-stream"}, + {"bmp", "image/bmp"}, + {"c", "text/plain"}, + {"cab", "application/octet-stream"}, + {"caf", "audio/x-caf"}, + {"calx", "application/vnd.ms-office.calx"}, + {"cat", "application/vnd.ms-pki.seccat"}, + {"cc", "text/plain"}, + {"cd", "text/plain"}, + {"cdda", "audio/aiff"}, + {"cdf", "application/x-cdf"}, + {"cer", "application/x-x509-ca-cert"}, + {"cfg", "text/plain"}, + {"chm", "application/octet-stream"}, + {"class", "application/x-java-applet"}, + {"clp", "application/x-msclip"}, + {"cmd", "text/plain"}, + {"cmx", "image/x-cmx"}, + {"cnf", "text/plain"}, + {"cod", "image/cis-cod"}, + {"config", "application/xml"}, + {"contact", "text/x-ms-contact"}, + {"coverage", "application/xml"}, + {"cpio", "application/x-cpio"}, + {"cpp", "text/plain"}, + {"crd", "application/x-mscardfile"}, + {"crl", "application/pkix-crl"}, + {"crt", "application/x-x509-ca-cert"}, + {"cs", "text/plain"}, + {"csdproj", "text/plain"}, + {"csh", "application/x-csh"}, + {"csproj", "text/plain"}, + {"css", "text/css"}, + {"csv", {"application/vnd.ms-excel", "text/csv", "text/plain"}}, + {"cur", "application/octet-stream"}, + {"cxx", "text/plain"}, + {"dat", {"application/octet-stream", "application/ms-tnef"}}, + {"datasource", "application/xml"}, + {"dbproj", "text/plain"}, + {"dcr", "application/x-director"}, + {"def", "text/plain"}, + {"deploy", "application/octet-stream"}, + {"der", "application/x-x509-ca-cert"}, + {"dgml", "application/xml"}, + {"dib", "image/bmp"}, + {"dif", "video/x-dv"}, + {"dir", "application/x-director"}, + {"disco", "text/xml"}, + {"divx", "video/divx"}, + {"dll", "application/x-msdownload"}, + {"dll.config", "text/xml"}, + {"dlm", "text/dlm"}, + {"doc", "application/msword"}, + {"docm", "application/vnd.ms-word.document.macroEnabled.12"}, + {"docx", { + "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + "application/msword", + "application/vnd.ms-word.document.12", + "application/octet-stream", + }}, + {"dot", "application/msword"}, + {"dotm", "application/vnd.ms-word.template.macroEnabled.12"}, + {"dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"}, + {"dsp", "application/octet-stream"}, + {"dsw", "text/plain"}, + {"dtd", "text/xml"}, + {"dtsConfig", "text/xml"}, + {"dv", "video/x-dv"}, + {"dvi", "application/x-dvi"}, + {"dwf", "drawing/x-dwf"}, + {"dwg", {"application/acad", "image/vnd.dwg"}}, + {"dwp", "application/octet-stream"}, + {"dxf", "application/x-dxf" }, + {"dxr", "application/x-director"}, + {"eml", "message/rfc822"}, + {"emz", "application/octet-stream"}, + {"eot", "application/vnd.ms-fontobject"}, + {"eps", "application/postscript"}, + {"etl", "application/etl"}, + {"etx", "text/x-setext"}, + {"evy", "application/envoy"}, + {"exe", { + "application/x-dosexec", + "application/x-msdownload", + "application/x-executable", + }}, + {"exe.config", "text/xml"}, + {"fdf", "application/vnd.fdf"}, + {"fif", "application/fractals"}, + {"filters", "application/xml"}, + {"fla", "application/octet-stream"}, + {"flac", "audio/flac"}, + {"flr", "x-world/x-vrml"}, + {"flv", "video/x-flv"}, + {"fsscript", "application/fsharp-script"}, + {"fsx", "application/fsharp-script"}, + {"generictest", "application/xml"}, + {"gif", "image/gif"}, + {"gpx", "application/gpx+xml"}, + {"group", "text/x-ms-group"}, + {"gsm", "audio/x-gsm"}, + {"gtar", "application/x-gtar"}, + {"gz", {"application/gzip", "application/x-gzip"}}, + {"h", "text/plain"}, + {"hdf", "application/x-hdf"}, + {"hdml", "text/x-hdml"}, + {"hhc", "application/x-oleobject"}, + {"hhk", "application/octet-stream"}, + {"hhp", "application/octet-stream"}, + {"hlp", "application/winhlp"}, + {"hpp", "text/plain"}, + {"hqx", "application/mac-binhex40"}, + {"hta", "application/hta"}, + {"htc", "text/x-component"}, + {"htm", "text/html"}, + {"html", "text/html"}, + {"htt", "text/webviewhtml"}, + {"hxa", "application/xml"}, + {"hxc", "application/xml"}, + {"hxd", "application/octet-stream"}, + {"hxe", "application/xml"}, + {"hxf", "application/xml"}, + {"hxh", "application/octet-stream"}, + {"hxi", "application/octet-stream"}, + {"hxk", "application/xml"}, + {"hxq", "application/octet-stream"}, + {"hxr", "application/octet-stream"}, + {"hxs", "application/octet-stream"}, + {"hxt", "text/html"}, + {"hxv", "application/xml"}, + {"hxw", "application/octet-stream"}, + {"hxx", "text/plain"}, + {"i", "text/plain"}, + {"ico", "image/x-icon"}, + {"ics", {"text/calendar", "application/octet-stream"}}, + {"idl", "text/plain"}, + {"ief", "image/ief"}, + {"iii", "application/x-iphone"}, + {"inc", "text/plain"}, + {"inf", "application/octet-stream"}, + {"ini", "text/plain"}, + {"inl", "text/plain"}, + {"ins", "application/x-internet-signup"}, + {"ipa", "application/x-itunes-ipa"}, + {"ipg", "application/x-itunes-ipg"}, + {"ipproj", "text/plain"}, + {"ipsw", "application/x-itunes-ipsw"}, + {"iqy", "text/x-ms-iqy"}, + {"isp", "application/x-internet-signup"}, + {"ite", "application/x-itunes-ite"}, + {"itlp", "application/x-itunes-itlp"}, + {"itms", "application/x-itunes-itms"}, + {"itpc", "application/x-itunes-itpc"}, + {"IVF", "video/x-ivf"}, + {"jar", "application/java-archive"}, + {"java", "application/octet-stream"}, + {"jck", "application/liquidmotion"}, + {"jcz", "application/liquidmotion"}, + {"jfif", "image/pjpeg"}, + {"jnlp", "application/x-java-jnlp-file"}, + {"jpb", "application/octet-stream"}, + {"jpe", {"image/jpeg", "image/pjpeg"}}, + {"jpeg", {"image/jpeg", "image/pjpeg"}}, + {"jpg", {"image/jpeg", "image/pjpeg"}}, + {"js", "application/javascript"}, + {"json", "application/json"}, + {"jsx", "text/jscript"}, + {"jsxbin", "text/plain"}, + {"latex", "application/x-latex"}, + {"library-ms", "application/windows-library+xml"}, + {"lit", "application/x-ms-reader"}, + {"loadtest", "application/xml"}, + {"lpk", "application/octet-stream"}, + {"lsf", "video/x-la-asf"}, + {"lst", "text/plain"}, + {"lsx", "video/x-la-asf"}, + {"lzh", "application/octet-stream"}, + {"m13", "application/x-msmediaview"}, + {"m14", "application/x-msmediaview"}, + {"m1v", "video/mpeg"}, + {"m2t", "video/vnd.dlna.mpeg-tts"}, + {"m2ts", "video/vnd.dlna.mpeg-tts"}, + {"m2v", "video/mpeg"}, + {"m3u", "audio/x-mpegurl"}, + {"m3u8", "audio/x-mpegurl"}, + {"m4a", {"audio/m4a", "audio/x-m4a"}}, + {"m4b", "audio/m4b"}, + {"m4p", "audio/m4p"}, + {"m4r", "audio/x-m4r"}, + {"m4v", "video/x-m4v"}, + {"mac", "image/x-macpaint"}, + {"mak", "text/plain"}, + {"man", "application/x-troff-man"}, + {"manifest", "application/x-ms-manifest"}, + {"map", "text/plain"}, + {"master", "application/xml"}, + {"mbox", "application/mbox"}, + {"mda", "application/msaccess"}, + {"mdb", "application/x-msaccess"}, + {"mde", "application/msaccess"}, + {"mdp", "application/octet-stream"}, + {"me", "application/x-troff-me"}, + {"mfp", "application/x-shockwave-flash"}, + {"mht", "message/rfc822"}, + {"mhtml", "message/rfc822"}, + {"mid", "audio/mid"}, + {"midi", "audio/mid"}, + {"mix", "application/octet-stream"}, + {"mk", "text/plain"}, + {"mmf", "application/x-smaf"}, + {"mno", "text/xml"}, + {"mny", "application/x-msmoney"}, + {"mod", "video/mpeg"}, + {"mov", "video/quicktime"}, + {"movie", "video/x-sgi-movie"}, + {"mp2", "video/mpeg"}, + {"mp2v", "video/mpeg"}, + {"mp3", "audio/mpeg"}, + {"mp4", "video/mp4"}, + {"mp4v", "video/mp4"}, + {"mpa", "video/mpeg"}, + {"mpe", "video/mpeg"}, + {"mpeg", "video/mpeg"}, + {"mpf", "application/vnd.ms-mediapackage"}, + {"mpg", "video/mpeg"}, + {"mpp", "application/vnd.ms-project"}, + {"mpv2", "video/mpeg"}, + {"mqv", "video/quicktime"}, + {"ms", "application/x-troff-ms"}, + {"msg", "application/vnd.ms-outlook"}, + {"msi", {"application/x-msi", "application/octet-stream"}}, + {"mso", "application/octet-stream"}, + {"mts", "video/vnd.dlna.mpeg-tts"}, + {"mtx", "application/xml"}, + {"mvb", "application/x-msmediaview"}, + {"mvc", "application/x-miva-compiled"}, + {"mxp", "application/x-mmxp"}, + {"nc", "application/x-netcdf"}, + {"nsc", "video/x-ms-asf"}, + {"nws", "message/rfc822"}, + {"ocx", "application/octet-stream"}, + {"oda", "application/oda"}, + {"odb", "application/vnd.oasis.opendocument.database"}, + {"odc", "application/vnd.oasis.opendocument.chart"}, + {"odf", "application/vnd.oasis.opendocument.formula"}, + {"odg", "application/vnd.oasis.opendocument.graphics"}, + {"odh", "text/plain"}, + {"odi", "application/vnd.oasis.opendocument.image"}, + {"odl", "text/plain"}, + {"odm", "application/vnd.oasis.opendocument.text-master"}, + {"odp", "application/vnd.oasis.opendocument.presentation"}, + {"ods", "application/vnd.oasis.opendocument.spreadsheet"}, + {"odt", "application/vnd.oasis.opendocument.text"}, + {"oga", "audio/ogg"}, + {"ogg", "audio/ogg"}, + {"ogv", "video/ogg"}, + {"ogx", "application/ogg"}, + {"one", "application/onenote"}, + {"onea", "application/onenote"}, + {"onepkg", "application/onenote"}, + {"onetmp", "application/onenote"}, + {"onetoc", "application/onenote"}, + {"onetoc2", "application/onenote"}, + {"opus", "audio/ogg"}, + {"orderedtest", "application/xml"}, + {"osdx", "application/opensearchdescription+xml"}, + {"otf", "application/font-sfnt"}, + {"otg", "application/vnd.oasis.opendocument.graphics-template"}, + {"oth", "application/vnd.oasis.opendocument.text-web"}, + {"otp", "application/vnd.oasis.opendocument.presentation-template"}, + {"ots", "application/vnd.oasis.opendocument.spreadsheet-template"}, + {"ott", "application/vnd.oasis.opendocument.text-template"}, + {"oxt", "application/vnd.openofficeorg.extension"}, + {"p10", "application/pkcs10"}, + {"p12", "application/x-pkcs12"}, + {"p7b", "application/x-pkcs7-certificates"}, + {"p7c", "application/pkcs7-mime"}, + {"p7m", "application/pkcs7-mime"}, + {"p7r", "application/x-pkcs7-certreqresp"}, + {"p7s", {"application/pkcs7-signature", "text/plain"}}, + {"pbm", "image/x-portable-bitmap"}, + {"pcast", "application/x-podcast"}, + {"pct", "image/pict"}, + {"pcx", "application/octet-stream"}, + {"pcz", "application/octet-stream"}, + {"pdf", "application/pdf"}, + {"pfb", "application/octet-stream"}, + {"pfm", "application/octet-stream"}, + {"pfx", "application/x-pkcs12"}, + {"pgm", "image/x-portable-graymap"}, + {"pic", "image/pict"}, + {"pict", "image/pict"}, + {"pkgdef", "text/plain"}, + {"pkgundef", "text/plain"}, + {"pko", "application/vnd.ms-pki.pko"}, + {"pls", "audio/scpls"}, + {"pma", "application/x-perfmon"}, + {"pmc", "application/x-perfmon"}, + {"pml", "application/x-perfmon"}, + {"pmr", "application/x-perfmon"}, + {"pmw", "application/x-perfmon"}, + {"png", "image/png"}, + {"pnm", "image/x-portable-anymap"}, + {"pnt", "image/x-macpaint"}, + {"pntg", "image/x-macpaint"}, + {"pnz", "image/png"}, + {"pot", "application/vnd.ms-powerpoint"}, + {"potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"}, + {"potx", "application/vnd.openxmlformats-officedocument.presentationml.template"}, + {"ppa", "application/vnd.ms-powerpoint"}, + {"ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"}, + {"ppm", "image/x-portable-pixmap"}, + {"pps", "application/vnd.ms-powerpoint"}, + {"ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"}, + {"ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"}, + {"ppt", "application/vnd.ms-powerpoint"}, + {"pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"}, + {"pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"}, + {"prf", "application/pics-rules"}, + {"prm", "application/octet-stream"}, + {"prx", "application/octet-stream"}, + {"ps", "application/postscript"}, + {"psc1", "application/PowerShell"}, + {"psd", "application/octet-stream"}, + {"psess", "application/xml"}, + {"psm", "application/octet-stream"}, + {"psp", "application/octet-stream"}, + {"pst", "application/vnd.ms-outlook"}, + {"pub", "application/x-mspublisher"}, + {"pwz", "application/vnd.ms-powerpoint"}, + {"qht", "text/x-html-insertion"}, + {"qhtm", "text/x-html-insertion"}, + {"qt", "video/quicktime"}, + {"qti", "image/x-quicktime"}, + {"qtif", "image/x-quicktime"}, + {"qtl", "application/x-quicktimeplayer"}, + {"qxd", "application/octet-stream"}, + {"ra", "audio/x-pn-realaudio"}, + {"ram", "audio/x-pn-realaudio"}, + {"rar", {"application/x-rar-compressed", "application/x-rar", "application/octet-stream"}}, + {"ras", "image/x-cmu-raster"}, + {"rat", "application/rat-file"}, + {"rc", "text/plain"}, + {"rc2", "text/plain"}, + {"rct", "text/plain"}, + {"rdlc", "application/xml"}, + {"reg", "text/plain"}, + {"resx", "application/xml"}, + {"rf", "image/vnd.rn-realflash"}, + {"rgb", "image/x-rgb"}, + {"rgs", "text/plain"}, + {"rm", "application/vnd.rn-realmedia"}, + {"rmi", "audio/mid"}, + {"rmp", "application/vnd.rn-rn_music_package"}, + {"roff", "application/x-troff"}, + {"rpm", "audio/x-pn-realaudio-plugin"}, + {"rqy", "text/x-ms-rqy"}, + {"rtf", {"application/rtf","application/msword", "text/richtext", "text/rtf"}}, + {"rtx", "text/richtext"}, + {"rvt", "application/octet-stream" }, + {"ruleset", "application/xml"}, + {"s", "text/plain"}, + {"safariextz", "application/x-safari-safariextz"}, + {"scd", "application/x-msschedule"}, + {"scr", "text/plain"}, + {"sct", "text/scriptlet"}, + {"sd2", "audio/x-sd2"}, + {"sdp", "application/sdp"}, + {"sea", "application/octet-stream"}, + {"searchConnector-ms", "application/windows-search-connector+xml"}, + {"setpay", "application/set-payment-initiation"}, + {"setreg", "application/set-registration-initiation"}, + {"settings", "application/xml"}, + {"sgimb", "application/x-sgimb"}, + {"sgml", "text/sgml"}, + {"sh", "application/x-sh"}, + {"shar", "application/x-shar"}, + {"shtml", "text/html"}, + {"sit", "application/x-stuffit"}, + {"sitemap", "application/xml"}, + {"skin", "application/xml"}, + {"skp", "application/x-koan" }, + {"sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"}, + {"sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"}, + {"slk", "application/vnd.ms-excel"}, + {"sln", "text/plain"}, + {"slupkg-ms", "application/x-ms-license"}, + {"smd", "audio/x-smd"}, + {"smi", "application/octet-stream"}, + {"smx", "audio/x-smd"}, + {"smz", "audio/x-smd"}, + {"snd", "audio/basic"}, + {"snippet", "application/xml"}, + {"snp", "application/octet-stream"}, + {"sol", "text/plain"}, + {"sor", "text/plain"}, + {"spc", "application/x-pkcs7-certificates"}, + {"spl", "application/futuresplash"}, + {"spx", "audio/ogg"}, + {"src", "application/x-wais-source"}, + {"srf", "text/plain"}, + {"SSISDeploymentManifest", "text/xml"}, + {"ssm", "application/streamingmedia"}, + {"sst", "application/vnd.ms-pki.certstore"}, + {"stl", "application/vnd.ms-pki.stl"}, + {"sv4cpio", "application/x-sv4cpio"}, + {"sv4crc", "application/x-sv4crc"}, + {"svc", "application/xml"}, + {"svg", "image/svg+xml"}, + {"swf", "application/x-shockwave-flash"}, + {"step", "application/step"}, + {"stp", "application/step"}, + {"t", "application/x-troff"}, + {"tar", "application/x-tar"}, + {"tcl", "application/x-tcl"}, + {"testrunconfig", "application/xml"}, + {"testsettings", "application/xml"}, + {"tex", "application/x-tex"}, + {"texi", "application/x-texinfo"}, + {"texinfo", "application/x-texinfo"}, + {"tgz", "application/x-compressed"}, + {"thmx", "application/vnd.ms-officetheme"}, + {"thn", "application/octet-stream"}, + {"tif", {"image/tiff", "application/octet-stream"}}, + {"tiff", "image/tiff"}, + {"tlh", "text/plain"}, + {"tli", "text/plain"}, + {"toc", "application/octet-stream"}, + {"tr", "application/x-troff"}, + {"trm", "application/x-msterminal"}, + {"trx", "application/xml"}, + {"ts", "video/vnd.dlna.mpeg-tts"}, + {"tsv", "text/tab-separated-values"}, + {"ttf", "application/font-sfnt"}, + {"tts", "video/vnd.dlna.mpeg-tts"}, + {"txt", "text/plain"}, + {"u32", "application/octet-stream"}, + {"uls", "text/iuls"}, + {"user", "text/plain"}, + {"ustar", "application/x-ustar"}, + {"vb", "text/plain"}, + {"vbdproj", "text/plain"}, + {"vbk", "video/mpeg"}, + {"vbproj", "text/plain"}, + {"vbs", "text/vbscript"}, + {"vcf", {"text/x-vcard", "text/vcard"}}, + {"vcproj", "application/xml"}, + {"vcs", "text/plain"}, + {"vcxproj", "application/xml"}, + {"vddproj", "text/plain"}, + {"vdp", "text/plain"}, + {"vdproj", "text/plain"}, + {"vdx", "application/vnd.ms-visio.viewer"}, + {"vml", "text/xml"}, + {"vscontent", "application/xml"}, + {"vsct", "text/xml"}, + {"vsd", "application/vnd.visio"}, + {"vsi", "application/ms-vsi"}, + {"vsix", "application/vsix"}, + {"vsixlangpack", "text/xml"}, + {"vsixmanifest", "text/xml"}, + {"vsmdi", "application/xml"}, + {"vspscc", "text/plain"}, + {"vss", "application/vnd.visio"}, + {"vsscc", "text/plain"}, + {"vssettings", "text/xml"}, + {"vssscc", "text/plain"}, + {"vst", "application/vnd.visio"}, + {"vstemplate", "text/xml"}, + {"vsto", "application/x-ms-vsto"}, + {"vsw", "application/vnd.visio"}, + {"vsx", "application/vnd.visio"}, + {"vtx", "application/vnd.visio"}, + {"wav", "audio/wav"}, + {"wave", "audio/wav"}, + {"wax", "audio/x-ms-wax"}, + {"wbk", "application/msword"}, + {"wbmp", "image/vnd.wap.wbmp"}, + {"wcm", "application/vnd.ms-works"}, + {"wdb", "application/vnd.ms-works"}, + {"wdp", "image/vnd.ms-photo"}, + {"webarchive", "application/x-safari-webarchive"}, + {"webm", "video/webm"}, + {"webp", "image/webp"}, + {"webtest", "application/xml"}, + {"wiq", "application/xml"}, + {"wiz", "application/msword"}, + {"wks", "application/vnd.ms-works"}, + {"WLMP", "application/wlmoviemaker"}, + {"wlpginstall", "application/x-wlpg-detect"}, + {"wlpginstall3", "application/x-wlpg3-detect"}, + {"wm", "video/x-ms-wm"}, + {"wma", "audio/x-ms-wma"}, + {"wmd", "application/x-ms-wmd"}, + {"wmf", "application/x-msmetafile"}, + {"wml", "text/vnd.wap.wml"}, + {"wmlc", "application/vnd.wap.wmlc"}, + {"wmls", "text/vnd.wap.wmlscript"}, + {"wmlsc", "application/vnd.wap.wmlscriptc"}, + {"wmp", "video/x-ms-wmp"}, + {"wmv", "video/x-ms-wmv"}, + {"wmx", "video/x-ms-wmx"}, + {"wmz", "application/x-ms-wmz"}, + {"woff", "application/font-woff"}, + {"wpl", "application/vnd.ms-wpl"}, + {"wps", "application/vnd.ms-works"}, + {"wri", "application/x-mswrite"}, + {"wrl", "x-world/x-vrml"}, + {"wrz", "x-world/x-vrml"}, + {"wsc", "text/scriptlet"}, + {"wsdl", "text/xml"}, + {"wvx", "video/x-ms-wvx"}, + {"x", "application/directx"}, + {"xaf", "x-world/x-vrml"}, + {"xaml", "application/xaml+xml"}, + {"xap", "application/x-silverlight-app"}, + {"xbap", "application/x-ms-xbap"}, + {"xbm", "image/x-xbitmap"}, + {"xdr", "text/plain"}, + {"xht", "application/xhtml+xml"}, + {"xhtml", "application/xhtml+xml"}, + {"xla", "application/vnd.ms-excel"}, + {"xlam", "application/vnd.ms-excel.addin.macroEnabled.12"}, + {"xlc", "application/vnd.ms-excel"}, + {"xld", "application/vnd.ms-excel"}, + {"xlk", "application/vnd.ms-excel"}, + {"xll", "application/vnd.ms-excel"}, + {"xlm", "application/vnd.ms-excel"}, + {"xls", { + "application/excel", + "application/vnd.ms-excel", + "application/vnd.ms-office", + "application/x-excel", + "application/octet-stream" + }}, + {"xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"}, + {"xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"}, + {"xlsx", { + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "application/vnd.ms-excel.12", + "application/octet-stream" + }}, + {"xlt", "application/vnd.ms-excel"}, + {"xltm", "application/vnd.ms-excel.template.macroEnabled.12"}, + {"xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"}, + {"xlw", "application/vnd.ms-excel"}, + {"xml", {"application/xml", "text/xml", "application/octet-stream"}}, + {"xmp", "application/octet-stream" }, + {"xmta", "application/xml"}, + {"xof", "x-world/x-vrml"}, + {"XOML", "text/plain"}, + {"xpm", "image/x-xpixmap"}, + {"xps", "application/vnd.ms-xpsdocument"}, + {"xrm-ms", "text/xml"}, + {"xsc", "application/xml"}, + {"xsd", "text/xml"}, + {"xsf", "text/xml"}, + {"xsl", "text/xml"}, + {"xslt", "text/xml"}, + {"xsn", "application/octet-stream"}, + {"xss", "application/xml"}, + {"xspf", "application/xspf+xml"}, + {"xtp", "application/octet-stream"}, + {"xwd", "image/x-xwindowdump"}, + {"z", "application/x-compress"}, + {"zip", { + "application/zip", + "application/x-zip-compressed", + "application/octet-stream" + }}, + {"zlib", "application/zlib"}, +} + +-- Used to match extension by content type +exports.reversed_extensions_map = {} + +if #exports.reversed_extensions_map == 0 then + -- Fill reversed extensions map + for _,pair in ipairs(exports.full_extensions_map) do + local ext, ct = pair[1], pair[2] + + if type(ct) == 'table' then + for _,rct in ipairs(ct) do + exports.reversed_extensions_map[rct] = ext + end + else + exports.reversed_extensions_map[ct] = ext + end + end +end + return exports \ No newline at end of file diff --git a/src/plugins/lua/mime_types.lua b/src/plugins/lua/mime_types.lua index 55353394a..d571f679a 100644 --- a/src/plugins/lua/mime_types.lua +++ b/src/plugins/lua/mime_types.lua @@ -23,6 +23,7 @@ local logger = require "rspamd_logger" local lua_util = require "lua_util" local rspamd_util = require "rspamd_util" local lua_maps = require "lua_maps" +local lua_mime = require "lua_mime" local fun = require "fun" local N = "mime_types" @@ -197,641 +198,6 @@ local settings = { local map = nil -local full_extensions_map = { - {"323", "text/h323"}, - {"3g2", "video/3gpp2"}, - {"3gp", "video/3gpp"}, - {"3gp2", "video/3gpp2"}, - {"3gpp", "video/3gpp"}, - {"7z", "application/x-7z-compressed"}, - {"aa", "audio/audible"}, - {"AAC", "audio/aac"}, - {"aaf", "application/octet-stream"}, - {"aax", "audio/vnd.audible.aax"}, - {"ac3", "audio/ac3"}, - {"aca", "application/octet-stream"}, - {"accda", "application/msaccess.addin"}, - {"accdb", "application/msaccess"}, - {"accdc", "application/msaccess.cab"}, - {"accde", "application/msaccess"}, - {"accdr", "application/msaccess.runtime"}, - {"accdt", "application/msaccess"}, - {"accdw", "application/msaccess.webapplication"}, - {"accft", "application/msaccess.ftemplate"}, - {"acx", "application/internet-property-stream"}, - {"AddIn", "text/xml"}, - {"ade", "application/msaccess"}, - {"adobebridge", "application/x-bridge-url"}, - {"adp", "application/msaccess"}, - {"ADT", "audio/vnd.dlna.adts"}, - {"ADTS", "audio/aac"}, - {"afm", "application/octet-stream"}, - {"ai", "application/postscript"}, - {"aif", "audio/aiff"}, - {"aifc", "audio/aiff"}, - {"aiff", "audio/aiff"}, - {"air", "application/vnd.adobe.air-application-installer-package+zip"}, - {"amc", "application/mpeg"}, - {"anx", "application/annodex"}, - {"apk", "application/vnd.android.package-archive" }, - {"application", "application/x-ms-application"}, - {"art", "image/x-jg"}, - {"asa", "application/xml"}, - {"asax", "application/xml"}, - {"ascx", "application/xml"}, - {"asd", "application/octet-stream"}, - {"asf", "video/x-ms-asf"}, - {"ashx", "application/xml"}, - {"asi", "application/octet-stream"}, - {"asm", "text/plain"}, - {"asmx", "application/xml"}, - {"aspx", "application/xml"}, - {"asr", "video/x-ms-asf"}, - {"asx", "video/x-ms-asf"}, - {"atom", "application/atom+xml"}, - {"au", "audio/basic"}, - {"avi", "video/x-msvideo"}, - {"axa", "audio/annodex"}, - {"axs", "application/olescript"}, - {"axv", "video/annodex"}, - {"bas", "text/plain"}, - {"bcpio", "application/x-bcpio"}, - {"bin", "application/octet-stream"}, - {"bmp", "image/bmp"}, - {"c", "text/plain"}, - {"cab", "application/octet-stream"}, - {"caf", "audio/x-caf"}, - {"calx", "application/vnd.ms-office.calx"}, - {"cat", "application/vnd.ms-pki.seccat"}, - {"cc", "text/plain"}, - {"cd", "text/plain"}, - {"cdda", "audio/aiff"}, - {"cdf", "application/x-cdf"}, - {"cer", "application/x-x509-ca-cert"}, - {"cfg", "text/plain"}, - {"chm", "application/octet-stream"}, - {"class", "application/x-java-applet"}, - {"clp", "application/x-msclip"}, - {"cmd", "text/plain"}, - {"cmx", "image/x-cmx"}, - {"cnf", "text/plain"}, - {"cod", "image/cis-cod"}, - {"config", "application/xml"}, - {"contact", "text/x-ms-contact"}, - {"coverage", "application/xml"}, - {"cpio", "application/x-cpio"}, - {"cpp", "text/plain"}, - {"crd", "application/x-mscardfile"}, - {"crl", "application/pkix-crl"}, - {"crt", "application/x-x509-ca-cert"}, - {"cs", "text/plain"}, - {"csdproj", "text/plain"}, - {"csh", "application/x-csh"}, - {"csproj", "text/plain"}, - {"css", "text/css"}, - {"csv", {"application/vnd.ms-excel", "text/csv", "text/plain"}}, - {"cur", "application/octet-stream"}, - {"cxx", "text/plain"}, - {"dat", {"application/octet-stream", "application/ms-tnef"}}, - {"datasource", "application/xml"}, - {"dbproj", "text/plain"}, - {"dcr", "application/x-director"}, - {"def", "text/plain"}, - {"deploy", "application/octet-stream"}, - {"der", "application/x-x509-ca-cert"}, - {"dgml", "application/xml"}, - {"dib", "image/bmp"}, - {"dif", "video/x-dv"}, - {"dir", "application/x-director"}, - {"disco", "text/xml"}, - {"divx", "video/divx"}, - {"dll", "application/x-msdownload"}, - {"dll.config", "text/xml"}, - {"dlm", "text/dlm"}, - {"doc", "application/msword"}, - {"docm", "application/vnd.ms-word.document.macroEnabled.12"}, - {"docx", { - "application/vnd.openxmlformats-officedocument.wordprocessingml.document", - "application/msword", - "application/vnd.ms-word.document.12", - "application/octet-stream", - }}, - {"dot", "application/msword"}, - {"dotm", "application/vnd.ms-word.template.macroEnabled.12"}, - {"dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"}, - {"dsp", "application/octet-stream"}, - {"dsw", "text/plain"}, - {"dtd", "text/xml"}, - {"dtsConfig", "text/xml"}, - {"dv", "video/x-dv"}, - {"dvi", "application/x-dvi"}, - {"dwf", "drawing/x-dwf"}, - {"dwg", {"application/acad", "image/vnd.dwg"}}, - {"dwp", "application/octet-stream"}, - {"dxf", "application/x-dxf" }, - {"dxr", "application/x-director"}, - {"eml", "message/rfc822"}, - {"emz", "application/octet-stream"}, - {"eot", "application/vnd.ms-fontobject"}, - {"eps", "application/postscript"}, - {"etl", "application/etl"}, - {"etx", "text/x-setext"}, - {"evy", "application/envoy"}, - {"exe", { - "application/x-dosexec", - "application/x-msdownload", - "application/x-executable", - }}, - {"exe.config", "text/xml"}, - {"fdf", "application/vnd.fdf"}, - {"fif", "application/fractals"}, - {"filters", "application/xml"}, - {"fla", "application/octet-stream"}, - {"flac", "audio/flac"}, - {"flr", "x-world/x-vrml"}, - {"flv", "video/x-flv"}, - {"fsscript", "application/fsharp-script"}, - {"fsx", "application/fsharp-script"}, - {"generictest", "application/xml"}, - {"gif", "image/gif"}, - {"gpx", "application/gpx+xml"}, - {"group", "text/x-ms-group"}, - {"gsm", "audio/x-gsm"}, - {"gtar", "application/x-gtar"}, - {"gz", {"application/gzip", "application/x-gzip"}}, - {"h", "text/plain"}, - {"hdf", "application/x-hdf"}, - {"hdml", "text/x-hdml"}, - {"hhc", "application/x-oleobject"}, - {"hhk", "application/octet-stream"}, - {"hhp", "application/octet-stream"}, - {"hlp", "application/winhlp"}, - {"hpp", "text/plain"}, - {"hqx", "application/mac-binhex40"}, - {"hta", "application/hta"}, - {"htc", "text/x-component"}, - {"htm", "text/html"}, - {"html", "text/html"}, - {"htt", "text/webviewhtml"}, - {"hxa", "application/xml"}, - {"hxc", "application/xml"}, - {"hxd", "application/octet-stream"}, - {"hxe", "application/xml"}, - {"hxf", "application/xml"}, - {"hxh", "application/octet-stream"}, - {"hxi", "application/octet-stream"}, - {"hxk", "application/xml"}, - {"hxq", "application/octet-stream"}, - {"hxr", "application/octet-stream"}, - {"hxs", "application/octet-stream"}, - {"hxt", "text/html"}, - {"hxv", "application/xml"}, - {"hxw", "application/octet-stream"}, - {"hxx", "text/plain"}, - {"i", "text/plain"}, - {"ico", "image/x-icon"}, - {"ics", {"text/calendar", "application/octet-stream"}}, - {"idl", "text/plain"}, - {"ief", "image/ief"}, - {"iii", "application/x-iphone"}, - {"inc", "text/plain"}, - {"inf", "application/octet-stream"}, - {"ini", "text/plain"}, - {"inl", "text/plain"}, - {"ins", "application/x-internet-signup"}, - {"ipa", "application/x-itunes-ipa"}, - {"ipg", "application/x-itunes-ipg"}, - {"ipproj", "text/plain"}, - {"ipsw", "application/x-itunes-ipsw"}, - {"iqy", "text/x-ms-iqy"}, - {"isp", "application/x-internet-signup"}, - {"ite", "application/x-itunes-ite"}, - {"itlp", "application/x-itunes-itlp"}, - {"itms", "application/x-itunes-itms"}, - {"itpc", "application/x-itunes-itpc"}, - {"IVF", "video/x-ivf"}, - {"jar", "application/java-archive"}, - {"java", "application/octet-stream"}, - {"jck", "application/liquidmotion"}, - {"jcz", "application/liquidmotion"}, - {"jfif", "image/pjpeg"}, - {"jnlp", "application/x-java-jnlp-file"}, - {"jpb", "application/octet-stream"}, - {"jpe", {"image/jpeg", "image/pjpeg"}}, - {"jpeg", {"image/jpeg", "image/pjpeg"}}, - {"jpg", {"image/jpeg", "image/pjpeg"}}, - {"js", "application/javascript"}, - {"json", "application/json"}, - {"jsx", "text/jscript"}, - {"jsxbin", "text/plain"}, - {"latex", "application/x-latex"}, - {"library-ms", "application/windows-library+xml"}, - {"lit", "application/x-ms-reader"}, - {"loadtest", "application/xml"}, - {"lpk", "application/octet-stream"}, - {"lsf", "video/x-la-asf"}, - {"lst", "text/plain"}, - {"lsx", "video/x-la-asf"}, - {"lzh", "application/octet-stream"}, - {"m13", "application/x-msmediaview"}, - {"m14", "application/x-msmediaview"}, - {"m1v", "video/mpeg"}, - {"m2t", "video/vnd.dlna.mpeg-tts"}, - {"m2ts", "video/vnd.dlna.mpeg-tts"}, - {"m2v", "video/mpeg"}, - {"m3u", "audio/x-mpegurl"}, - {"m3u8", "audio/x-mpegurl"}, - {"m4a", {"audio/m4a", "audio/x-m4a"}}, - {"m4b", "audio/m4b"}, - {"m4p", "audio/m4p"}, - {"m4r", "audio/x-m4r"}, - {"m4v", "video/x-m4v"}, - {"mac", "image/x-macpaint"}, - {"mak", "text/plain"}, - {"man", "application/x-troff-man"}, - {"manifest", "application/x-ms-manifest"}, - {"map", "text/plain"}, - {"master", "application/xml"}, - {"mbox", "application/mbox"}, - {"mda", "application/msaccess"}, - {"mdb", "application/x-msaccess"}, - {"mde", "application/msaccess"}, - {"mdp", "application/octet-stream"}, - {"me", "application/x-troff-me"}, - {"mfp", "application/x-shockwave-flash"}, - {"mht", "message/rfc822"}, - {"mhtml", "message/rfc822"}, - {"mid", "audio/mid"}, - {"midi", "audio/mid"}, - {"mix", "application/octet-stream"}, - {"mk", "text/plain"}, - {"mmf", "application/x-smaf"}, - {"mno", "text/xml"}, - {"mny", "application/x-msmoney"}, - {"mod", "video/mpeg"}, - {"mov", "video/quicktime"}, - {"movie", "video/x-sgi-movie"}, - {"mp2", "video/mpeg"}, - {"mp2v", "video/mpeg"}, - {"mp3", "audio/mpeg"}, - {"mp4", "video/mp4"}, - {"mp4v", "video/mp4"}, - {"mpa", "video/mpeg"}, - {"mpe", "video/mpeg"}, - {"mpeg", "video/mpeg"}, - {"mpf", "application/vnd.ms-mediapackage"}, - {"mpg", "video/mpeg"}, - {"mpp", "application/vnd.ms-project"}, - {"mpv2", "video/mpeg"}, - {"mqv", "video/quicktime"}, - {"ms", "application/x-troff-ms"}, - {"msg", "application/vnd.ms-outlook"}, - {"msi", {"application/x-msi", "application/octet-stream"}}, - {"mso", "application/octet-stream"}, - {"mts", "video/vnd.dlna.mpeg-tts"}, - {"mtx", "application/xml"}, - {"mvb", "application/x-msmediaview"}, - {"mvc", "application/x-miva-compiled"}, - {"mxp", "application/x-mmxp"}, - {"nc", "application/x-netcdf"}, - {"nsc", "video/x-ms-asf"}, - {"nws", "message/rfc822"}, - {"ocx", "application/octet-stream"}, - {"oda", "application/oda"}, - {"odb", "application/vnd.oasis.opendocument.database"}, - {"odc", "application/vnd.oasis.opendocument.chart"}, - {"odf", "application/vnd.oasis.opendocument.formula"}, - {"odg", "application/vnd.oasis.opendocument.graphics"}, - {"odh", "text/plain"}, - {"odi", "application/vnd.oasis.opendocument.image"}, - {"odl", "text/plain"}, - {"odm", "application/vnd.oasis.opendocument.text-master"}, - {"odp", "application/vnd.oasis.opendocument.presentation"}, - {"ods", "application/vnd.oasis.opendocument.spreadsheet"}, - {"odt", "application/vnd.oasis.opendocument.text"}, - {"oga", "audio/ogg"}, - {"ogg", "audio/ogg"}, - {"ogv", "video/ogg"}, - {"ogx", "application/ogg"}, - {"one", "application/onenote"}, - {"onea", "application/onenote"}, - {"onepkg", "application/onenote"}, - {"onetmp", "application/onenote"}, - {"onetoc", "application/onenote"}, - {"onetoc2", "application/onenote"}, - {"opus", "audio/ogg"}, - {"orderedtest", "application/xml"}, - {"osdx", "application/opensearchdescription+xml"}, - {"otf", "application/font-sfnt"}, - {"otg", "application/vnd.oasis.opendocument.graphics-template"}, - {"oth", "application/vnd.oasis.opendocument.text-web"}, - {"otp", "application/vnd.oasis.opendocument.presentation-template"}, - {"ots", "application/vnd.oasis.opendocument.spreadsheet-template"}, - {"ott", "application/vnd.oasis.opendocument.text-template"}, - {"oxt", "application/vnd.openofficeorg.extension"}, - {"p10", "application/pkcs10"}, - {"p12", "application/x-pkcs12"}, - {"p7b", "application/x-pkcs7-certificates"}, - {"p7c", "application/pkcs7-mime"}, - {"p7m", "application/pkcs7-mime"}, - {"p7r", "application/x-pkcs7-certreqresp"}, - {"p7s", {"application/pkcs7-signature", "text/plain"}}, - {"pbm", "image/x-portable-bitmap"}, - {"pcast", "application/x-podcast"}, - {"pct", "image/pict"}, - {"pcx", "application/octet-stream"}, - {"pcz", "application/octet-stream"}, - {"pdf", "application/pdf"}, - {"pfb", "application/octet-stream"}, - {"pfm", "application/octet-stream"}, - {"pfx", "application/x-pkcs12"}, - {"pgm", "image/x-portable-graymap"}, - {"pic", "image/pict"}, - {"pict", "image/pict"}, - {"pkgdef", "text/plain"}, - {"pkgundef", "text/plain"}, - {"pko", "application/vnd.ms-pki.pko"}, - {"pls", "audio/scpls"}, - {"pma", "application/x-perfmon"}, - {"pmc", "application/x-perfmon"}, - {"pml", "application/x-perfmon"}, - {"pmr", "application/x-perfmon"}, - {"pmw", "application/x-perfmon"}, - {"png", "image/png"}, - {"pnm", "image/x-portable-anymap"}, - {"pnt", "image/x-macpaint"}, - {"pntg", "image/x-macpaint"}, - {"pnz", "image/png"}, - {"pot", "application/vnd.ms-powerpoint"}, - {"potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"}, - {"potx", "application/vnd.openxmlformats-officedocument.presentationml.template"}, - {"ppa", "application/vnd.ms-powerpoint"}, - {"ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"}, - {"ppm", "image/x-portable-pixmap"}, - {"pps", "application/vnd.ms-powerpoint"}, - {"ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"}, - {"ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"}, - {"ppt", "application/vnd.ms-powerpoint"}, - {"pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"}, - {"pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"}, - {"prf", "application/pics-rules"}, - {"prm", "application/octet-stream"}, - {"prx", "application/octet-stream"}, - {"ps", "application/postscript"}, - {"psc1", "application/PowerShell"}, - {"psd", "application/octet-stream"}, - {"psess", "application/xml"}, - {"psm", "application/octet-stream"}, - {"psp", "application/octet-stream"}, - {"pst", "application/vnd.ms-outlook"}, - {"pub", "application/x-mspublisher"}, - {"pwz", "application/vnd.ms-powerpoint"}, - {"qht", "text/x-html-insertion"}, - {"qhtm", "text/x-html-insertion"}, - {"qt", "video/quicktime"}, - {"qti", "image/x-quicktime"}, - {"qtif", "image/x-quicktime"}, - {"qtl", "application/x-quicktimeplayer"}, - {"qxd", "application/octet-stream"}, - {"ra", "audio/x-pn-realaudio"}, - {"ram", "audio/x-pn-realaudio"}, - {"rar", {"application/x-rar-compressed", "application/x-rar", "application/octet-stream"}}, - {"ras", "image/x-cmu-raster"}, - {"rat", "application/rat-file"}, - {"rc", "text/plain"}, - {"rc2", "text/plain"}, - {"rct", "text/plain"}, - {"rdlc", "application/xml"}, - {"reg", "text/plain"}, - {"resx", "application/xml"}, - {"rf", "image/vnd.rn-realflash"}, - {"rgb", "image/x-rgb"}, - {"rgs", "text/plain"}, - {"rm", "application/vnd.rn-realmedia"}, - {"rmi", "audio/mid"}, - {"rmp", "application/vnd.rn-rn_music_package"}, - {"roff", "application/x-troff"}, - {"rpm", "audio/x-pn-realaudio-plugin"}, - {"rqy", "text/x-ms-rqy"}, - {"rtf", {"application/rtf","application/msword", "text/richtext", "text/rtf"}}, - {"rtx", "text/richtext"}, - {"rvt", "application/octet-stream" }, - {"ruleset", "application/xml"}, - {"s", "text/plain"}, - {"safariextz", "application/x-safari-safariextz"}, - {"scd", "application/x-msschedule"}, - {"scr", "text/plain"}, - {"sct", "text/scriptlet"}, - {"sd2", "audio/x-sd2"}, - {"sdp", "application/sdp"}, - {"sea", "application/octet-stream"}, - {"searchConnector-ms", "application/windows-search-connector+xml"}, - {"setpay", "application/set-payment-initiation"}, - {"setreg", "application/set-registration-initiation"}, - {"settings", "application/xml"}, - {"sgimb", "application/x-sgimb"}, - {"sgml", "text/sgml"}, - {"sh", "application/x-sh"}, - {"shar", "application/x-shar"}, - {"shtml", "text/html"}, - {"sit", "application/x-stuffit"}, - {"sitemap", "application/xml"}, - {"skin", "application/xml"}, - {"skp", "application/x-koan" }, - {"sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"}, - {"sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"}, - {"slk", "application/vnd.ms-excel"}, - {"sln", "text/plain"}, - {"slupkg-ms", "application/x-ms-license"}, - {"smd", "audio/x-smd"}, - {"smi", "application/octet-stream"}, - {"smx", "audio/x-smd"}, - {"smz", "audio/x-smd"}, - {"snd", "audio/basic"}, - {"snippet", "application/xml"}, - {"snp", "application/octet-stream"}, - {"sol", "text/plain"}, - {"sor", "text/plain"}, - {"spc", "application/x-pkcs7-certificates"}, - {"spl", "application/futuresplash"}, - {"spx", "audio/ogg"}, - {"src", "application/x-wais-source"}, - {"srf", "text/plain"}, - {"SSISDeploymentManifest", "text/xml"}, - {"ssm", "application/streamingmedia"}, - {"sst", "application/vnd.ms-pki.certstore"}, - {"stl", "application/vnd.ms-pki.stl"}, - {"sv4cpio", "application/x-sv4cpio"}, - {"sv4crc", "application/x-sv4crc"}, - {"svc", "application/xml"}, - {"svg", "image/svg+xml"}, - {"swf", "application/x-shockwave-flash"}, - {"step", "application/step"}, - {"stp", "application/step"}, - {"t", "application/x-troff"}, - {"tar", "application/x-tar"}, - {"tcl", "application/x-tcl"}, - {"testrunconfig", "application/xml"}, - {"testsettings", "application/xml"}, - {"tex", "application/x-tex"}, - {"texi", "application/x-texinfo"}, - {"texinfo", "application/x-texinfo"}, - {"tgz", "application/x-compressed"}, - {"thmx", "application/vnd.ms-officetheme"}, - {"thn", "application/octet-stream"}, - {"tif", {"image/tiff", "application/octet-stream"}}, - {"tiff", "image/tiff"}, - {"tlh", "text/plain"}, - {"tli", "text/plain"}, - {"toc", "application/octet-stream"}, - {"tr", "application/x-troff"}, - {"trm", "application/x-msterminal"}, - {"trx", "application/xml"}, - {"ts", "video/vnd.dlna.mpeg-tts"}, - {"tsv", "text/tab-separated-values"}, - {"ttf", "application/font-sfnt"}, - {"tts", "video/vnd.dlna.mpeg-tts"}, - {"txt", "text/plain"}, - {"u32", "application/octet-stream"}, - {"uls", "text/iuls"}, - {"user", "text/plain"}, - {"ustar", "application/x-ustar"}, - {"vb", "text/plain"}, - {"vbdproj", "text/plain"}, - {"vbk", "video/mpeg"}, - {"vbproj", "text/plain"}, - {"vbs", "text/vbscript"}, - {"vcf", {"text/x-vcard", "text/vcard"}}, - {"vcproj", "application/xml"}, - {"vcs", "text/plain"}, - {"vcxproj", "application/xml"}, - {"vddproj", "text/plain"}, - {"vdp", "text/plain"}, - {"vdproj", "text/plain"}, - {"vdx", "application/vnd.ms-visio.viewer"}, - {"vml", "text/xml"}, - {"vscontent", "application/xml"}, - {"vsct", "text/xml"}, - {"vsd", "application/vnd.visio"}, - {"vsi", "application/ms-vsi"}, - {"vsix", "application/vsix"}, - {"vsixlangpack", "text/xml"}, - {"vsixmanifest", "text/xml"}, - {"vsmdi", "application/xml"}, - {"vspscc", "text/plain"}, - {"vss", "application/vnd.visio"}, - {"vsscc", "text/plain"}, - {"vssettings", "text/xml"}, - {"vssscc", "text/plain"}, - {"vst", "application/vnd.visio"}, - {"vstemplate", "text/xml"}, - {"vsto", "application/x-ms-vsto"}, - {"vsw", "application/vnd.visio"}, - {"vsx", "application/vnd.visio"}, - {"vtx", "application/vnd.visio"}, - {"wav", "audio/wav"}, - {"wave", "audio/wav"}, - {"wax", "audio/x-ms-wax"}, - {"wbk", "application/msword"}, - {"wbmp", "image/vnd.wap.wbmp"}, - {"wcm", "application/vnd.ms-works"}, - {"wdb", "application/vnd.ms-works"}, - {"wdp", "image/vnd.ms-photo"}, - {"webarchive", "application/x-safari-webarchive"}, - {"webm", "video/webm"}, - {"webp", "image/webp"}, - {"webtest", "application/xml"}, - {"wiq", "application/xml"}, - {"wiz", "application/msword"}, - {"wks", "application/vnd.ms-works"}, - {"WLMP", "application/wlmoviemaker"}, - {"wlpginstall", "application/x-wlpg-detect"}, - {"wlpginstall3", "application/x-wlpg3-detect"}, - {"wm", "video/x-ms-wm"}, - {"wma", "audio/x-ms-wma"}, - {"wmd", "application/x-ms-wmd"}, - {"wmf", "application/x-msmetafile"}, - {"wml", "text/vnd.wap.wml"}, - {"wmlc", "application/vnd.wap.wmlc"}, - {"wmls", "text/vnd.wap.wmlscript"}, - {"wmlsc", "application/vnd.wap.wmlscriptc"}, - {"wmp", "video/x-ms-wmp"}, - {"wmv", "video/x-ms-wmv"}, - {"wmx", "video/x-ms-wmx"}, - {"wmz", "application/x-ms-wmz"}, - {"woff", "application/font-woff"}, - {"wpl", "application/vnd.ms-wpl"}, - {"wps", "application/vnd.ms-works"}, - {"wri", "application/x-mswrite"}, - {"wrl", "x-world/x-vrml"}, - {"wrz", "x-world/x-vrml"}, - {"wsc", "text/scriptlet"}, - {"wsdl", "text/xml"}, - {"wvx", "video/x-ms-wvx"}, - {"x", "application/directx"}, - {"xaf", "x-world/x-vrml"}, - {"xaml", "application/xaml+xml"}, - {"xap", "application/x-silverlight-app"}, - {"xbap", "application/x-ms-xbap"}, - {"xbm", "image/x-xbitmap"}, - {"xdr", "text/plain"}, - {"xht", "application/xhtml+xml"}, - {"xhtml", "application/xhtml+xml"}, - {"xla", "application/vnd.ms-excel"}, - {"xlam", "application/vnd.ms-excel.addin.macroEnabled.12"}, - {"xlc", "application/vnd.ms-excel"}, - {"xld", "application/vnd.ms-excel"}, - {"xlk", "application/vnd.ms-excel"}, - {"xll", "application/vnd.ms-excel"}, - {"xlm", "application/vnd.ms-excel"}, - {"xls", { - "application/excel", - "application/vnd.ms-excel", - "application/vnd.ms-office", - "application/x-excel", - "application/octet-stream" - }}, - {"xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"}, - {"xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"}, - {"xlsx", { - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", - "application/vnd.ms-excel.12", - "application/octet-stream" - }}, - {"xlt", "application/vnd.ms-excel"}, - {"xltm", "application/vnd.ms-excel.template.macroEnabled.12"}, - {"xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"}, - {"xlw", "application/vnd.ms-excel"}, - {"xml", {"application/xml", "text/xml", "application/octet-stream"}}, - {"xmp", "application/octet-stream" }, - {"xmta", "application/xml"}, - {"xof", "x-world/x-vrml"}, - {"XOML", "text/plain"}, - {"xpm", "image/x-xpixmap"}, - {"xps", "application/vnd.ms-xpsdocument"}, - {"xrm-ms", "text/xml"}, - {"xsc", "application/xml"}, - {"xsd", "text/xml"}, - {"xsf", "text/xml"}, - {"xsl", "text/xml"}, - {"xslt", "text/xml"}, - {"xsn", "application/octet-stream"}, - {"xss", "application/xml"}, - {"xspf", "application/xspf+xml"}, - {"xtp", "application/octet-stream"}, - {"xwd", "image/x-xwindowdump"}, - {"z", "application/x-compress"}, - {"zip", { - "application/zip", - "application/x-zip-compressed", - "application/octet-stream" - }}, - {"zlib", "application/zlib"}, -} - --- Used to match extension by content type -local reversed_extensions_map = {} - local function check_mime_type(task) local function gen_extension(fname) local parts = lua_util.str_split(fname or '', '.') @@ -873,7 +239,7 @@ local function check_mime_type(task) if not ext and detected_ct then -- Try to find extension by real content type - ext = reversed_extensions_map[detected_ct] + ext = lua_mime.reversed_extensions_map[detected_ct] end local function check_extension(badness_mult, badness_mult2) @@ -1174,7 +540,7 @@ if opts then end -- Add all extensions - for _,pair in ipairs(full_extensions_map) do + for _,pair in ipairs(lua_mime.full_extensions_map) do local ext, ct = pair[1], pair[2] if not settings.extension_map[ext] then change_extension_map_entry(ext, ct, settings.other_extensions_mult) @@ -1183,13 +549,15 @@ if opts then for ext,inner_tbl in pairs(settings.extension_map) do for _,elt in ipairs(inner_tbl) do - reversed_extensions_map[elt.ct] = ext + if not lua_mime.reversed_extensions_map[elt.ct] then + lua_mime.reversed_extensions_map[elt.ct] = ext + end end end - local type = 'map' - if settings['regexp'] then type = 'regexp' end - map = rspamd_map_add('mime_types', 'file', type, + local map_type = 'map' + if settings['regexp'] then map_type = 'regexp' end + map = lua_maps.rspamd_map_add('mime_types', 'file', map_type, 'mime types map') if map then local id = rspamd_config:register_symbol({ -- 2.39.5