From cb9ce0b97dbdb0a07b18a00d3cc5b1725281c3d3 Mon Sep 17 00:00:00 2001 From: Elias Kotlyar Date: Sat, 2 Dec 2017 00:30:08 +0100 Subject: [PATCH] Boa --- firmware_mod/bin/boa | Bin 0 -> 96489 bytes firmware_mod/bin/boa_indexer | Bin 0 -> 11060 bytes firmware_mod/bin/mime.types | 1510 +++++++++++++++++++++++++++ firmware_mod/run.sh | 6 +- firmware_mod/sample_config/boa.conf | 243 +++++ firmware_mod/www/index.html | 1 + 6 files changed, 1759 insertions(+), 1 deletion(-) create mode 100755 firmware_mod/bin/boa create mode 100755 firmware_mod/bin/boa_indexer create mode 100644 firmware_mod/bin/mime.types create mode 100644 firmware_mod/sample_config/boa.conf create mode 100644 firmware_mod/www/index.html diff --git a/firmware_mod/bin/boa b/firmware_mod/bin/boa new file mode 100755 index 0000000000000000000000000000000000000000..af90b417af762874f380f80c5a0fa2d52a601ecf GIT binary patch literal 96489 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%0AC? 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
D_UR|#?=@{?6TB)p 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. + +# IANA types + +# MIME type Extensions +application/1d-interleaved-parityfec +application/3gpp-ims+xml +application/activemessage +application/andrew-inset ez +application/applefile +application/atom+xml atom +application/atomcat+xml atomcat +application/atomdeleted+xml atomdeleted +application/atomicmail +application/atomsvc+xml atomsvc +application/auth-policy+xml apxml +application/batch-SMTP +application/beep+xml +application/calendar+xml xcs +application/cals-1840 +application/ccmp+xml ccmp +application/ccxml+xml ccxml +application/cdmi-capability cdmia +application/cdmi-container cdmic +application/cdmi-domain cdmid +application/cdmi-object cdmio +application/cdmi-queue cdmiq +application/cea-2018+xml +application/cellml+xml cellml cml +application/cfw +application/cnrp+xml +application/commonground +application/conference-info+xml +application/cpl+xml cpl +application/csta+xml +application/CSTAdata+xml +application/cybercash +application/davmount+xml davmount +application/dca-rft +application/dec-dx +application/dialog-info+xml +application/dicom dcm +application/dns +application/dskpp+xml xmls +application/dssc+der dssc +application/dssc+xml xdssc +application/dvcs dvc +application/ecmascript +application/EDI-Consent +application/EDI-X12 +application/EDIFACT +application/emma+xml emma +application/epp+xml +application/eshop +application/exi exi +application/fastinfoset finf +application/fastsoap +application/fdt+xml fdt +# fits, fit, fts: image/fits +application/fits +application/font-tdpfr pfr +application/framework-attributes+xml +application/gzip gz tgz +application/H224 +application/hal+xml hal +application/held+xml +application/http +application/hyperstudio stk +application/ibe-key-request+xml +application/ibe-pkg-reply+xml +application/ibe-pp-data +application/iges +application/im-iscomposing+xml +application/index +application/index.cmd +application/index.obj +application/index.response +application/index.vnd +application/inkml+xml ink inkml +application/iotp +application/ipfix ipfix +application/ipp +application/isup +application/javascript js +application/json json +application/kpml-request+xml +application/kpml-response+xml +application/link-format wlnk +application/lost+xml lostxml +application/lostsync+xml lostsyncxml +application/mac-binhex40 hqx +application/macwriteii +application/mads+xml mads +application/marc mrc +application/marcxml+xml mrcx +application/mathematica nb ma mb +application/mathml-content+xml +application/mathml-presentation+xml +application/mathml+xml mml +application/mbms-associated-procedure-description+xml +application/mbms-deregister+xml +application/mbms-envelope+xml +application/mbms-msk-response+xml +application/mbms-msk+xml +application/mbms-protection-description+xml +application/mbms-reception-report+xml +application/mbms-register-response+xml +application/mbms-register+xml +application/mbms-user-service-description+xml +application/mbox mbox +application/media_control+xml +application/mediaservercontrol+xml +application/metalink4+xml meta4 +application/mets+xml mets +application/mikey +application/mods+xml mods +application/moss-keys +application/moss-signature +application/mosskey-data +application/mosskey-request +application/mp21 m21 mp21 +# mp4, mpg4: video/mp4, see RFC 4337 +application/mp4 +application/mpeg4-generic +application/mpeg4-iod +application/mpeg4-iod-xmt +application/msc-ivr+xml +application/msc-mixer+xml +application/msword doc +application/mxf mxf +application/nasdata +application/news-checkgroups +application/news-groupinfo +application/news-transmission +application/nss +application/ocsp-request orq +application/ocsp-response ors +application/octet-stream bin lha lzh exe class so dll img iso +application/oda oda +application/oebps-package+xml opf +application/ogg ogx +application/oxps oxps +application/parityfec +# xer: application/xcap-error+xml +application/patch-ops-error+xml +application/pdf pdf +application/pgp-encrypted +application/pgp-keys +application/pgp-signature sig +application/pidf-diff+xml +application/pidf+xml +application/pkcs10 p10 +application/pkcs7-mime p7m p7c +application/pkcs7-signature p7s +application/pkcs8 p8 +# ac: application/vnd.nokia.n-gage.ac+xml +application/pkix-attr-cert +application/pkix-cert cer +application/pkix-crl crl +application/pkix-pkipath pkipath +application/pkixcmp +application/pls+xml pls +application/poc-settings+xml +application/postscript ps eps ai +application/prs.alvestrand.titrax-sheet +application/prs.cww cw cww +application/prs.nprend rnd rct +application/prs.plucker +application/prs.rdf-xml-crypt rdf-crypt +application/prs.xsf+xml xsf +application/pskc+xml pskcxml +application/qsig +application/raptorfec +application/rdf+xml rdf +application/reginfo+xml rif +application/relax-ng-compact-syntax rnc +application/remote-printing +application/resource-lists-diff+xml rld +application/resource-lists+xml rl +application/riscos +application/rlmi+xml +application/rls-services+xml rs +application/rpki-ghostbusters gbr +application/rpki-manifest mft +application/rpki-roa roa +application/rpki-updown +application/rtf rtf +application/rtx +application/samlassertion+xml +application/samlmetadata+xml +application/sbml+xml +application/scvp-cv-request scq +application/scvp-cv-response scs +application/scvp-vp-request spq +application/scvp-vp-response spp +application/sdp sdp +application/set-payment +application/set-payment-initiation +application/set-registration +application/set-registration-initiation +application/sgml +application/sgml-open-catalog soc +application/shf+xml shf +application/sieve siv sieve +application/simple-filter+xml cl +application/simple-message-summary +application/simpleSymbolContainer +application/slate +# obsoleted by application/smil+xml +application/smil smil smi sml +# smil, smi: application/smil for now +application/smil+xml +application/smpte336m +application/soap+fastinfoset +application/soap+xml +application/sparql-query rq +application/sparql-results+xml srx +application/spirits-event+xml +application/srgs gram +application/srgs+xml grxml +application/sru+xml sru +application/ssml+xml ssml +application/tamp-apex-update tau +application/tamp-apex-update-confirm auc +application/tamp-community-update tcu +application/tamp-community-update-confirm cuc +application/tamp-error ter +application/tamp-sequence-adjust tsa +application/tamp-sequence-adjust-confirm sac +# tsq: application/timestamp-query +application/tamp-status-query +# tsr: application/timestamp-reply +application/tamp-status-response +application/tamp-update tur +application/tamp-update-confirm tuc +application/tei+xml tei teiCorpus odd +application/thraud+xml tfi +application/timestamp-query tsq +application/timestamp-reply tsr +application/timestamped-data tsd +application/tve-trigger +application/ulpfec +application/vcard+xml +application/vemmi +application/vnd.3gpp.bsf+xml +application/vnd.3gpp.pic-bw-large plb +application/vnd.3gpp.pic-bw-small psb +application/vnd.3gpp.pic-bw-var pvb +# sms: application/vnd.3gpp2.sms +application/vnd.3gpp.sms +application/vnd.3gpp2.bcmcsinfo+xml +application/vnd.3gpp2.sms sms +application/vnd.3gpp2.tcap tcap +application/vnd.3M.Post-it-Notes pwn +application/vnd.accpac.simply.aso aso +application/vnd.accpac.simply.imp imp +application/vnd.acucobol acu +application/vnd.acucorp atc acutc +application/vnd.adobe.formscentral.fcdt fcdt +application/vnd.adobe.fxp fxp fxpl +application/vnd.adobe.partial-upload +application/vnd.adobe.xdp+xml xdp +application/vnd.adobe.xfdf xfdf +application/vnd.aether.imp +application/vnd.ah-barcode +application/vnd.ahead.space ahead +application/vnd.airzip.filesecure.azf azf +application/vnd.airzip.filesecure.azs azs +application/vnd.americandynamics.acc acc +application/vnd.amiga.ami ami +application/vnd.amundsen.maze+xml +application/vnd.anser-web-certificate-issue-initiation cii +# Not in IANA listing, but is on FTP site? +application/vnd.anser-web-funds-transfer-initiation fti +# atx: audio/ATRAC-X +application/vnd.antix.game-component +application/vnd.apple.installer+xml dist distz pkg mpkg +# m3u: application/x-mpegurl for now +application/vnd.apple.mpegurl m3u8 +application/vnd.aristanetworks.swi swi +application/vnd.astraea-software.iota iota +application/vnd.audiograph aep +application/vnd.autopackage package +application/vnd.avistar+xml +application/vnd.balsamiq.bmml+xml bmml +application/vnd.blueice.multipass mpm +application/vnd.bluetooth.ep.oob ep +application/vnd.bmi bmi +application/vnd.businessobjects rep +application/vnd.cab-jscript +application/vnd.canon-cpdl +application/vnd.canon-lips +application/vnd.cendio.thinlinc.clientconf tlclient +application/vnd.century-systems.tcp_stream +application/vnd.chemdraw+xml cdxml +application/vnd.chipnuts.karaoke-mmd mmd +application/vnd.cinderella cdy +application/vnd.cirpack.isdn-ext +application/vnd.claymore cla +application/vnd.cloanto.rp9 rp9 +application/vnd.clonk.c4group c4g c4d c4f c4p c4u +application/vnd.cluetrust.cartomobile-config c11amc +application/vnd.cluetrust.cartomobile-config-pkg c11amz +application/vnd.collection+json +application/vnd.collection.next+json +# icc: application/vnd.iccprofile +application/vnd.commerce-battelle ica icf icd ic0 ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 +application/vnd.commonspace csp cst +application/vnd.contact.cmsg cdbcmsg +application/vnd.cosmocaller cmc +application/vnd.crick.clicker clkx +application/vnd.crick.clicker.keyboard clkk +application/vnd.crick.clicker.palette clkp +application/vnd.crick.clicker.template clkt +application/vnd.crick.clicker.wordbank clkw +application/vnd.criticaltools.wbs+xml wbs +application/vnd.ctc-posml pml +application/vnd.ctct.ws+xml +application/vnd.cups-pdf +application/vnd.cups-postscript +application/vnd.cups-ppd ppd +application/vnd.cups-raster +application/vnd.cups-raw +application/vnd.curl curl +application/vnd.cybank +application/vnd.dart dart +application/vnd.data-vision.rdz rdz +application/vnd.dece.data uvf uvvf uvd uvvd +application/vnd.dece.ttml+xml uvt uvvt +application/vnd.dece.unspecified uvx uvvx +application/vnd.dece.zip uvz uvvz +application/vnd.denovo.fcselayout-link fe_launch +application/vnd.dir-bi.plate-dl-nosuffix +application/vnd.dm.delegation+xml +application/vnd.dna dna +application/vnd.dolby.mobile.1 +application/vnd.dolby.mobile.2 +application/vnd.dpgraph dpg mwc dpgraph +application/vnd.dreamfactory dfac +application/vnd.dtg.local +application/vnd.dtg.local.flash fla +application/vnd.dtg.local.html +application/vnd.dvb.ait ait +# class: application/octet-stream +application/vnd.dvb.dvbj +application/vnd.dvb.esgcontainer +application/vnd.dvb.ipdcdftnotifaccess +application/vnd.dvb.ipdcesgaccess +application/vnd.dvb.ipdcesgaccess2 +application/vnd.dvb.ipdcesgpdd +application/vnd.dvb.ipdcroaming +application/vnd.dvb.iptv.alfec-base +application/vnd.dvb.iptv.alfec-enhancement +application/vnd.dvb.notif-aggregate-root+xml +application/vnd.dvb.notif-container+xml +application/vnd.dvb.notif-generic+xml +application/vnd.dvb.notif-ia-msglist+xml +application/vnd.dvb.notif-ia-registration-request+xml +application/vnd.dvb.notif-ia-registration-response+xml +application/vnd.dvb.notif-init+xml +# pfr: application/font-tdpfr +application/vnd.dvb.pfr +application/vnd.dvb.service svc +# dxr: application/x-director +application/vnd.dxr +application/vnd.dynageo geo +application/vnd.easykaraoke.cdgdownload +application/vnd.ecdis-update +application/vnd.ecowin.chart mag +application/vnd.ecowin.filerequest +application/vnd.ecowin.fileupdate +application/vnd.ecowin.series +application/vnd.ecowin.seriesrequest +application/vnd.ecowin.seriesupdate +application/vnd.enliven nml +application/vnd.eprints.data+xml +application/vnd.epson.esf esf +application/vnd.epson.msf msf +application/vnd.epson.quickanime qam +application/vnd.epson.salt slt +application/vnd.epson.ssf ssf +application/vnd.ericsson.quickcall qcall qca +application/vnd.eszigno3+xml es3 et3 +application/vnd.etsi.aoc+xml +application/vnd.etsi.cug+xml +application/vnd.etsi.iptvcommand+xml +application/vnd.etsi.iptvdiscovery+xml +application/vnd.etsi.iptvprofile+xml +application/vnd.etsi.iptvsad-bc+xml +application/vnd.etsi.iptvsad-cod+xml +application/vnd.etsi.iptvsad-npvr+xml +application/vnd.etsi.iptvservice+xml +application/vnd.etsi.iptvsync+xml +application/vnd.etsi.iptvueprofile+xml +application/vnd.etsi.mcid+xml +application/vnd.etsi.overload-control-policy-dataset+xml +application/vnd.etsi.sci+xml +application/vnd.etsi.simservs+xml +application/vnd.etsi.tsl.der +application/vnd.etsi.tsl+xml +application/vnd.eudora.data +application/vnd.ezpix-album ez2 +application/vnd.ezpix-package ez3 +application/vnd.f-secure.mobile +application/vnd.fdf fdf +application/vnd.fdsn.mseed msd mseed +application/vnd.fdsn.seed seed dataless +application/vnd.ffsns +# all extensions: application/vnd.hbci +application/vnd.fints +application/vnd.FloGraphIt gph +application/vnd.fluxtime.clip ftc +application/vnd.font-fontforge-sfd sfd +application/vnd.framemaker fm +application/vnd.frogans.fnc fnc +application/vnd.frogans.ltf ltf +application/vnd.fsc.weblaunch fsc +application/vnd.fujitsu.oasys oas +application/vnd.fujitsu.oasys2 oa2 +application/vnd.fujitsu.oasys3 oa3 +application/vnd.fujitsu.oasysgp fg5 +application/vnd.fujitsu.oasysprs bh2 +application/vnd.fujixerox.ART-EX +application/vnd.fujixerox.ART4 +application/vnd.fujixerox.ddd ddd +application/vnd.fujixerox.docuworks xdw +application/vnd.fujixerox.docuworks.binder xbd +application/vnd.fujixerox.HBPL +application/vnd.fut-misnet +application/vnd.fuzzysheet fzs +application/vnd.genomatix.tuxedo txd +application/vnd.geocube+xml g3 g³ +application/vnd.geogebra.file ggb +application/vnd.geogebra.tool ggt +application/vnd.geometry-explorer gex gre +application/vnd.geonext gxt +application/vnd.geoplan g2w +application/vnd.geospace g3w +application/vnd.globalplatform.card-content-mgt +application/vnd.globalplatform.card-content-mgt-response +# application/vnd.gmx deprecated 2009-03-04 +application/vnd.google-earth.kml+xml kml +application/vnd.google-earth.kmz kmz +application/vnd.grafeq gqf gqs +application/vnd.gridmp +application/vnd.groove-account gac +application/vnd.groove-help ghf +application/vnd.groove-identity-message gim +application/vnd.groove-injector grv +application/vnd.groove-tool-message gtm +application/vnd.groove-tool-template tpl +application/vnd.groove-vcard vcg +application/vnd.hal+json +application/vnd.HandHeld-Entertainment+xml zmm +application/vnd.hbci hbci hbc kom upa pkd bpd +# rep: application/vnd.businessobjects +application/vnd.hcl-bireports +application/vnd.hhe.lesson-player les +application/vnd.hp-HPGL hpgl +application/vnd.hp-hpid hpi hpid +application/vnd.hp-hps hps +application/vnd.hp-jlyt jlt +application/vnd.hp-PCL pcl +application/vnd.hp-PCLXL +application/vnd.httphone +application/vnd.hydrostatix.sof-data sfd-hdstx +application/vnd.hzn-3d-crossword x3d +application/vnd.ibm.afplinedata +application/vnd.ibm.electronic-media emm +application/vnd.ibm.MiniPay mpy +application/vnd.ibm.modcap list3820 listafp afp pseg3820 +application/vnd.ibm.rights-management irm +application/vnd.ibm.secure-container sc +application/vnd.iccprofile icc icm +application/vnd.ieee.1905 1905.1 +application/vnd.igloader igl +application/vnd.immervision-ivp ivp +application/vnd.immervision-ivu ivu +application/vnd.informedcontrol.rms+xml +# application/vnd.informix-visionary obsoleted by application/vnd.visionary +application/vnd.infotech.project +application/vnd.infotech.project+xml +application/vnd.innopath.wamp.notification +application/vnd.insors.igm igm +application/vnd.intercon.formnet xpw xpx +application/vnd.intergeo i2g +application/vnd.intertrust.digibox +application/vnd.intertrust.nncp +application/vnd.intu.qbo qbo +application/vnd.intu.qfx qfx +application/vnd.iptc.g2.conceptitem+xml +application/vnd.iptc.g2.knowledgeitem+xml +application/vnd.iptc.g2.newsitem+xml +application/vnd.iptc.g2.newsmessage+xml +application/vnd.iptc.g2.packageitem+xml +application/vnd.iptc.g2.planningitem+xml +application/vnd.ipunplugged.rcprofile rcprofile +application/vnd.irepository.package+xml irp +application/vnd.is-xpr xpr +application/vnd.isac.fcs fcs +application/vnd.jam jam +application/vnd.japannet-directory-service +application/vnd.japannet-jpnstore-wakeup +application/vnd.japannet-payment-wakeup +application/vnd.japannet-registration +application/vnd.japannet-registration-wakeup +application/vnd.japannet-setstore-wakeup +application/vnd.japannet-verification +application/vnd.japannet-verification-wakeup +application/vnd.jcp.javame.midlet-rms rms +application/vnd.jisp jisp +application/vnd.joost.joda-archive joda +application/vnd.jsk.isdn-ngn +application/vnd.kahootz ktz ktr +application/vnd.kde.karbon karbon +application/vnd.kde.kchart chrt +application/vnd.kde.kformula kfo +application/vnd.kde.kivio flw +application/vnd.kde.kontour kon +application/vnd.kde.kpresenter kpr kpt +application/vnd.kde.kspread ksp +application/vnd.kde.kword kwd kwt +application/vnd.kenameaapp htke +application/vnd.kidspiration kia +application/vnd.Kinar kne knp sdf +application/vnd.koan skp skd skm skt +application/vnd.kodak-descriptor sse +application/vnd.las.las+xml lasxml +application/vnd.liberty-request+xml +application/vnd.llamagraphics.life-balance.desktop lbd +application/vnd.llamagraphics.life-balance.exchange+xml lbe +application/vnd.lotus-1-2-3 123 wk4 wk3 wk1 +application/vnd.lotus-approach apr vew +application/vnd.lotus-freelance prz pre +application/vnd.lotus-notes nsf ntf ndl ns4 ns3 ns2 nsh nsg +application/vnd.lotus-organizer or3 or2 org +application/vnd.lotus-screencam scm +application/vnd.lotus-wordpro lwp sam +application/vnd.macports.portpkg portpkg +application/vnd.marlin.drm.actiontoken+xml +application/vnd.marlin.drm.conftoken+xml +application/vnd.marlin.drm.license+xml +application/vnd.marlin.drm.mdcf mdc +application/vnd.mcd mcd +application/vnd.medcalcdata mc1 +application/vnd.mediastation.cdkey cdkey +application/vnd.meridian-slingshot +application/vnd.MFER mwf +application/vnd.mfmp mfm +application/vnd.micrografx.flo flo +application/vnd.micrografx.igx igx +application/vnd.mif mif +application/vnd.minisoft-hp3000-save +application/vnd.mitsubishi.misty-guard.trustweb +application/vnd.Mobius.DAF daf +application/vnd.Mobius.DIS dis +application/vnd.Mobius.MBK mbk +application/vnd.Mobius.MQY mqy +application/vnd.Mobius.MSL msl +application/vnd.Mobius.PLC plc +application/vnd.Mobius.TXF txf +application/vnd.mophun.application mpn +application/vnd.mophun.certificate mpc +application/vnd.motorola.flexsuite +application/vnd.motorola.flexsuite.adsi +application/vnd.motorola.flexsuite.fis +application/vnd.motorola.flexsuite.gotap +application/vnd.motorola.flexsuite.kmr +application/vnd.motorola.flexsuite.ttc +application/vnd.motorola.flexsuite.wem +application/vnd.motorola.iprm +application/vnd.mozilla.xul+xml xul +application/vnd.ms-artgalry cil +application/vnd.ms-asf asf +application/vnd.ms-cab-compressed cab +application/vnd.ms-excel xls +application/vnd.ms-excel.template.macroEnabled.12 xltm +application/vnd.ms-excel.addin.macroEnabled.12 xlam +application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb +application/vnd.ms-excel.sheet.macroEnabled.12 xlsm +application/vnd.ms-fontobject eot +application/vnd.ms-htmlhelp chm +application/vnd.ms-ims ims +application/vnd.ms-lrm lrm +application/vnd.ms-office.activeX+xml +application/vnd.ms-officetheme thmx +application/vnd.ms-playready.initiator+xml +application/vnd.ms-powerpoint ppt +application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam +application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm +application/vnd.ms-powerpoint.slide.macroEnabled.12 sldm +application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm +application/vnd.ms-powerpoint.template.macroEnabled.12 potm +application/vnd.ms-project mpp +application/vnd.ms-tnef tnef tnf +application/vnd.ms-wmdrm.lic-chlg-req +application/vnd.ms-wmdrm.lic-resp +application/vnd.ms-wmdrm.meter-chlg-req +application/vnd.ms-wmdrm.meter-resp +application/vnd.ms-word.document.macroEnabled.12 docm +application/vnd.ms-word.template.macroEnabled.12 dotm +application/vnd.ms-works wcm wdb wks wps +application/vnd.ms-wpl wpl +application/vnd.ms-xpsdocument xps +application/vnd.mseq mseq +application/vnd.msign +application/vnd.multiad.creator crtr +application/vnd.multiad.creator.cif cif +application/vnd.music-niff +application/vnd.musician mus +application/vnd.muvee.style msty +application/vnd.mynfc taglet +application/vnd.ncd.control +application/vnd.ncd.reference +application/vnd.nervana entity request bkm kcm +application/vnd.netfpx +# ntf: application/vnd.lotus-notes +application/vnd.nitf nitf +application/vnd.neurolanguage.nlu nlu +application/vnd.noblenet-directory nnd +application/vnd.noblenet-sealer nns +application/vnd.noblenet-web nnw +application/vnd.nokia.catalogs +application/vnd.nokia.conml+wbxml +application/vnd.nokia.conml+xml +application/vnd.nokia.iptv.config+xml +application/vnd.nokia.iSDS-radio-presets +application/vnd.nokia.landmark+wbxml +application/vnd.nokia.landmark+xml +application/vnd.nokia.landmarkcollection+xml +application/vnd.nokia.n-gage.ac+xml ac +application/vnd.nokia.n-gage.data ngdat +application/vnd.nokia.n-gage.symbian.install n-gage +application/vnd.nokia.ncd +application/vnd.nokia.pcd+wbxml +application/vnd.nokia.pcd+xml +application/vnd.nokia.radio-preset rpst +application/vnd.nokia.radio-presets rpss +application/vnd.novadigm.EDM edm +application/vnd.novadigm.EDX edx +application/vnd.novadigm.EXT ext +application/vnd.ntt-local.content-share +application/vnd.ntt-local.file-transfer +application/vnd.ntt-local.sip-ta_remote +application/vnd.ntt-local.sip-ta_tcp_stream +application/vnd.oasis.opendocument.chart odc +application/vnd.oasis.opendocument.chart-template otc +application/vnd.oasis.opendocument.database odb +application/vnd.oasis.opendocument.formula odf +application/vnd.oasis.opendocument.formula-template otf +application/vnd.oasis.opendocument.graphics odg +application/vnd.oasis.opendocument.graphics-template otg +application/vnd.oasis.opendocument.image odi +application/vnd.oasis.opendocument.image-template oti +application/vnd.oasis.opendocument.presentation odp +application/vnd.oasis.opendocument.presentation-template otp +application/vnd.oasis.opendocument.spreadsheet ods +application/vnd.oasis.opendocument.spreadsheet-template ots +application/vnd.oasis.opendocument.text odt +application/vnd.oasis.opendocument.text-master odm +application/vnd.oasis.opendocument.text-template ott +application/vnd.oasis.opendocument.text-web oth +application/vnd.obn +application/vnd.oftn.l10n+json +application/vnd.oipf.contentaccessdownload+xml +application/vnd.oipf.contentaccessstreaming+xml +application/vnd.oipf.cspg-hexbinary +application/vnd.oipf.dae.svg+xml +application/vnd.oipf.dae.xhtml+xml +application/vnd.oipf.mippvcontrolmessage+xml +application/vnd.oipf.pae.gem +application/vnd.oipf.spdiscovery+xml +application/vnd.oipf.spdlist+xml +application/vnd.oipf.ueprofile+xml +application/vnd.olpc-sugar xo +application/vnd.oma.bcast.associated-procedure-parameter+xml +application/vnd.oma.bcast.drm-trigger+xml +application/vnd.oma.bcast.imd+xml +application/vnd.oma.bcast.ltkm +application/vnd.oma.bcast.notification+xml +application/vnd.oma.bcast.provisioningtrigger +application/vnd.oma.bcast.sgboot +application/vnd.oma.bcast.sgdd+xml +application/vnd.oma.bcast.sgdu +application/vnd.oma.bcast.simple-symbol-container +application/vnd.oma.bcast.smartcard-trigger+xml +application/vnd.oma.bcast.sprov+xml +application/vnd.oma.bcast.stkm +application/vnd.oma.cab-address-book+xml +application/vnd.oma.cab-feature-handler+xml +application/vnd.oma.cab-pcc+xml +application/vnd.oma.cab-user-prefs+xml +application/vnd.oma.dcd +application/vnd.oma.dcdc +application/vnd.oma.dd2+xml dd2 +application/vnd.oma.drm.risd+xml +application/vnd.oma.group-usage-list+xml +application/vnd.oma.pal+xml +application/vnd.oma.poc.detailed-progress-report+xml +application/vnd.oma.poc.final-report+xml +application/vnd.oma.poc.groups+xml +application/vnd.oma.poc.invocation-descriptor+xml +application/vnd.oma.poc.optimized-progress-report+xml +application/vnd.oma.push +application/vnd.oma.scidm.messages+xml +application/vnd.oma.xcap-directory+xml +application/vnd.oma-scws-config +application/vnd.oma-scws-http-request +application/vnd.oma-scws-http-response +application/vnd.omads-email+xml +application/vnd.omads-file+xml +application/vnd.omads-folder+xml +application/vnd.omaloc-supl-init +application/vnd.openofficeorg.extension oxt +application/vnd.openxmlformats-officedocument.custom-properties+xml +application/vnd.openxmlformats-officedocument.customXmlProperties+xml +application/vnd.openxmlformats-officedocument.drawing+xml +application/vnd.openxmlformats-officedocument.drawingml.chart+xml +application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml +application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml +application/vnd.openxmlformats-officedocument.extended-properties+xml +application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml +application/vnd.openxmlformats-officedocument.presentationml.comments+xml +application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml +application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml +application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml +application/vnd.openxmlformats-officedocument.presentationml.presProps+xml +application/vnd.openxmlformats-officedocument.presentationml.presentation pptx +application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml +application/vnd.openxmlformats-officedocument.presentationml.slide sldx +application/vnd.openxmlformats-officedocument.presentationml.slide+xml +application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml +application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml +application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml +application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx +application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml +application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml +application/vnd.openxmlformats-officedocument.presentationml.tags+xml +application/vnd.openxmlformats-officedocument.presentationml.template potx +application/vnd.openxmlformats-officedocument.presentationml.template.main+xml +application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx +application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml +application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml +application/vnd.openxmlformats-officedocument.theme+xml +application/vnd.openxmlformats-officedocument.themeOverride+xml +application/vnd.openxmlformats-officedocument.vmlDrawing +application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.document docx +application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx +application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml +application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml +application/vnd.openxmlformats-package.core-properties+xml +application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml +application/vnd.openxmlformats-package.relationships+xml +application/vnd.orange.indata +application/vnd.osa.netdeploy ndc +application/vnd.osgeo.mapguide.package mgp +# jar: application/x-java-archive +application/vnd.osgi.bundle +application/vnd.osgi.dp dp +application/vnd.osgi.subsystem esa +application/vnd.otps.ct-kip+xml +application/vnd.palm prc pdb pqa oprc +application/vnd.paos+xml +application/vnd.pawaafile paw +application/vnd.pg.format str +application/vnd.pg.osasli ei6 +application/vnd.piaccess.application-license pil +application/vnd.picsel efif +application/vnd.pmi.widget wg +application/vnd.poc.group-advertisement+xml +application/vnd.pocketlearn plf +application/vnd.powerbuilder6 pbd +application/vnd.powerbuilder6-s +application/vnd.powerbuilder7 +application/vnd.powerbuilder7-s +application/vnd.powerbuilder75 +application/vnd.powerbuilder75-s +application/vnd.preminet preminet +application/vnd.previewsystems.box box vbox +application/vnd.proteus.magazine mgz +application/vnd.publishare-delta-tree qps +# pti: image/prs.pti +application/vnd.pvi.ptid1 ptid +application/vnd.pwg-multiplexed +application/vnd.pwg-xhtml-print+xml +application/vnd.qualcomm.brew-app-res bar +application/vnd.Quark.QuarkXPress qxd qxt qwd qwt qxl qxb +application/vnd.quobject-quoxdocument quox quiz +application/vnd.radisys.moml+xml +application/vnd.radisys.msml-audit-conf+xml +application/vnd.radisys.msml-audit-conn+xml +application/vnd.radisys.msml-audit-dialog+xml +application/vnd.radisys.msml-audit-stream+xml +application/vnd.radisys.msml-audit+xml +application/vnd.radisys.msml-conf+xml +application/vnd.radisys.msml-dialog-base+xml +application/vnd.radisys.msml-dialog-fax-detect+xml +application/vnd.radisys.msml-dialog-fax-sendrecv+xml +application/vnd.radisys.msml-dialog-group+xml +application/vnd.radisys.msml-dialog-speech+xml +application/vnd.radisys.msml-dialog-transform+xml +application/vnd.radisys.msml-dialog+xml +application/vnd.radisys.msml+xml +application/vnd.rainstor.data tree +application/vnd.rapid +application/vnd.realvnc.bed bed +application/vnd.recordare.musicxml mxl +application/vnd.recordare.musicxml+xml +application/vnd.RenLearn.rlprint +application/vnd.rig.cryptonote cryptonote +application/vnd.route66.link66+xml link66 +# gbr: application/rpki-ghostbusters +application/vnd.rs-274x +application/vnd.ruckus.download +application/vnd.s3sms +application/vnd.sailingtracker.track st +application/vnd.sbm.cid +application/vnd.sbm.mid2 +application/vnd.scribus scd sla slaz +application/vnd.sealed.3df s3df +application/vnd.sealed.csf scsf +application/vnd.sealed.doc sdoc sdo s1w +application/vnd.sealed.eml seml sem +application/vnd.sealed.mht smht smh +application/vnd.sealed.net +# spp: application/scvp-vp-response +application/vnd.sealed.ppt sppt s1p +application/vnd.sealed.tiff stif +application/vnd.sealed.xls sxls sxl s1e +# stm: audio/x-stm +application/vnd.sealedmedia.softseal.html stml s1h +application/vnd.sealedmedia.softseal.pdf spdf spd s1a +application/vnd.seemail see +application/vnd.sema sema +application/vnd.semd semd +application/vnd.semf semf +application/vnd.shana.informed.formdata ifm +application/vnd.shana.informed.formtemplate itp +application/vnd.shana.informed.interchange iif +application/vnd.shana.informed.package ipk +application/vnd.SimTech-MindMapper twd twds +application/vnd.smaf mmf +application/vnd.smart.notebook notebook +application/vnd.smart.teacher teacher +application/vnd.software602.filler.form+xml fo +application/vnd.software602.filler.form-xml-zip zfo +application/vnd.solent.sdkm+xml sdkm sdkd +application/vnd.spotfire.dxp dxp +application/vnd.spotfire.sfs sfs +application/vnd.sss-cod +application/vnd.sss-dtf +application/vnd.sss-ntf +application/vnd.stepmania.package smzip +application/vnd.stepmania.stepchart sm +application/vnd.street-stream +application/vnd.sun.wadl+xml wadl +application/vnd.sus-calendar sus susp +application/vnd.svd +application/vnd.swiftview-ics +application/vnd.syncml+xml xsm +application/vnd.syncml.dm+wbxml bdm +application/vnd.syncml.dm+xml xdm +application/vnd.syncml.dm.notification +application/vnd.syncml.dmddf+wbxml +application/vnd.syncml.dmddf+xml ddf +application/vnd.syncml.dmtnds+wbxml +application/vnd.syncml.dmtnds+xml +application/vnd.syncml.ds.notification +application/vnd.tao.intent-module-archive tao +application/vnd.tcpdump.pcap pcap cap dmp +application/vnd.tmobile-livetv tmo +application/vnd.trid.tpt tpt +application/vnd.triscape.mxs mxs +application/vnd.trueapp tra +application/vnd.truedoc +# cab: application/vnd.ms-cab-compressed +application/vnd.ubisoft.webplayer +application/vnd.ufdl ufdl ufd frm +application/vnd.uiq.theme utz +application/vnd.umajin umj +application/vnd.unity unityweb +application/vnd.uoml+xml uoml uo +application/vnd.uplanet.alert +application/vnd.uplanet.alert-wbxml +application/vnd.uplanet.bearer-choice +application/vnd.uplanet.bearer-choice-wbxml +application/vnd.uplanet.cacheop +application/vnd.uplanet.cacheop-wbxml +application/vnd.uplanet.channel +application/vnd.uplanet.channel-wbxml +application/vnd.uplanet.list +application/vnd.uplanet.list-wbxml +application/vnd.uplanet.listcmd +application/vnd.uplanet.listcmd-wbxml +application/vnd.uplanet.signal +application/vnd.vcx vcx +# sxi: application/vnd.sun.xml.impress +application/vnd.vd-study mxi study-inter model-inter +# mcd: application/vnd.mcd +application/vnd.vectorworks vwx +application/vnd.verimatrix.vcas +application/vnd.vidsoft.vidconference vsc +application/vnd.visio vsd vst vsw vss +application/vnd.visionary vis +# vsc: application/vnd.vidsoft.vidconference +application/vnd.vividence.scriptfile +application/vnd.vsf vsf +application/vnd.wap.sic sic +application/vnd.wap.slc slc +application/vnd.wap.wbxml wbxml +application/vnd.wap.wmlc wmlc +application/vnd.wap.wmlscriptc wmlsc +application/vnd.webturbo wtb +application/vnd.wfa.wsc wsc +application/vnd.wmc wmc +application/vnd.wmf.bootstrap +# nb: application/mathematica for now +application/vnd.wolfram.mathematica +application/vnd.wolfram.mathematica.package m +application/vnd.wolfram.player nbp +application/vnd.wordperfect wpd +application/vnd.wqd wqd +application/vnd.wrq-hp3000-labelled +application/vnd.wt.stf stf +application/vnd.wv.csp+xml +application/vnd.wv.csp+wbxml wv +application/vnd.wv.ssp+xml +application/vnd.xara xar +application/vnd.xfdl xfdl xfd +application/vnd.xfdl.webform +application/vnd.xmi+xml +application/vnd.xmpie.cpkg cpkg +application/vnd.xmpie.dpkg dpkg +# dpkg: application/vnd.xmpie.dpkg +application/vnd.xmpie.plan +application/vnd.xmpie.ppkg ppkg +application/vnd.xmpie.xlim xlim +application/vnd.yamaha.hv-dic hvd +application/vnd.yamaha.hv-script hvs +application/vnd.yamaha.hv-voice hvp +application/vnd.yamaha.openscoreformat osf +application/vnd.yamaha.openscoreformat.osfpvg+xml +application/vnd.yamaha.remote-setup +application/vnd.yamaha.smaf-audio saf +application/vnd.yamaha.smaf-phrase spf +application/vnd.yamaha.through-ngn +application/vnd.yamaha.tunnel-udpencap +application/vnd.yellowriver-custom-menu cmp +application/vnd.zul zir zirz +application/vnd.zzazz.deck+xml zaz +application/voicexml+xml vxml +application/vq-rtcp-xr +application/watcherinfo+xml wif +application/whoispp-query +application/whoispp-response +application/widget wgt +application/wita +application/wordperfect5.1 +application/wsdl+xml wsdl +application/wspolicy+xml wspolicy +application/x400-bp +application/xcap-att+xml xav +application/xcap-caps+xml xca +application/xcap-diff+xml xdf +application/xcap-el+xml xel +application/xcap-error+xml xer +application/xcap-ns+xml xns +application/xcon-conference-info-diff+xml +application/xcon-conference-info+xml +application/xenc+xml +application/xhtml+xml xhtml xhtm xht +# application/xhtml-voice+xml obsoleted by application/xv+xml +# xml, xsd, rng: text/xml +application/xml +# mod: audio/x-mod +application/xml-dtd dtd +# ent: text/xml-external-parsed-entity +application/xml-external-parsed-entity +application/xmpp+xml +application/xop+xml xop +application/xslt+xml xsl xslt +application/xv+xml mxml xhvml xvml xvm +application/yang yang +application/yin+xml yin +application/zip zip +application/zlib +audio/1d-interleaved-parityfec +audio/32kadpcm 726 +# 3gp, 3gpp: video/3gpp +audio/3gpp +# 3g2, 3gpp2: video/3gpp2 +audio/3gpp2 +audio/ac3 ac3 +audio/AMR amr +audio/AMR-WB awb +audio/amr-wb+ +audio/asc acn +# aa3, omg: audio/ATRAC3 +audio/ATRAC-ADVANCED-LOSSLESS aal +# aa3, omg: audio/ATRAC3 +audio/ATRAC-X atx +audio/ATRAC3 at3 aa3 omg +audio/basic au snd +audio/BV16 +audio/BV32 +audio/clearmode +audio/CN +audio/DAT12 +audio/dls dls +audio/dsr-es201108 +audio/dsr-es202050 +audio/dsr-es202211 +audio/dsr-es202212 +audio/DV +audio/DVI4 +audio/eac3 +audio/EVRC evc +# qcp: audio/qcelp +audio/EVRC-QCP +audio/EVRC0 +audio/EVRC1 +audio/EVRCB evb +audio/EVRCB0 +audio/EVRCWB evw +audio/EVRCWB0 +audio/EVRCWB1 +audio/fwdred +audio/G719 +audio/G722 +audio/G7221 +audio/G723 +audio/G726-16 +audio/G726-24 +audio/G726-32 +audio/G726-40 +audio/G728 +audio/G729 +audio/G7291 +audio/G729D +audio/G729E +audio/GSM +audio/GSM-EFR +audio/GSM-HR-08 +audio/iLBC lbc +audio/ip-mr_v2.5 +# wav: audio/wav +audio/L16 l16 +audio/L20 +audio/L24 +audio/L8 +audio/LPC +audio/mobile-xmf mxmf +# mp4, mpg4: video/mp4, see RFC 4337 +audio/mp4 +audio/MP4A-LATM +audio/MPA +audio/mpa-robust +audio/mpeg mp3 mpga mp1 mp2 +audio/mpeg4-generic +audio/ogg oga ogg spx +audio/parityfec +audio/PCMA +audio/PCMA-WB +audio/PCMU +audio/PCMU-WB +audio/prs.sid sid psid +audio/qcelp qcp +audio/raptorfec +audio/RED +audio/rtp-enc-aescm128 +audio/rtp-midi +audio/rtx +audio/SMV smv +# qcp: audio/qcelp, see RFC 3625 +audio/SMV-QCP +audio/SMV0 +# mid: audio/midi +audio/sp-midi +audio/speex +audio/t140c +audio/t38 +audio/telephone-event +audio/tone +audio/UEMCLIP +audio/ulpfec +audio/VDVI +audio/VMR-WB +audio/vnd.3gpp.iufp +audio/vnd.4SB +audio/vnd.audikoz koz +audio/vnd.CELP +audio/vnd.cisco.nse +audio/vnd.cmles.radio-events +audio/vnd.cns.anp1 +audio/vnd.cns.inf1 +audio/vnd.dece.audio uva uvva +audio/vnd.digital-winds eol +audio/vnd.dlna.adts +audio/vnd.dolby.heaac.1 +audio/vnd.dolby.heaac.2 +audio/vnd.dolby.mlp mlp +audio/vnd.dolby.mps +audio/vnd.dolby.pl2 +audio/vnd.dolby.pl2x +audio/vnd.dolby.pl2z +audio/vnd.dolby.pulse.1 +audio/vnd.dra +# wav: audio/wav, cpt: application/mac-compactpro +audio/vnd.dts dts +audio/vnd.dts.hd dtshd +# dvb: video/vnd.dvb.file +audio/vnd.dvb.file +audio/vnd.everad.plj plj +# rm: audio/x-pn-realaudio +audio/vnd.hns.audio +audio/vnd.lucent.voice lvp +audio/vnd.ms-playready.media.pya pya +# mxmf: audio/mobile-xmf +audio/vnd.nokia.mobile-xmf +audio/vnd.nortel.vbk vbk +audio/vnd.nuera.ecelp4800 ecelp4800 +audio/vnd.nuera.ecelp7470 ecelp7470 +audio/vnd.nuera.ecelp9600 ecelp9600 +audio/vnd.octel.sbc +# audio/vnd.qcelp deprecated in favour of audio/qcelp +audio/vnd.rhetorex.32kadpcm +audio/vnd.rip rip +audio/vnd.sealedmedia.softseal.mpeg smp3 smp s1m +audio/vnd.vmx.cvsd +audio/vorbis +audio/vorbis-config +image/cgm +image/fits fits fit fts +image/g3fax +image/gif gif +image/ief ief +image/jp2 jp2 jpg2 +image/jpeg jpg jpeg jpe jfif +image/jpm jpm jpgm +image/jpx jpx jpf +image/ktx ktx +image/naplps +image/png png +image/prs.btif btif btf +image/prs.pti pti +image/svg+xml svg svgz +image/t38 t38 +image/tiff tiff tif +image/tiff-fx tfx +image/vnd.adobe.photoshop psd +image/vnd.airzip.accelerator.azv azv +image/vnd.cns.inf2 +image/vnd.dece.graphic uvi uvvi uvg uvvg +image/vnd.djvu djvu djv +# sub: text/vnd.dvb.subtitle +image/vnd.dvb.subtitle +image/vnd.dwg +image/vnd.dxf dxf +image/vnd.fastbidsheet fbs +image/vnd.fpx fpx +image/vnd.fst fst +image/vnd.fujixerox.edmics-mmr mmr +image/vnd.fujixerox.edmics-rlc rlc +image/vnd.globalgraphics.pgb pgb +image/vnd.microsoft.icon ico +image/vnd.mix +image/vnd.ms-modi mdi +image/vnd.net-fpx +image/vnd.radiance hdr rgbe xyze +image/vnd.sealed.png spng spn s1n +image/vnd.sealedmedia.softseal.gif sgif sgi s1g +image/vnd.sealedmedia.softseal.jpg sjpg sjp s1j +image/vnd.svf +image/vnd.wap.wbmp wbmp +image/vnd.xiff xif +message/CPIM +message/delivery-status +message/disposition-notification +message/external-body +message/feedback-report +message/global u8msg +message/global-delivery-status u8dsn +message/global-disposition-notification u8mdn +message/global-headers u8hdr +message/http +# cl: application/simple-filter+xml +message/imdn+xml +# message/news obsoleted by message/rfc822 +message/partial +message/rfc822 eml mail art +message/s-http +message/sip +message/sipfrag +message/tracking-status +message/vnd.si.simp +model/iges igs iges +model/mesh msh mesh silo +model/vnd.collada+xml dae +model/vnd.dwf dwf +# 3dml, 3dm: text/vnd.in3d.3dml +model/vnd.flatland.3dml +model/vnd.gdl gdl gsm win dor lmp rsm msm ism +model/vnd.gs-gdl +model/vnd.gtw gtw +model/vnd.moml+xml moml +model/vnd.mts mts +model/vnd.parasolid.transmit.binary x_b xmt_bin +model/vnd.parasolid.transmit.text x_t xmt_txt +model/vnd.vtu vtu +model/vrml wrl vrml +multipart/alternative +multipart/appledouble +multipart/byteranges +multipart/digest +multipart/encrypted +multipart/form-data +multipart/header-set +multipart/mixed +multipart/parallel +multipart/related +multipart/report +multipart/signed +multipart/voice-message vpm +text/1d-interleaved-parityfec +text/calendar ics ifb +text/css css +text/csv csv +text/directory +text/dns soa zone +# text/ecmascript obsoleted by application/ecmascript +text/enriched +text/fwdred +text/html html htm +# text/javascript obsoleted by application/javascript +text/jcr-cnd cnd +text/mizar miz +text/n3 n3 +text/parityfec +text/plain txt asc text pm el c h cc hh cxx hxx f90 +text/prs.fallenstein.rst rst +text/prs.lines.tag tag dsc +text/raptorfec +text/RED +text/rfc822-headers +text/richtext rtx +# rtf: application/rtf +text/rtf +text/rtp-enc-aescm128 +text/rtx +text/sgml sgml sgm +text/t140 +text/tab-separated-values tsv +text/troff +text/turtle ttl +text/ulpfec +text/uri-list uris uri +text/vcard vcf vcard +text/vnd.abc abc +# curl: application/vnd.curl +text/vnd.curl +text/vnd.DMClientScript dms +text/vnd.dvb.subtitle sub +text/vnd.esmertec.theme-descriptor jtd +text/vnd.fly fly +text/vnd.fmi.flexstor flx +text/vnd.graphviz gv dot +text/vnd.in3d.3dml 3dml 3dm +text/vnd.in3d.spot spot spo +text/vnd.IPTC.NewsML +text/vnd.IPTC.NITF +text/vnd.latex-z +text/vnd.motorola.reflex +text/vnd.ms-mediapackage mpf +text/vnd.net2phone.commcenter.command ccc +text/vnd.radisys.msml-basic-layout +text/vnd.si.uricatalogue uric +text/vnd.sun.j2me.app-descriptor jad +text/vnd.trolltech.linguist ts +text/vnd.wap.si si +text/vnd.wap.sl sl +text/vnd.wap.wml wml +text/vnd.wap.wmlscript wmls +text/xml xml xsd rng +text/xml-external-parsed-entity ent +video/1d-interleaved-parityfec +video/3gpp 3gp 3gpp +video/3gpp2 3g2 3gpp2 +video/3gpp-tt +video/BMPEG +video/BT656 +video/CelB +video/DV +video/H261 +video/H263 +video/H263-1998 +video/H263-2000 +video/H264 +video/H264-RCDO +video/H264-SVC +video/JPEG +video/jpeg2000 +video/mj2 mj2 mjp2 +video/MP1S +video/MP2P +video/MP2T +video/mp4 mp4 mpg4 +video/MP4V-ES +video/mpeg mpeg mpg mpe +video/mpeg4-generic +video/MPV +video/nv +video/ogg ogv +video/parityfec +video/pointer +video/quicktime mov qt +video/raptorfec +video/raw +video/rtp-enc-aescm128 +video/rtx +video/SMPTE292M +video/ulpfec +video/vc1 +video/vnd.CCTV +video/vnd.dece.hd uvh uvvh +video/vnd.dece.mobile uvm uvvm +video/vnd.dece.mp4 uvu uvvu +video/vnd.dece.pd uvp uvvp +video/vnd.dece.sd uvs uvvs +video/vnd.dece.video uvv uvvv +video/vnd.directv.mpeg +video/vnd.directv.mpeg-tts +video/vnd.dlna.mpeg-tts +video/vnd.dvb.file dvb +video/vnd.fvt fvt +# rm: audio/x-pn-realaudio +video/vnd.hns.video +video/vnd.iptvforum.1dparityfec-1010 +video/vnd.iptvforum.1dparityfec-2005 +video/vnd.iptvforum.2dparityfec-1010 +video/vnd.iptvforum.2dparityfec-2005 +video/vnd.iptvforum.ttsavc +video/vnd.iptvforum.ttsmpeg2 +video/vnd.motorola.video +video/vnd.motorola.videop +video/vnd.mpegurl mxu m4u +video/vnd.ms-playready.media.pyv pyv +video/vnd.nokia.interleaved-multimedia nim +video/vnd.nokia.videovoip +# mp4: video/mp4 +video/vnd.objectvideo +video/vnd.sealed.mpeg1 smpg s11 +# smpg: video/vnd.sealed.mpeg1 +video/vnd.sealed.mpeg4 s14 +video/vnd.sealed.swf sswf ssw +video/vnd.sealedmedia.softseal.mov smov smo s1q +# uvu, uvvu: video/vnd.dece.mp4 +video/vnd.uvvu.mp4 +video/vnd.vivo + +# Non-IANA types + +application/epub+zip epub +application/mac-compactpro cpt +application/metalink+xml metalink +application/rss+xml rss +application/vnd.android.package-archive apk +application/vnd.oma.dd+xml dd +application/vnd.oma.drm.content dcf +# odf: application/vnd.oasis.opendocument.formula +application/vnd.oma.drm.dcf o4a o4v +application/vnd.oma.drm.message dm +application/vnd.oma.drm.rights+wbxml drc +application/vnd.oma.drm.rights+xml dr +application/vnd.sun.xml.calc sxc +application/vnd.sun.xml.calc.template stc +application/vnd.sun.xml.draw sxd +application/vnd.sun.xml.draw.template std +application/vnd.sun.xml.impress sxi +application/vnd.sun.xml.impress.template sti +application/vnd.sun.xml.math sxm +application/vnd.sun.xml.writer sxw +application/vnd.sun.xml.writer.global sxg +application/vnd.sun.xml.writer.template stw +application/vnd.symbian.install sis +application/vnd.wap.mms-message mms +application/x-annodex anx +application/x-bcpio bcpio +application/x-bittorrent torrent +application/x-bzip2 bz2 +application/x-cdlink vcd +application/x-chess-pgn pgn +application/x-cpio cpio +application/x-csh csh +application/x-director dcr dir dxr +application/x-dvi dvi +application/x-futuresplash spl +application/x-gtar gtar +application/x-hdf hdf +application/x-java-archive jar +application/x-java-jnlp-file jnlp +application/x-java-pack200 pack +application/x-killustrator kil +application/x-latex latex +application/x-netcdf nc cdf +application/x-perl pl +application/x-rpm rpm +application/x-sh sh +application/x-shar shar +application/x-shockwave-flash swf +application/x-stuffit sit +application/x-sv4cpio sv4cpio +application/x-sv4crc sv4crc +application/x-tar tar +application/x-tcl tcl +application/x-tex tex +application/x-texinfo texinfo texi +application/x-troff t tr roff +application/x-troff-man man 1 2 3 4 5 6 7 8 +application/x-troff-me me +application/x-troff-ms ms +application/x-ustar ustar +application/x-wais-source src +application/x-xpinstall xpi +application/x-xspf+xml xspf +application/x-xz xz +audio/midi mid midi kar +audio/x-aiff aif aiff aifc +audio/x-annodex axa +audio/x-flac flac +audio/x-mod mod ult uni m15 mtm 669 med +audio/x-mpegurl m3u +audio/x-ms-wax wax +audio/x-ms-wma wma +audio/x-pn-realaudio ram rm +audio/x-realaudio ra +audio/x-s3m s3m +audio/x-stm stm +audio/x-wav wav +chemical/x-xyz xyz +image/bmp bmp +image/x-cmu-raster ras +image/x-portable-anymap pnm +image/x-portable-bitmap pbm +image/x-portable-graymap pgm +image/x-portable-pixmap ppm +image/x-rgb rgb +image/x-targa tga +image/x-xbitmap xbm +image/x-xpixmap xpm +image/x-xwindowdump xwd +text/cache-manifest manifest +text/html-sandboxed sandboxed +text/x-pod pod +text/x-setext etx +video/webm webm +video/x-annodex axv +video/x-flv flv +video/x-javafx fxm +video/x-ms-asf asx +video/x-ms-wm wm +video/x-ms-wmv wmv +video/x-ms-wmx wmx +video/x-ms-wvx wvx +video/x-msvideo avi +video/x-sgi-movie movie +x-conference/x-cooltalk ice +x-epoc/x-sisx-app sisx diff --git a/firmware_mod/run.sh b/firmware_mod/run.sh index 00ec797..29c5866 100755 --- a/firmware_mod/run.sh +++ b/firmware_mod/run.sh @@ -10,7 +10,9 @@ fi if [ ! -f $CONFIGPATH/bftpd.conf ]; then cp $SAMPLE_CONFIGPATH/bftpd.conf $CONFIGPATH/bftpd.conf fi - +if [ ! -f $CONFIGPATH/boa.conf ]; then + cp $SAMPLE_CONFIGPATH/boa.conf $CONFIGPATH/boa.conf +fi ## Start Wifi: insmod /driver/8189es.ko @@ -27,6 +29,8 @@ insmod /driver/sensor_jxf22.ko data_interface=2 pwdn_gpio=-1 reset_gpio=18 senso /system/sdcard/bin/dropbearmulti dropbear -R /system/sdcard/bin/bftpd -d +## Start Webserver: +/system/sdcard/bin/boa -c /system/sdcard/config/ echo "Startup finished!" diff --git a/firmware_mod/sample_config/boa.conf b/firmware_mod/sample_config/boa.conf new file mode 100644 index 0000000..5fcb231 --- /dev/null +++ b/firmware_mod/sample_config/boa.conf @@ -0,0 +1,243 @@ +# Boa v0.94 configuration file +# File format has not changed from 0.93 +# File format has changed little from 0.92 +# version changes are noted in the comments +# +# The Boa configuration file is parsed with a custom parser. If it +# reports an error, the line number will be provided; it should be easy +# to spot. The syntax of each of these rules is very simple, and they +# can occur in any order. Where possible these directives mimic those +# of NCSA httpd 1.3; I saw no reason to introduce gratuitous +# differences. + +# $Id: boa.conf,v 1.3.2.6 2003/02/02 05:02:22 jnelson Exp $ + +# The "ServerRoot" is not in this configuration file. It can be +# compiled into the server (see defines.h) or specified on the command +# line with the -c option, for example: +# +# boa -c /usr/local/boa + + +# Port: The port Boa runs on. The default port for http servers is 80. +# If it is less than 1024, the server must be started as root. + +Port 80 + +# Listen: the Internet address to bind(2) to. If you leave it out, +# it takes the behavior before 0.93.17.2, which is to bind to all +# addresses (INADDR_ANY). You only get one "Listen" directive, +# if you want service on multiple IP addresses, you have three choices: +# 1. Run boa without a "Listen" directive +# a. All addresses are treated the same; makes sense if the addresses +# are localhost, ppp, and eth0. +# b. Use the VirtualHost directive below to point requests to different +# files. Should be good for a very large number of addresses (web +# hosting clients). +# 2. Run one copy of boa per IP address, each has its own configuration +# with a "Listen" directive. No big deal up to a few tens of addresses. +# Nice separation between clients. +# The name you provide gets run through inet_aton(3), so you have to use dotted +# quad notation. This configuration is too important to trust some DNS. + +#Listen 192.68.0.5 + +# User: The name or UID the server should run as. +# Group: The group name or GID the server should run as. + + +User root +Group root + +# ServerAdmin: The email address where server problems should be sent. +# Note: this is not currently used, except as an environment variable +# for CGIs. + +#ServerAdmin root@localhost + +# PidFile: where to put the pid of the process. +# Comment out to write no pid file. +# Note: Because Boa drops privileges at startup, and the +# pid file is written by the UID/GID before doing so, Boa +# does not attempt removal of the pid file. +# PidFile /var/run/boa.pid + +# ErrorLog: The location of the error log file. If this does not start +# with /, it is considered relative to the server root. +# Set to /dev/null if you don't want errors logged. +# If unset, defaults to /dev/stderr +# Please NOTE: Sending the logs to a pipe ('|'), as shown below, +# is somewhat experimental and might fail under heavy load. +# "Usual libc implementations of printf will stall the whole +# process if the receiving end of a pipe stops reading." +#ErrorLog "|/usr/sbin/cronolog --symlink=/var/log/boa/error_log /var/log/boa/error-%Y%m%d.log" + +ErrorLog /var/log/boa.log + +# AccessLog: The location of the access log file. If this does not +# start with /, it is considered relative to the server root. +# Comment out or set to /dev/null (less effective) to disable. +# Useful to set to /dev/stdout for use with daemontools. +# Access logging. +# Please NOTE: Sending the logs to a pipe ('|'), as shown below, +# is somewhat experimental and might fail under heavy load. +# "Usual libc implementations of printf will stall the whole +# process if the receiving end of a pipe stops reading." +#AccessLog "|/usr/sbin/cronolog --symlink=/var/log/boa/access_log /var/log/boa/access-%Y%m%d.log" + +AccessLog /var/log/boa.log + +# CGILog /var/log/boa/cgi_log +# CGILog: The location of the CGI stderr log file. If this does not +# start with /, it is considered relative to the server root. +# The log file would contain any contents send to /dev/stderr +# by the CGI. If this is commented out, it defaults to whatever +# ErrorLog points. Set to /dev/null to disable CGI stderr logging. +# Please NOTE: Sending the logs to a pipe ('|'), as shown below, +# is somewhat experimental and might fail under heavy load. +# "Usual libc implementations of printf will stall the whole +# process if the receiving end of a pipe stops reading." +#CGILog "|/usr/sbin/cronolog --symlink=/var/log/boa/cgi_log /var/log/boa/cgi-%Y%m%d.log" + +# CGIumask 027 (no mask for user, read-only for group, and nothing for user) +# CGIumask 027 +# The CGIumask is set immediately before execution of the CGI. + +# UseLocaltime: Logical switch. Uncomment to use localtime +# instead of UTC time +#UseLocaltime + +# VerboseCGILogs: this is just a logical switch. +# It simply notes the start and stop times of cgis in the error log +# Comment out to disable. + +#VerboseCGILogs + +# ServerName: the name of this server that should be sent back to +# clients if different than that returned by gethostname + gethostbyname + +#ServerName www.your.org.here + +# VirtualHost: a logical switch. +# Comment out to disable. +# Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A' +# become /var/www/IP-A. +# Example: http://localhost/ becomes /var/www/127.0.0.1 +# +# Not used until version 0.93.17.2. This "feature" also breaks commonlog +# output rules, it prepends the interface number to each access_log line. +# You are expected to fix that problem with a postprocessing script. + +#VirtualHost + + +# VHostRoot: the root location for all virtually hosted data +# Comment out to disable. +# Incompatible with 'Virtualhost' and 'DocumentRoot'!! +# Given VHostRoot /var/www, requests to host foo.bar.com, +# where foo.bar.com is ip a.b.c.d, +# become /var/www/a.b.c.d/foo.bar.com +# Hostnames are "cleaned", and must conform to the rules +# specified in rfc1034, which are be summarized here: +# +# Hostnames must start with a letter, end with a letter or digit, +# and have as interior characters only letters, digits, and hyphen. +# Hostnames must not exceed 63 characters in length. + +#VHostRoot /var/www + +# DefaultVHost +# Define this in order to have a default hostname when the client does not +# specify one, if using VirtualHostName. If not specified, the word +# "default" will be used for compatibility with older clients. + +#DefaultVHost foo.bar.com + +# DocumentRoot: The root directory of the HTML documents. +# Comment out to disable server non user files. + +DocumentRoot /system/sdcard/www + +# UserDir: The name of the directory which is appended onto a user's home +# directory if a ~user request is received. + +UserDir public_html + +# DirectoryIndex: Name of the file to use as a pre-written HTML +# directory index. Please MAKE AND USE THESE FILES. On the +# fly creation of directory indexes can be _slow_. +# Comment out to always use DirectoryMaker + +DirectoryIndex index.html + +# DirectoryMaker: Name of program used to create a directory listing. +# Comment out to disable directory listings. If both this and +# DirectoryIndex are commented out, accessing a directory will give +# an error (though accessing files in the directory are still ok). + +DirectoryMaker /system/sdcard/bin/boa_indexer + +# DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker +# has been commented out, the the on-the-fly indexing of Boa can be used +# to generate indexes of directories. Be warned that the output is +# extremely minimal and can cause delays when slow disks are used. +# Note: The DirectoryCache must be writable by the same user/group that +# Boa runs as. + +# DirectoryCache /var/spool/boa/dircache + +# KeepAliveMax: Number of KeepAlive requests to allow per connection +# Comment out, or set to 0 to disable keepalive processing + +KeepAliveMax 1000 + +# KeepAliveTimeout: seconds to wait before keepalive connection times out + +KeepAliveTimeout 10 + +# MimeTypes: This is the file that is used to generate mime type pairs +# and Content-Type fields for boa. +# Set to /dev/null if you do not want to load a mime types file. +# Do *not* comment out (better use AddType!) + +MimeTypes /system/sdcard/bin/mime.types + +# DefaultType: MIME type used if the file extension is unknown, or there +# is no file extension. + +DefaultType text/plain + +# CGIPath: The value of the $PATH environment variable given to CGI progs. + +CGIPath /bin:/usr/bin:/usr/local/bin + +# SinglePostLimit: The maximum allowable number of bytes in +# a single POST. Default is normally 1MB. + +# AddType: adds types without editing mime.types +# Example: AddType type extension [extension ...] + +# Uncomment the next line if you want .cgi files to execute from anywhere +#AddType application/x-httpd-cgi cgi + +# Redirect, Alias, and ScriptAlias all have the same semantics -- they +# match the beginning of a request and take appropriate action. Use +# Redirect for other servers, Alias for the same server, and ScriptAlias +# to enable directories for script execution. + +# Redirect allows you to tell clients about documents which used to exist in +# your server's namespace, but do not anymore. This allows you to tell the +# clients where to look for the relocated document. +# Example: Redirect /bar http://elsewhere/feh/bar + +# Aliases: Aliases one path to another. +# Example: Alias /path1/bar /path2/foo + +Alias /doc /usr/doc + +# ScriptAlias: Maps a virtual path to a directory for serving scripts +# Example: ScriptAlias /htbin/ /www/htbin/ + +ScriptAlias /cgi-bin/ /system/sdcard/www/cgi-bin/ + +ServerName www.your.org.here \ No newline at end of file diff --git a/firmware_mod/www/index.html b/firmware_mod/www/index.html new file mode 100644 index 0000000..8318c86 --- /dev/null +++ b/firmware_mod/www/index.html @@ -0,0 +1 @@ +Test \ No newline at end of file