diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/LWP')
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/Authen/Ntlm.pm | 2 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/ConnCache.pm | 9 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/MediaTypes.pm | 26 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/Protocol.pm | 2 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/Protocol/http.pm | 34 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/Protocol/http10.pm | 289 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/Protocol/https.pm | 51 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/Protocol/https10.pm | 75 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/RobotUA.pm | 21 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/Simple.pm | 2 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/UserAgent.pm | 242 | ||||
-rw-r--r-- | Master/tlpkg/tlperl/lib/LWP/media.types | 1539 |
12 files changed, 1229 insertions, 1063 deletions
diff --git a/Master/tlpkg/tlperl/lib/LWP/Authen/Ntlm.pm b/Master/tlpkg/tlperl/lib/LWP/Authen/Ntlm.pm index d0e560b7b56..9c1bbe3cbc1 100644 --- a/Master/tlpkg/tlperl/lib/LWP/Authen/Ntlm.pm +++ b/Master/tlpkg/tlperl/lib/LWP/Authen/Ntlm.pm @@ -3,7 +3,7 @@ package LWP::Authen::Ntlm; use strict; use vars qw/$VERSION/; -$VERSION = '5.835'; +$VERSION = "6.00"; use Authen::NTLM "1.02"; use MIME::Base64 "2.12"; diff --git a/Master/tlpkg/tlperl/lib/LWP/ConnCache.pm b/Master/tlpkg/tlperl/lib/LWP/ConnCache.pm index 6ac55cedd40..fcc0b2e027d 100644 --- a/Master/tlpkg/tlperl/lib/LWP/ConnCache.pm +++ b/Master/tlpkg/tlperl/lib/LWP/ConnCache.pm @@ -3,13 +3,16 @@ package LWP::ConnCache; use strict; use vars qw($VERSION $DEBUG); -$VERSION = "5.810"; +$VERSION = "6.02"; sub new { my($class, %cnf) = @_; - my $total_capacity = delete $cnf{total_capacity}; - $total_capacity = 1 unless defined $total_capacity; + + my $total_capacity = 1; + if (exists $cnf{total_capacity}) { + $total_capacity = delete $cnf{total_capacity}; + } if (%cnf && $^W) { require Carp; Carp::carp("Unrecognised options: @{[sort keys %cnf]}") diff --git a/Master/tlpkg/tlperl/lib/LWP/MediaTypes.pm b/Master/tlpkg/tlperl/lib/LWP/MediaTypes.pm index f7fc671a5bc..8c2a8aee334 100644 --- a/Master/tlpkg/tlperl/lib/LWP/MediaTypes.pm +++ b/Master/tlpkg/tlperl/lib/LWP/MediaTypes.pm @@ -4,7 +4,7 @@ require Exporter; @ISA = qw(Exporter); @EXPORT = qw(guess_media_type media_suffix); @EXPORT_OK = qw(add_type add_encoding read_media_types); -$VERSION = "5.835"; +$VERSION = "6.02"; use strict; @@ -41,13 +41,6 @@ read_media_types(); -sub _dump { - require Data::Dumper; - Data::Dumper->new([\%suffixType, \%suffixExt, \%suffixEncoding], - [qw(*suffixType *suffixExt *suffixEncoding)])->Dump; -} - - sub guess_media_type { my($file, $header) = @_; @@ -168,24 +161,13 @@ sub read_media_types local($/, $_) = ("\n", undef); # ensure correct $INPUT_RECORD_SEPARATOR my @priv_files = (); - if($^O eq "MacOS") { - push(@priv_files, "$ENV{HOME}:media.types", "$ENV{HOME}:mime.types") - if defined $ENV{HOME}; # Some does not have a home (for instance Win32) - } - else { - push(@priv_files, "$ENV{HOME}/.media.types", "$ENV{HOME}/.mime.types") - if defined $ENV{HOME}; # Some doesn't have a home (for instance Win32) - } + push(@priv_files, "$ENV{HOME}/.media.types", "$ENV{HOME}/.mime.types") + if defined $ENV{HOME}; # Some doesn't have a home (for instance Win32) # Try to locate "media.types" file, and initialize %suffixType from it my $typefile; unless (@files) { - if($^O eq "MacOS") { - @files = map {$_."LWP:media.types"} @INC; - } - else { - @files = map {"$_/LWP/media.types"} @INC; - } + @files = map {"$_/LWP/media.types"} @INC; push @files, @priv_files; } for $typefile (@files) { diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol.pm index 61a28cd1386..dbd82d962cc 100644 --- a/Master/tlpkg/tlperl/lib/LWP/Protocol.pm +++ b/Master/tlpkg/tlperl/lib/LWP/Protocol.pm @@ -2,7 +2,7 @@ package LWP::Protocol; require LWP::MemberMixin; @ISA = qw(LWP::MemberMixin); -$VERSION = "5.829"; +$VERSION = "6.00"; use strict; use Carp (); diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/http.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/http.pm index 59c9eded1ab..8d7c6d93928 100644 --- a/Master/tlpkg/tlperl/lib/LWP/Protocol/http.pm +++ b/Master/tlpkg/tlperl/lib/LWP/Protocol/http.pm @@ -40,8 +40,15 @@ sub _new_socket unless ($sock) { # IO::Socket::INET leaves additional error messages in $@ - $@ =~ s/^.*?: //; - die "Can't connect to $host:$port ($@)"; + my $status = "Can't connect to $host:$port"; + if ($@ =~ /\bconnect: (.*)/ || + $@ =~ /\b(Bad hostname)\b/ || + $@ =~ /\b(certificate verify failed)\b/ || + $@ =~ /\b(Crypt-SSLeay can't verify hostnames)\b/ + ) { + $status .= " ($1)"; + } + die "$status\n\n$@"; } # perl 5.005's IO::Socket does not have the blocking method. @@ -153,6 +160,16 @@ sub request # connect to remote site my $socket = $self->_new_socket($host, $port, $timeout); + + my $http_version = ""; + if (my $proto = $request->protocol) { + if ($proto =~ /^(?:HTTP\/)?(1.\d+)$/) { + $http_version = $1; + $socket->http_version($http_version); + $socket->send_te(0) if $http_version eq "1.0"; + } + } + $self->_check_sock($request, $socket); my @h; @@ -237,7 +254,15 @@ sub request my $eof; my $wbuf; my $woffset = 0; - if (ref($content_ref) eq 'CODE') { + INITIAL_READ: + if ($write_wait) { + # skip filling $wbuf when waiting for 100-continue + # because if the response is a redirect or auth required + # the request will be cloned and there is no way + # to reset the input stream + # return here via the label after the 100-continue is read + } + elsif (ref($content_ref) eq 'CODE') { my $buf = &$content_ref(); $buf = "" unless defined($buf); $buf = sprintf "%x%s%s%s", length($buf), $CRLF, $buf, $CRLF @@ -260,7 +285,7 @@ sub request vec($fbits, fileno($socket), 1) = 1; WRITE: - while ($woffset < length($$wbuf)) { + while ($write_wait || $woffset < length($$wbuf)) { my $sel_timeout = $timeout; if ($write_wait) { @@ -316,6 +341,7 @@ sub request if ($code eq "100") { $write_wait = 0; undef($code); + goto INITIAL_READ; } else { $drop_connection++; diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/http10.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/http10.pm deleted file mode 100644 index 08ce9cf15af..00000000000 --- a/Master/tlpkg/tlperl/lib/LWP/Protocol/http10.pm +++ /dev/null @@ -1,289 +0,0 @@ -package LWP::Protocol::http10; - -use strict; - -require HTTP::Response; -require HTTP::Status; -require IO::Socket; -require IO::Select; - -use vars qw(@ISA @EXTRA_SOCK_OPTS); - -require LWP::Protocol; -@ISA = qw(LWP::Protocol); - -my $CRLF = "\015\012"; # how lines should be terminated; - # "\r\n" is not correct on all systems, for - # instance MacPerl defines it to "\012\015" - -sub _new_socket -{ - my($self, $host, $port, $timeout) = @_; - - local($^W) = 0; # IO::Socket::INET can be noisy - my $sock = IO::Socket::INET->new(PeerAddr => $host, - PeerPort => $port, - Proto => 'tcp', - Timeout => $timeout, - $self->_extra_sock_opts($host, $port), - ); - unless ($sock) { - # IO::Socket::INET leaves additional error messages in $@ - $@ =~ s/^.*?: //; - die "Can't connect to $host:$port ($@)"; - } - $sock; -} - -sub _extra_sock_opts # to be overridden by subclass -{ - return @EXTRA_SOCK_OPTS; -} - - -sub _check_sock -{ - #my($self, $req, $sock) = @_; -} - -sub _get_sock_info -{ - my($self, $res, $sock) = @_; - if (defined(my $peerhost = $sock->peerhost)) { - $res->header("Client-Peer" => "$peerhost:" . $sock->peerport); - } -} - -sub _fixup_header -{ - my($self, $h, $url, $proxy) = @_; - - $h->remove_header('Connection'); # need support here to be useful - - # HTTP/1.1 will require us to send the 'Host' header, so we might - # as well start now. - my $hhost = $url->authority; - if ($hhost =~ s/^([^\@]*)\@//) { # get rid of potential "user:pass@" - # add authorization header if we need them. HTTP URLs do - # not really support specification of user and password, but - # we allow it. - if (defined($1) && not $h->header('Authorization')) { - require URI::Escape; - $h->authorization_basic(map URI::Escape::uri_unescape($_), - split(":", $1, 2)); - } - } - $h->init_header('Host' => $hhost); - - if ($proxy) { - # Check the proxy URI's userinfo() for proxy credentials - # export http_proxy="http://proxyuser:proxypass@proxyhost:port" - my $p_auth = $proxy->userinfo(); - if(defined $p_auth) { - require URI::Escape; - $h->proxy_authorization_basic(map URI::Escape::uri_unescape($_), - split(":", $p_auth, 2)) - } - } -} - - -sub request -{ - my($self, $request, $proxy, $arg, $size, $timeout) = @_; - - $size ||= 4096; - - # check method - my $method = $request->method; - unless ($method =~ /^[A-Za-z0-9_!\#\$%&\'*+\-.^\`|~]+$/) { # HTTP token - return HTTP::Response->new( &HTTP::Status::RC_BAD_REQUEST, - 'Library does not allow method ' . - "$method for 'http:' URLs"); - } - - my $url = $request->uri; - my($host, $port, $fullpath); - - # Check if we're proxy'ing - if (defined $proxy) { - # $proxy is an URL to an HTTP server which will proxy this request - $host = $proxy->host; - $port = $proxy->port; - $fullpath = $method eq "CONNECT" ? - ($url->host . ":" . $url->port) : - $url->as_string; - } - else { - $host = $url->host; - $port = $url->port; - $fullpath = $url->path_query; - $fullpath = "/" unless length $fullpath; - } - - # connect to remote site - my $socket = $self->_new_socket($host, $port, $timeout); - $self->_check_sock($request, $socket); - - my $sel = IO::Select->new($socket) if $timeout; - - my $request_line = "$method $fullpath HTTP/1.0$CRLF"; - - my $h = $request->headers->clone; - my $cont_ref = $request->content_ref; - $cont_ref = $$cont_ref if ref($$cont_ref); - my $ctype = ref($cont_ref); - - # If we're sending content we *have* to specify a content length - # otherwise the server won't know a messagebody is coming. - if ($ctype eq 'CODE') { - die 'No Content-Length header for request with dynamic content' - unless defined($h->header('Content-Length')) || - $h->content_type =~ /^multipart\//; - # For HTTP/1.1 we could have used chunked transfer encoding... - } - else { - $h->header('Content-Length' => length $$cont_ref) - if defined($$cont_ref) && length($$cont_ref); - } - - $self->_fixup_header($h, $url, $proxy); - - my $buf = $request_line . $h->as_string($CRLF) . $CRLF; - my $n; # used for return value from syswrite/sysread - my $length; - my $offset; - - # syswrite $buf - $length = length($buf); - $offset = 0; - while ( $offset < $length ) { - die "write timeout" if $timeout && !$sel->can_write($timeout); - $n = $socket->syswrite($buf, $length-$offset, $offset ); - die $! unless defined($n); - $offset += $n; - } - - if ($ctype eq 'CODE') { - while ( ($buf = &$cont_ref()), defined($buf) && length($buf)) { - # syswrite $buf - $length = length($buf); - $offset = 0; - while ( $offset < $length ) { - die "write timeout" if $timeout && !$sel->can_write($timeout); - $n = $socket->syswrite($buf, $length-$offset, $offset ); - die $! unless defined($n); - $offset += $n; - } - } - } - elsif (defined($$cont_ref) && length($$cont_ref)) { - # syswrite $$cont_ref - $length = length($$cont_ref); - $offset = 0; - while ( $offset < $length ) { - die "write timeout" if $timeout && !$sel->can_write($timeout); - $n = $socket->syswrite($$cont_ref, $length-$offset, $offset ); - die $! unless defined($n); - $offset += $n; - } - } - - # read response line from server - my $response; - $buf = ''; - - # Inside this loop we will read the response line and all headers - # found in the response. - while (1) { - die "read timeout" if $timeout && !$sel->can_read($timeout); - $n = $socket->sysread($buf, $size, length($buf)); - die $! unless defined($n); - die "unexpected EOF before status line seen" unless $n; - - if ($buf =~ s/^(HTTP\/\d+\.\d+)[ \t]+(\d+)[ \t]*([^\012]*)\012//) { - # HTTP/1.0 response or better - my($ver,$code,$msg) = ($1, $2, $3); - $msg =~ s/\015$//; - $response = HTTP::Response->new($code, $msg); - $response->protocol($ver); - - # ensure that we have read all headers. The headers will be - # terminated by two blank lines - until ($buf =~ /^\015?\012/ || $buf =~ /\015?\012\015?\012/) { - # must read more if we can... - die "read timeout" if $timeout && !$sel->can_read($timeout); - my $old_len = length($buf); - $n = $socket->sysread($buf, $size, $old_len); - die $! unless defined($n); - die "unexpected EOF before all headers seen" unless $n; - } - - # now we start parsing the headers. The strategy is to - # remove one line at a time from the beginning of the header - # buffer ($res). - my($key, $val); - while ($buf =~ s/([^\012]*)\012//) { - my $line = $1; - - # if we need to restore as content when illegal headers - # are found. - my $save = "$line\012"; - - $line =~ s/\015$//; - last unless length $line; - - if ($line =~ /^([a-zA-Z0-9_\-.]+)\s*:\s*(.*)/) { - $response->push_header($key, $val) if $key; - ($key, $val) = ($1, $2); - } - elsif ($line =~ /^\s+(.*)/ && $key) { - $val .= " $1"; - } - else { - $response->push_header("Client-Bad-Header-Line" => $line); - } - } - $response->push_header($key, $val) if $key; - last; - - } - elsif ((length($buf) >= 5 and $buf !~ /^HTTP\//) or - $buf =~ /\012/ ) { - # HTTP/0.9 or worse - $response = HTTP::Response->new(&HTTP::Status::RC_OK, "OK"); - $response->protocol('HTTP/0.9'); - last; - - } - else { - # need more data - } - }; - $response->request($request); - $self->_get_sock_info($response, $socket); - - if ($method eq "CONNECT") { - $response->{client_socket} = $socket; # so it can be picked up - $response->content($buf); # in case we read more than the headers - return $response; - } - - my $usebuf = length($buf) > 0; - $response = $self->collect($arg, $response, sub { - if ($usebuf) { - $usebuf = 0; - return \$buf; - } - die "read timeout" if $timeout && !$sel->can_read($timeout); - my $n = $socket->sysread($buf, $size); - die $! unless defined($n); - return \$buf; - } ); - - #$socket->close; - - $response; -} - -1; diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/https.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/https.pm deleted file mode 100644 index 367c8f793d8..00000000000 --- a/Master/tlpkg/tlperl/lib/LWP/Protocol/https.pm +++ /dev/null @@ -1,51 +0,0 @@ -package LWP::Protocol::https; - -use strict; - -use vars qw(@ISA); -require LWP::Protocol::http; -@ISA = qw(LWP::Protocol::http); - -sub socket_type -{ - return "https"; -} - -sub _check_sock -{ - my($self, $req, $sock) = @_; - my $check = $req->header("If-SSL-Cert-Subject"); - if (defined $check) { - my $cert = $sock->get_peer_certificate || - die "Missing SSL certificate"; - my $subject = $cert->subject_name; - die "Bad SSL certificate subject: '$subject' !~ /$check/" - unless $subject =~ /$check/; - $req->remove_header("If-SSL-Cert-Subject"); # don't pass it on - } -} - -sub _get_sock_info -{ - my $self = shift; - $self->SUPER::_get_sock_info(@_); - my($res, $sock) = @_; - $res->header("Client-SSL-Cipher" => $sock->get_cipher); - my $cert = $sock->get_peer_certificate; - if ($cert) { - $res->header("Client-SSL-Cert-Subject" => $cert->subject_name); - $res->header("Client-SSL-Cert-Issuer" => $cert->issuer_name); - } - if(! eval { $sock->get_peer_verify }) { - $res->header("Client-SSL-Warning" => "Peer certificate not verified"); - } -} - -#----------------------------------------------------------- -package LWP::Protocol::https::Socket; - -use vars qw(@ISA); -require Net::HTTPS; -@ISA = qw(Net::HTTPS LWP::Protocol::http::SocketMethods); - -1; diff --git a/Master/tlpkg/tlperl/lib/LWP/Protocol/https10.pm b/Master/tlpkg/tlperl/lib/LWP/Protocol/https10.pm deleted file mode 100644 index 662ba76d284..00000000000 --- a/Master/tlpkg/tlperl/lib/LWP/Protocol/https10.pm +++ /dev/null @@ -1,75 +0,0 @@ -package LWP::Protocol::https10; - -use strict; - -# Figure out which SSL implementation to use -use vars qw($SSL_CLASS); -if ($Net::SSL::VERSION) { - $SSL_CLASS = "Net::SSL"; -} -elsif ($IO::Socket::SSL::VERSION) { - $SSL_CLASS = "IO::Socket::SSL"; # it was already loaded -} -else { - eval { require Net::SSL; }; # from Crypt-SSLeay - if ($@) { - require IO::Socket::SSL; - $SSL_CLASS = "IO::Socket::SSL"; - } - else { - $SSL_CLASS = "Net::SSL"; - } -} - - -use vars qw(@ISA); - -require LWP::Protocol::http10; -@ISA=qw(LWP::Protocol::http10); - -sub _new_socket -{ - my($self, $host, $port, $timeout) = @_; - local($^W) = 0; # IO::Socket::INET can be noisy - my $sock = $SSL_CLASS->new(PeerAddr => $host, - PeerPort => $port, - Proto => 'tcp', - Timeout => $timeout, - ); - unless ($sock) { - # IO::Socket::INET leaves additional error messages in $@ - $@ =~ s/^.*?: //; - die "Can't connect to $host:$port ($@)"; - } - $sock; -} - -sub _check_sock -{ - my($self, $req, $sock) = @_; - my $check = $req->header("If-SSL-Cert-Subject"); - if (defined $check) { - my $cert = $sock->get_peer_certificate || - die "Missing SSL certificate"; - my $subject = $cert->subject_name; - die "Bad SSL certificate subject: '$subject' !~ /$check/" - unless $subject =~ /$check/; - $req->remove_header("If-SSL-Cert-Subject"); # don't pass it on - } -} - -sub _get_sock_info -{ - my $self = shift; - $self->SUPER::_get_sock_info(@_); - my($res, $sock) = @_; - $res->header("Client-SSL-Cipher" => $sock->get_cipher); - my $cert = $sock->get_peer_certificate; - if ($cert) { - $res->header("Client-SSL-Cert-Subject" => $cert->subject_name); - $res->header("Client-SSL-Cert-Issuer" => $cert->issuer_name); - } - $res->header("Client-SSL-Warning" => "Peer certificate not verified"); -} - -1; diff --git a/Master/tlpkg/tlperl/lib/LWP/RobotUA.pm b/Master/tlpkg/tlperl/lib/LWP/RobotUA.pm index 82c99fe26c9..695fac9a86d 100644 --- a/Master/tlpkg/tlperl/lib/LWP/RobotUA.pm +++ b/Master/tlpkg/tlperl/lib/LWP/RobotUA.pm @@ -2,7 +2,7 @@ package LWP::RobotUA; require LWP::UserAgent; @ISA = qw(LWP::UserAgent); -$VERSION = "5.835"; +$VERSION = "6.03"; require WWW::RobotRules; require HTTP::Request; @@ -126,21 +126,16 @@ sub simple_request $self->{'rules'}->parse($robot_url, ""); my $robot_req = HTTP::Request->new('GET', $robot_url); + my $parse_head = $self->parse_head(0); my $robot_res = $self->request($robot_req); + $self->parse_head($parse_head); my $fresh_until = $robot_res->fresh_until; - if ($robot_res->is_success) { - my $c = $robot_res->content; - if ($robot_res->content_type =~ m,^text/, && $c =~ /^\s*Disallow\s*:/mi) { - $self->{'rules'}->parse($robot_url, $c, $fresh_until); - } - else { - $self->{'rules'}->parse($robot_url, "", $fresh_until); - } - - } - else { - $self->{'rules'}->parse($robot_url, "", $fresh_until); + my $content = ""; + if ($robot_res->is_success && $robot_res->content_is_text) { + $content = $robot_res->decoded_content; + $content = "" unless $content && $content =~ /^\s*Disallow\s*:/mi; } + $self->{'rules'}->parse($robot_url, $content, $fresh_until); # recalculate allowed... $allowed = $self->{'rules'}->allowed($request->uri); diff --git a/Master/tlpkg/tlperl/lib/LWP/Simple.pm b/Master/tlpkg/tlperl/lib/LWP/Simple.pm index 05bcdaa1f6d..29c538fdcdb 100644 --- a/Master/tlpkg/tlperl/lib/LWP/Simple.pm +++ b/Master/tlpkg/tlperl/lib/LWP/Simple.pm @@ -14,7 +14,7 @@ require Exporter; use HTTP::Status; push(@EXPORT, @HTTP::Status::EXPORT); -$VERSION = "5.835"; +$VERSION = "6.00"; sub import { diff --git a/Master/tlpkg/tlperl/lib/LWP/UserAgent.pm b/Master/tlpkg/tlperl/lib/LWP/UserAgent.pm index d098a449556..6f72f66fdb3 100644 --- a/Master/tlpkg/tlperl/lib/LWP/UserAgent.pm +++ b/Master/tlpkg/tlperl/lib/LWP/UserAgent.pm @@ -5,7 +5,7 @@ use vars qw(@ISA $VERSION); require LWP::MemberMixin; @ISA = qw(LWP::MemberMixin); -$VERSION = "5.835"; +$VERSION = "6.04"; use HTTP::Request (); use HTTP::Response (); @@ -16,16 +16,6 @@ use LWP::Protocol (); use Carp (); -if ($ENV{PERL_LWP_USE_HTTP_10}) { - require LWP::Protocol::http10; - LWP::Protocol::implementor('http', 'LWP::Protocol::http10'); - eval { - require LWP::Protocol::https10; - LWP::Protocol::implementor('https', 'LWP::Protocol::https10'); - }; -} - - sub new { @@ -41,6 +31,31 @@ sub new my $timeout = delete $cnf{timeout}; $timeout = 3*60 unless defined $timeout; my $local_address = delete $cnf{local_address}; + my $ssl_opts = delete $cnf{ssl_opts} || {}; + unless (exists $ssl_opts->{verify_hostname}) { + # The processing of HTTPS_CA_* below is for compatiblity with Crypt::SSLeay + if (exists $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}) { + $ssl_opts->{verify_hostname} = $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}; + } + elsif ($ENV{HTTPS_CA_FILE} || $ENV{HTTPS_CA_DIR}) { + # Crypt-SSLeay compatiblity (verify peer certificate; but not the hostname) + $ssl_opts->{verify_hostname} = 0; + $ssl_opts->{SSL_verify_mode} = 1; + } + else { + $ssl_opts->{verify_hostname} = 1; + } + } + unless (exists $ssl_opts->{SSL_ca_file}) { + if (my $ca_file = $ENV{PERL_LWP_SSL_CA_FILE} || $ENV{HTTPS_CA_FILE}) { + $ssl_opts->{SSL_ca_file} = $ca_file; + } + } + unless (exists $ssl_opts->{SSL_ca_path}) { + if (my $ca_path = $ENV{PERL_LWP_SSL_CA_PATH} || $ENV{HTTPS_CA_DIR}) { + $ssl_opts->{SSL_ca_path} = $ca_path; + } + } my $use_eval = delete $cnf{use_eval}; $use_eval = 1 unless defined $use_eval; my $parse_head = delete $cnf{parse_head}; @@ -49,7 +64,7 @@ sub new my $max_size = delete $cnf{max_size}; my $max_redirect = delete $cnf{max_redirect}; $max_redirect = 7 unless defined $max_redirect; - my $env_proxy = delete $cnf{env_proxy}; + my $env_proxy = exists $cnf{env_proxy} ? delete $cnf{env_proxy} : $ENV{PERL_LWP_ENV_PROXY}; my $cookie_jar = delete $cnf{cookie_jar}; my $conn_cache = delete $cnf{conn_cache}; @@ -58,7 +73,6 @@ sub new Carp::croak("Can't mix conn_cache and keep_alive") if $conn_cache && $keep_alive; - my $protocols_allowed = delete $cnf{protocols_allowed}; my $protocols_forbidden = delete $cnf{protocols_forbidden}; @@ -83,6 +97,7 @@ sub new def_headers => $def_headers, timeout => $timeout, local_address => $local_address, + ssl_opts => $ssl_opts, use_eval => $use_eval, show_progress=> $show_progress, max_size => $max_size, @@ -161,12 +176,11 @@ sub send_request $@ =~ s/ at .* line \d+.*//s; # remove file/line number $response = _new_response($request, &HTTP::Status::RC_NOT_IMPLEMENTED, $@); if ($scheme eq "https") { - $response->message($response->message . " (Crypt::SSLeay or IO::Socket::SSL not installed)"); + $response->message($response->message . " (LWP::Protocol::https not installed)"); $response->content_type("text/plain"); $response->content(<<EOT); -LWP will support https URLs if either Crypt::SSLeay or IO::Socket::SSL -is installed. More information at -<http://search.cpan.org/dist/libwww-perl/README.SSL>. +LWP will support https URLs if the LWP::Protocol::https module +is installed. EOT } } @@ -175,14 +189,21 @@ EOT if (!$response && $self->{use_eval}) { # we eval, and turn dies into responses below eval { - $response = $protocol->request($request, $proxy, - $arg, $size, $self->{timeout}); + $response = $protocol->request($request, $proxy, $arg, $size, $self->{timeout}) || + die "No response returned by $protocol"; }; if ($@) { - $@ =~ s/ at .* line \d+.*//s; # remove file/line number - $response = _new_response($request, - &HTTP::Status::RC_INTERNAL_SERVER_ERROR, - $@); + if (UNIVERSAL::isa($@, "HTTP::Response")) { + $response = $@; + $response->request($request); + } + else { + my $full = $@; + (my $status = $@) =~ s/\n.*//s; + $status =~ s/ at .* line \d+.*//s; # remove file/line number + my $code = ($status =~ s/^(\d\d\d)\s+//) ? $1 : &HTTP::Status::RC_INTERNAL_SERVER_ERROR; + $response = _new_response($request, $code, $status, $full); + } } } elsif (!$response) { @@ -406,6 +427,22 @@ sub head { } +sub put { + require HTTP::Request::Common; + my($self, @parameters) = @_; + my @suff = $self->_process_colonic_headers(\@parameters, (ref($parameters[1]) ? 2 : 1)); + return $self->request( HTTP::Request::Common::PUT( @parameters ), @suff ); +} + + +sub delete { + require HTTP::Request::Common; + my($self, @parameters) = @_; + my @suff = $self->_process_colonic_headers(\@parameters,1); + return $self->request( HTTP::Request::Common::DELETE( @parameters ), @suff ); +} + + sub _process_colonic_headers { # Process :content_cb / :content_file / :read_size_hint headers. my($self, $args, $start_index) = @_; @@ -455,6 +492,15 @@ sub _process_colonic_headers { return $arg; } + +sub is_online { + my $self = shift; + return 1 if $self->get("http://www.msftncsi.com/ncsi.txt")->content eq "Microsoft NCSI"; + return 1 if $self->get("http://www.apple.com")->content =~ m,<title>Apple</title>,; + return 0; +} + + my @ANI = qw(- \ | /); sub progress { @@ -582,6 +628,31 @@ sub max_size { shift->_elem('max_size', @_); } sub max_redirect { shift->_elem('max_redirect', @_); } sub show_progress{ shift->_elem('show_progress', @_); } +sub ssl_opts { + my $self = shift; + if (@_ == 1) { + my $k = shift; + return $self->{ssl_opts}{$k}; + } + if (@_) { + my $old; + while (@_) { + my($k, $v) = splice(@_, 0, 2); + $old = $self->{ssl_opts}{$k} unless @_; + if (defined $v) { + $self->{ssl_opts}{$k} = $v; + } + else { + delete $self->{ssl_opts}{$k}; + } + } + %{$self->{ssl_opts}} = (%{$self->{ssl_opts}}, @_); + return $old; + } + + return keys %{$self->{ssl_opts}}; +} + sub parse_head { my $self = shift; if (@_) { @@ -800,7 +871,7 @@ sub clone delete $copy->{conn_cache}; # copy any plain arrays and hashes; known not to need recursive copy - for my $k (qw(proxy no_proxy requests_redirectable)) { + for my $k (qw(proxy no_proxy requests_redirectable ssl_opts)) { next unless $copy->{$k}; if (ref($copy->{$k}) eq "ARRAY") { $copy->{$k} = [ @{$copy->{$k}} ]; @@ -925,6 +996,8 @@ sub proxy sub env_proxy { my ($self) = @_; + require Encode; + require Encode::Locale; my($k,$v); while(($k, $v) = each %ENV) { if ($ENV{REQUEST_METHOD}) { @@ -944,7 +1017,7 @@ sub env_proxy { next unless $k =~ /^$URI::scheme_re\z/; # Ignore xxx_proxy variables if xxx isn't a supported protocol next unless LWP::Protocol::implementor($k); - $self->proxy($k, $v); + $self->proxy($k, Encode::decode(locale => $v)); } } } @@ -962,13 +1035,13 @@ sub no_proxy { sub _new_response { - my($request, $code, $message) = @_; + my($request, $code, $message, $content) = @_; my $response = HTTP::Response->new($code, $message); $response->request($request); $response->header("Client-Date" => HTTP::Date::time2str(time)); $response->header("Client-Warning" => "Internal response"); $response->header("Content-Type" => "text/plain"); - $response->content("$code $message\n"); + $response->content($content || "$code $message\n"); return $response; } @@ -1010,8 +1083,8 @@ needs to be performed. This request is then passed to one of the request method the UserAgent, which dispatches it using the relevant protocol, and returns a C<HTTP::Response> object. There are convenience methods for sending the most common request types: get(), -head() and post(). When using these methods then the creation of the -request object is hidden as shown in the synopsis above. +head(), post(), put() and delete(). When using these methods then the +creation of the request object is hidden as shown in the synopsis above. The basic approach of the library is to use HTTP style communication for all protocol schemes. This means that you will construct @@ -1040,6 +1113,7 @@ The following options correspond to attribute methods described below: cookie_jar undef default_headers HTTP::Headers->new local_address undef + ssl_opts { verify_hostname => 1 } max_size undef max_redirect 7 parse_head 1 @@ -1048,13 +1122,13 @@ The following options correspond to attribute methods described below: requests_redirectable ['GET', 'HEAD'] timeout 180 -The following additional options are also accepted: If the -C<env_proxy> option is passed in with a TRUE value, then proxy -settings are read from environment variables (see env_proxy() method -below). If the C<keep_alive> option is passed in, then a -C<LWP::ConnCache> is set up (see conn_cache() method below). The -C<keep_alive> value is passed on as the C<total_capacity> for the -connection cache. +The following additional options are also accepted: If the C<env_proxy> option +is passed in with a TRUE value, then proxy settings are read from environment +variables (see env_proxy() method below). If C<env_proxy> isn't provided the +C<PERL_LWP_ENV_PROXY> environment variable controls if env_proxy() is called +during initalization. If the C<keep_alive> option is passed in, then a +C<LWP::ConnCache> is set up (see conn_cache() method below). The C<keep_alive> +value is passed on as the C<total_capacity> for the connection cache. =item $ua->clone @@ -1284,6 +1358,54 @@ is observed for C<timeout> seconds. This means that the time it takes for the complete transaction and the request() method to actually return might be longer. +=item $ua->ssl_opts + +=item $ua->ssl_opts( $key ) + +=item $ua->ssl_opts( $key => $value ) + +Get/set the options for SSL connections. Without argument return the list +of options keys currently set. With a single argument return the current +value for the given option. With 2 arguments set the option value and return +the old. Setting an option to the value C<undef> removes this option. + +The options that LWP relates to are: + +=over + +=item C<verify_hostname> => $bool + +When TRUE LWP will for secure protocol schemes ensure it connects to servers +that have a valid certificate matching the expected hostname. If FALSE no +checks are made and you can't be sure that you communicate with the expected peer. +The no checks behaviour was the default for libwww-perl-5.837 and earlier releases. + +This option is initialized from the L<PERL_LWP_SSL_VERIFY_HOSTNAME> environment +variable. If this environment variable isn't set; then C<verify_hostname> +defaults to 1. + +=item C<SSL_ca_file> => $path + +The path to a file containing Certificate Authority certificates. +A default setting for this option is provided by checking the environment +variables C<PERL_LWP_SSL_CA_FILE> and C<HTTPS_CA_FILE> in order. + +=item C<SSL_ca_path> => $path + +The path to a directory containing files containing Certificate Authority +certificates. +A default setting for this option is provided by checking the environment +variables C<PERL_LWP_SSL_CA_PATH> and C<HTTPS_CA_DIR> in order. + +=back + +Other options can be set and are processed directly by the SSL Socket implementation +in use. See L<IO::Socket::SSL> or L<Net::SSL> for details. + +The libwww-perl core no longer bundles protocol plugins for SSL. You will need +to install L<LWP::Protocol::https> separately to enable support for processing +https-URLs. + =back =head2 Proxy attributes @@ -1371,13 +1493,13 @@ certain headers to specific requests. The method can assign a new request object to $_[0] to replace the request that is sent fully. -The return value from the callback is ignored. If an exceptions is +The return value from the callback is ignored. If an exception is raised it will abort the request and make the request method return a "400 Bad request" response. =item request_send => sub { my($request, $ua, $h) = @_; ... } -This handler get a chance of handling requests before it's sent to the +This handler gets a chance of handling requests before they're sent to the protocol handlers. It should return an HTTP::Response object if it wishes to terminate the processing; otherwise it should return nothing. @@ -1397,10 +1519,10 @@ was called with a $content_file or $content_cb argument; otherwise true. =item response_data => sub { my($response, $ua, $h, $data) = @_; ... } -This handlers is called for each chunk of data received for the +This handler is called for each chunk of data received for the response. The handler might croak to abort the request. -This handler need to return a TRUE value to be called again for +This handler needs to return a TRUE value to be called again for subsequent chunks for the same request. =item response_done => sub { my($response, $ua, $h) = @_; ... } @@ -1412,7 +1534,7 @@ extract information or modify the response. =item response_redirect => sub { my($response, $ua, $h) = @_; ... } The handler is called in $ua->request after C<response_done>. If the -handler return an HTTP::Request object we'll start over with processing +handler returns an HTTP::Request object we'll start over with processing this request instead. =back @@ -1544,6 +1666,38 @@ This method will use the POST() function from C<HTTP::Request::Common> to build the request. See L<HTTP::Request::Common> for a details on how to pass form content and other advanced features. +=item $ua->put( $url, \%form ) + +=item $ua->put( $url, \@form ) + +=item $ua->put( $url, \%form, $field_name => $value, ... ) + +=item $ua->put( $url, $field_name => $value,... Content => \%form ) + +=item $ua->put( $url, $field_name => $value,... Content => \@form ) + +=item $ua->put( $url, $field_name => $value,... Content => $content ) + +This method will dispatch a C<PUT> request on the given $url, with +%form or @form providing the key/value pairs for the fill-in form +content. Additional headers and content options are the same as for +the get() method. + +This method will use the PUT() function from C<HTTP::Request::Common> +to build the request. See L<HTTP::Request::Common> for a details on +how to pass form content and other advanced features. + +=item $ua->delete( $url ) + +=item $ua->delete( $url, $field_name => $value, ... ) + +This method will dispatch a C<DELETE> request on the given $url. Additional +headers and content options are the same as for the get() method. + +This method will use the DELETE() function from C<HTTP::Request::Common> +to build the request. See L<HTTP::Request::Common> for a details on +how to pass form content and other advanced features. + =item $ua->mirror( $url, $filename ) This method will get the document identified by $url and store it in @@ -1603,6 +1757,12 @@ The difference from request() is that simple_request() will not try to handle redirects or authentication responses. The request() method will in fact invoke this method for each simple request it sends. +=item $ua->is_online + +Tries to determine if you have access to the Internet. Returns +TRUE if the built-in heuristics determine that the user agent is +able to access the Internet (over HTTP). See also L<LWP::Online>. + =item $ua->is_protocol_supported( $scheme ) You can use this method to test whether this user agent object supports the diff --git a/Master/tlpkg/tlperl/lib/LWP/media.types b/Master/tlpkg/tlperl/lib/LWP/media.types index fbd54984d63..6a90929c0d2 100644 --- a/Master/tlpkg/tlperl/lib/LWP/media.types +++ b/Master/tlpkg/tlperl/lib/LWP/media.types @@ -1,221 +1,302 @@ -# This is a comment. I love comments. - -# This file controls what Internet media types are sent to the client for -# given file extension(s). Sending the correct media type to the client -# is important so they know how to handle the content of the file. -# For more information about Internet media types, please read RFC 2045, -# 2046, 2047, 2048, and 2077. The Internet media type registry is -# at <http://www.iana.org/assignments/media-types/>. - -# MIME type Extensions -application/activemessage +# This file maps Internet media types to unique file extension(s). +# Although created for httpd, this file is used by many software systems +# and has been placed in the public domain for unlimited redisribution. +# +# The table below contains both registered and (common) unregistered types. +# A type that has no unique extension can be ignored -- they are listed +# here to guide configurations toward known types and to make it easier to +# identify "new" types. File extensions are also commonly used to indicate +# content languages and encodings, so choose them carefully. +# +# Internet media types should be registered as described in RFC 4288. +# The registry is at <http://www.iana.org/assignments/media-types/>. +# +# MIME type (lowercased) Extensions +# ============================================ ========== +# application/1d-interleaved-parityfec +# application/3gpp-ims+xml +# application/activemessage application/andrew-inset ez -application/applefile +# application/applefile +application/applixware aw application/atom+xml atom application/atomcat+xml atomcat -application/atomicmail +# application/atomicmail application/atomsvc+xml atomsvc -application/auth-policy+xml -application/batch-smtp -application/beep+xml -application/cals-1840 +# application/auth-policy+xml +# application/batch-smtp +# application/beep+xml +# application/cals-1840 application/ccxml+xml ccxml -application/cellml+xml -application/cnrp+xml -application/commonground -application/conference-info+xml -application/cpl+xml -application/csta+xml -application/cstadata+xml -application/cybercash +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 +# application/cfw +# application/cnrp+xml +# application/commonground +# application/conference-info+xml +# application/cpl+xml +# application/csta+xml +# application/cstadata+xml +application/cu-seeme cu +# application/cybercash application/davmount+xml davmount -application/dca-rft -application/dec-dx -application/dialog-info+xml -application/dicom -application/dns -application/dvcs +# application/dca-rft +# application/dec-dx +# application/dialog-info+xml +# application/dicom +# application/dns +# application/dskpp+xml +application/dssc+der dssc +application/dssc+xml xdssc +# application/dvcs application/ecmascript ecma -application/edi-consent -application/edi-x12 -application/edifact -application/epp+xml -application/eshop -application/fastinfoset -application/fastsoap -application/fits +# application/edi-consent +# application/edi-x12 +# application/edifact +application/emma+xml emma +# application/epp+xml +application/epub+zip epub +# application/eshop +# application/example +application/exi exi +# application/fastinfoset +# application/fastsoap +# application/fits application/font-tdpfr pfr -application/h224 -application/http +# application/framework-attributes+xml +# application/h224 +# application/held+xml +# application/http application/hyperstudio stk -application/iges -application/im-iscomposing+xml -application/index -application/index.cmd -application/index.obj -application/index.response -application/index.vnd -application/iotp -application/ipp -application/isup +# 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/iotp +application/ipfix ipfix +# application/ipp +# application/isup +application/java-archive jar +application/java-serialized-object ser +application/java-vm class application/javascript js application/json json -application/kpml-request+xml -application/kpml-response+xml +# application/kpml-request+xml +# application/kpml-response+xml application/lost+xml lostxml application/mac-binhex40 hqx application/mac-compactpro cpt -application/macwriteii +# application/macwriteii +application/mads+xml mads application/marc mrc +application/marcxml+xml mrcx application/mathematica ma nb mb +# application/mathml-content+xml +# application/mathml-presentation+xml application/mathml+xml mathml -application/mbms-associated-procedure-description+xml -application/mbms-deregister+xml -application/mbms-envelope+xml -application/mbms-msk+xml -application/mbms-msk-response+xml -application/mbms-protection-description+xml -application/mbms-reception-report+xml -application/mbms-register+xml -application/mbms-register-response+xml -application/mbms-user-service-description+xml +# application/mbms-associated-procedure-description+xml +# application/mbms-deregister+xml +# application/mbms-envelope+xml +# application/mbms-msk+xml +# application/mbms-msk-response+xml +# application/mbms-protection-description+xml +# application/mbms-reception-report+xml +# application/mbms-register+xml +# application/mbms-register-response+xml +# application/mbms-user-service-description+xml application/mbox mbox -application/media_control+xml +# application/media_control+xml application/mediaservercontrol+xml mscml -application/mikey -application/moss-keys -application/moss-signature -application/mosskey-data -application/mosskey-request +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 application/mp4 mp4s -application/mpeg4-generic -application/mpeg4-iod -application/mpeg4-iod-xmt +# application/mpeg4-generic +# application/mpeg4-iod +# application/mpeg4-iod-xmt +# application/msc-ivr+xml +# application/msc-mixer+xml application/msword doc dot application/mxf mxf -application/nasdata -application/news-transmission -application/nss -application/ocsp-request -application/ocsp-response -application/octet-stream bin dms lha lzh class so iso dmg dist distz pkg bpk dump elc +# application/nasdata +# application/news-checkgroups +# application/news-groupinfo +# application/news-transmission +# application/nss +# application/ocsp-request +# application/ocsp-response +application/octet-stream bin dms lha lrf lzh so iso dmg dist distz pkg bpk dump elc deploy application/oda oda -application/oebps-package+xml +application/oebps-package+xml opf application/ogg ogx -application/parityfec +application/onenote onetoc onetoc2 onetmp onepkg +# application/parityfec application/patch-ops-error+xml xer application/pdf pdf application/pgp-encrypted pgp -application/pgp-keys +# application/pgp-keys application/pgp-signature asc sig application/pics-rules prf -application/pidf+xml -application/pidf-diff+xml +# application/pidf+xml +# application/pidf-diff+xml application/pkcs10 p10 application/pkcs7-mime p7m p7c application/pkcs7-signature p7s +application/pkcs8 p8 +application/pkix-attr-cert ac application/pkix-cert cer application/pkix-crl crl application/pkix-pkipath pkipath application/pkixcmp pki application/pls+xml pls -application/poc-settings+xml +# application/poc-settings+xml application/postscript ai eps ps -application/prs.alvestrand.titrax-sheet +# application/prs.alvestrand.titrax-sheet application/prs.cww cww -application/prs.nprend -application/prs.plucker -application/qsig +# application/prs.nprend +# application/prs.plucker +# application/prs.rdf-xml-crypt +# application/prs.xsf+xml +application/pskc+xml pskcxml +# application/qsig application/rdf+xml rdf application/reginfo+xml rif application/relax-ng-compact-syntax rnc -application/remote-printing +# application/remote-printing application/resource-lists+xml rl application/resource-lists-diff+xml rld -application/riscos -application/rlmi+xml +# application/riscos +# application/rlmi+xml application/rls-services+xml rs application/rsd+xml rsd application/rss+xml rss application/rtf rtf -application/rtx -application/samlassertion+xml -application/samlmetadata+xml +# application/rtx +# application/samlassertion+xml +# application/samlmetadata+xml application/sbml+xml sbml 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 application/set-payment-initiation setpay -application/set-registration +# application/set-registration application/set-registration-initiation setreg -application/sgml -application/sgml-open-catalog +# application/sgml +# application/sgml-open-catalog application/shf+xml shf -application/sieve -application/simple-filter+xml -application/simple-message-summary -application/simplesymbolcontainer -application/slate -application/smil +# application/sieve +# application/simple-filter+xml +# application/simple-message-summary +# application/simplesymbolcontainer +# application/slate +# application/smil application/smil+xml smi smil -application/soap+fastinfoset -application/soap+xml +# application/soap+fastinfoset +# application/soap+xml application/sparql-query rq application/sparql-results+xml srx -application/spirits-event+xml +# application/spirits-event+xml application/srgs gram application/srgs+xml grxml +application/sru+xml sru application/ssml+xml ssml -application/timestamp-query -application/timestamp-reply -application/tve-trigger -application/ulpfec -application/vemmi -application/vividence.scriptfile -application/vnd.3gpp.bsf+xml +# application/tamp-apex-update +# application/tamp-apex-update-confirm +# application/tamp-community-update +# application/tamp-community-update-confirm +# application/tamp-error +# application/tamp-sequence-adjust +# application/tamp-sequence-adjust-confirm +# application/tamp-status-query +# application/tamp-status-response +# application/tamp-update +# application/tamp-update-confirm +application/tei+xml tei teicorpus +application/thraud+xml tfi +# application/timestamp-query +# application/timestamp-reply +application/timestamped-data tsd +# application/tve-trigger +# application/ulpfec +# application/vemmi +# application/vividence.scriptfile +# 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 -application/vnd.3gpp.sms -application/vnd.3gpp2.bcmcsinfo+xml -application/vnd.3gpp2.sms +# application/vnd.3gpp.sms +# application/vnd.3gpp2.bcmcsinfo+xml +# application/vnd.3gpp2.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.air-application-installer-package+zip air +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.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.amazon.ebook azw application/vnd.americandynamics.acc acc application/vnd.amiga.ami ami +# application/vnd.amundsen.maze+xml +application/vnd.android.package-archive apk application/vnd.anser-web-certificate-issue-initiation cii application/vnd.anser-web-funds-transfer-initiation fti application/vnd.antix.game-component atx application/vnd.apple.installer+xml mpkg -application/vnd.arastra.swi swi +application/vnd.apple.mpegurl m3u8 +# application/vnd.arastra.swi +application/vnd.aristanetworks.swi swi application/vnd.audiograph aep -application/vnd.autopackage -application/vnd.avistar+xml +# application/vnd.autopackage +# application/vnd.avistar+xml application/vnd.blueice.multipass mpm +# application/vnd.bluetooth.ep.oob 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 +# application/vnd.cab-jscript +# application/vnd.canon-cpdl +# application/vnd.canon-lips +# application/vnd.cendio.thinlinc.clientconf application/vnd.chemdraw+xml cdxml application/vnd.chipnuts.karaoke-mmd mmd application/vnd.cinderella cdy -application/vnd.cirpack.isdn-ext +# 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.commerce-battelle -application/vnd.commonspace csp cst +application/vnd.cluetrust.cartomobile-config c11amc +application/vnd.cluetrust.cartomobile-config-pkg c11amz +# application/vnd.commerce-battelle +application/vnd.commonspace csp application/vnd.contact.cmsg cdbcmsg application/vnd.cosmocaller cmc application/vnd.crick.clicker clkx @@ -225,50 +306,95 @@ 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.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.cups-raster +# application/vnd.cups-raw +application/vnd.curl.car car +application/vnd.curl.pcurl pcurl +# application/vnd.cybank 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.denovo.fcselayout-link fe_launch +# application/vnd.dir-bi.plate-dl-nosuffix application/vnd.dna dna application/vnd.dolby.mlp mlp +# application/vnd.dolby.mobile.1 +# application/vnd.dolby.mobile.2 application/vnd.dpgraph dpg application/vnd.dreamfactory dfac -application/vnd.dvb.esgcontainer -application/vnd.dvb.ipdcesgaccess -application/vnd.dvb.iptv.alfec-base -application/vnd.dvb.iptv.alfec-enhancement -application/vnd.dxr -application/vnd.ecdis-update +application/vnd.dvb.ait ait +# 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 +# application/vnd.dvb.pfr +application/vnd.dvb.service svc +# 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.ecowin.filerequest +# application/vnd.ecowin.fileupdate +# application/vnd.ecowin.series +# application/vnd.ecowin.seriesrequest +# application/vnd.ecowin.seriesupdate +# application/vnd.emclient.accessrequest+xml application/vnd.enliven nml 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 +# application/vnd.ericsson.quickcall application/vnd.eszigno3+xml es3 et3 -application/vnd.eudora.data +# 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+xml +# application/vnd.etsi.tsl.der +# 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.ffsns -application/vnd.fints +application/vnd.fdsn.mseed mseed +application/vnd.fdsn.seed seed dataless +# application/vnd.ffsns +# application/vnd.fints application/vnd.flographit gph application/vnd.fluxtime.clip ftc -application/vnd.font-fontforge-sfd -application/vnd.framemaker fm frame maker +# application/vnd.font-fontforge-sfd +application/vnd.framemaker fm frame maker book application/vnd.frogans.fnc fnc application/vnd.frogans.ltf ltf application/vnd.fsc.weblaunch fsc @@ -277,20 +403,29 @@ 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.hbpl +# application/vnd.fujixerox.art-ex +# application/vnd.fujixerox.art4 +# application/vnd.fujixerox.hbpl application/vnd.fujixerox.ddd ddd application/vnd.fujixerox.docuworks xdw application/vnd.fujixerox.docuworks.binder xbd -application/vnd.fut-misnet +# application/vnd.fut-misnet application/vnd.fuzzysheet fzs application/vnd.genomatix.tuxedo txd +# application/vnd.geocube+xml +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 gmx application/vnd.google-earth.kml+xml kml application/vnd.google-earth.kmz kmz application/vnd.grafeq gqf gqs -application/vnd.gridmp +# application/vnd.gridmp application/vnd.groove-account gac application/vnd.groove-help ghf application/vnd.groove-identity-message gim @@ -298,9 +433,10 @@ 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+xml hal application/vnd.handheld-entertainment+xml zmm application/vnd.hbci hbci -application/vnd.hcl-bireports +# application/vnd.hcl-bireports application/vnd.hhe.lesson-player les application/vnd.hp-hpgl hpgl application/vnd.hp-hpid hpid @@ -308,11 +444,11 @@ application/vnd.hp-hps hps application/vnd.hp-jlyt jlt application/vnd.hp-pcl pcl application/vnd.hp-pclxl pclxl -application/vnd.httphone +# 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 +# application/vnd.ibm.afplinedata +# application/vnd.ibm.electronic-media application/vnd.ibm.minipay mpy application/vnd.ibm.modcap afp listafp list3820 application/vnd.ibm.rights-management irm @@ -321,28 +457,34 @@ application/vnd.iccprofile icc icm application/vnd.igloader igl application/vnd.immervision-ivp ivp application/vnd.immervision-ivu ivu -application/vnd.informedcontrol.rms+xml +# application/vnd.informedcontrol.rms+xml +# application/vnd.informix-visionary +# application/vnd.infotech.project +# application/vnd.infotech.project+xml +application/vnd.insors.igm igm application/vnd.intercon.formnet xpw xpx -application/vnd.intertrust.digibox -application/vnd.intertrust.nncp +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.packageitem+xml +# application/vnd.iptc.g2.conceptitem+xml +# application/vnd.iptc.g2.knowledgeitem+xml +# application/vnd.iptc.g2.newsitem+xml +# application/vnd.iptc.g2.packageitem+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.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 @@ -360,7 +502,8 @@ application/vnd.kidspiration kia application/vnd.kinar kne knp application/vnd.koan skp skd skt skm application/vnd.kodak-descriptor sse -application/vnd.liberty-request+xml +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 @@ -371,21 +514,21 @@ application/vnd.lotus-organizer org application/vnd.lotus-screencam scm application/vnd.lotus-wordpro lwp 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 +# application/vnd.marlin.drm.actiontoken+xml +# application/vnd.marlin.drm.conftoken+xml +# application/vnd.marlin.drm.license+xml +# application/vnd.marlin.drm.mdcf application/vnd.mcd mcd application/vnd.medcalcdata mc1 application/vnd.mediastation.cdkey cdkey -application/vnd.meridian-slingshot +# 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.minisoft-hp3000-save +# application/vnd.mitsubishi.misty-guard.trustweb application/vnd.mobius.daf daf application/vnd.mobius.dis dis application/vnd.mobius.mbk mbk @@ -395,165 +538,299 @@ 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.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-asf application/vnd.ms-cab-compressed cab application/vnd.ms-excel xls xlm xla xlc xlt xlw +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-excel.template.macroenabled.12 xltm application/vnd.ms-fontobject eot application/vnd.ms-htmlhelp chm application/vnd.ms-ims ims application/vnd.ms-lrm lrm -application/vnd.ms-playready.initiator+xml +# application/vnd.ms-office.activex+xml +application/vnd.ms-officetheme thmx +application/vnd.ms-pki.seccat cat +application/vnd.ms-pki.stl stl +# application/vnd.ms-playready.initiator+xml application/vnd.ms-powerpoint ppt pps pot +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 mpt -application/vnd.ms-tnef -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-tnef +# 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 wps wks wcm wdb application/vnd.ms-wpl wpl application/vnd.ms-xpsdocument xps application/vnd.mseq mseq -application/vnd.msign -application/vnd.multiad.creator -application/vnd.multiad.creator.cif -application/vnd.music-niff +# application/vnd.msign +# application/vnd.multiad.creator +# application/vnd.multiad.creator.cif +# application/vnd.music-niff application/vnd.musician mus application/vnd.muvee.style msty -application/vnd.ncd.control -application/vnd.ncd.reference -application/vnd.nervana -application/vnd.netfpx +# application/vnd.ncd.control +# application/vnd.ncd.reference +# application/vnd.nervana +# application/vnd.netfpx 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.isds-radio-presets -application/vnd.nokia.iptv.config+xml -application/vnd.nokia.landmark+wbxml -application/vnd.nokia.landmark+xml -application/vnd.nokia.landmarkcollection+xml -application/vnd.nokia.n-gage.ac+xml +# application/vnd.nokia.catalogs +# application/vnd.nokia.conml+wbxml +# application/vnd.nokia.conml+xml +# application/vnd.nokia.isds-radio-presets +# application/vnd.nokia.iptv.config+xml +# application/vnd.nokia.landmark+wbxml +# application/vnd.nokia.landmark+xml +# application/vnd.nokia.landmarkcollection+xml +# application/vnd.nokia.n-gage.ac+xml 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.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.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.formula-template odft 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.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 otm +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.obn +# 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.oipf.userprofile+xml application/vnd.olpc-sugar xo -application/vnd.oma-scws-config -application/vnd.oma-scws-http-request -application/vnd.oma-scws-http-response -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.dcd -application/vnd.oma.dcdc +# application/vnd.oma-scws-config +# application/vnd.oma-scws-http-request +# application/vnd.oma-scws-http-response +# 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-pcc+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.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.xcap-directory+xml -application/vnd.omads-email+xml -application/vnd.omads-file+xml -application/vnd.omads-folder+xml -application/vnd.omaloc-supl-init +# application/vnd.oma.drm.risd+xml +# application/vnd.oma.group-usage-list+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.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.osa.netdeploy +# 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.presentation pptx +# application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml +# application/vnd.openxmlformats-officedocument.presentationml.presprops+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.slideshow ppsx +# application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml +# application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+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.quobject-quoxdocument +# application/vnd.osa.netdeploy +application/vnd.osgeo.mapguide.package mgp +# application/vnd.osgi.bundle application/vnd.osgi.dp dp -application/vnd.otps.ct-kip+xml -application/vnd.palm prc pdb pqa oprc -application/vnd.paos.xml +# application/vnd.otps.ct-kip+xml +application/vnd.palm 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-licence +# application/vnd.piaccess.application-licence application/vnd.picsel efif -application/vnd.poc.group-advertisement+xml +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 +# application/vnd.powerbuilder6-s +# application/vnd.powerbuilder7 +# application/vnd.powerbuilder7-s +# application/vnd.powerbuilder75 +# application/vnd.powerbuilder75-s +# application/vnd.preminet application/vnd.previewsystems.box box application/vnd.proteus.magazine mgz application/vnd.publishare-delta-tree qps application/vnd.pvi.ptid1 ptid -application/vnd.pwg-multiplexed -application/vnd.pwg-xhtml-print+xml -application/vnd.qualcomm.brew-app-res +# application/vnd.pwg-multiplexed +# application/vnd.pwg-xhtml-print+xml +# application/vnd.qualcomm.brew-app-res application/vnd.quark.quarkxpress qxd qxt qwd qwt qxl qxb -application/vnd.rapid +# application/vnd.radisys.moml+xml +# application/vnd.radisys.msml+xml +# application/vnd.radisys.msml-audit+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-conf+xml +# application/vnd.radisys.msml-dialog+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.rainstor.data +# application/vnd.rapid +application/vnd.realvnc.bed bed application/vnd.recordare.musicxml mxl -application/vnd.recordare.musicxml+xml -application/vnd.renlearn.rlprint +application/vnd.recordare.musicxml+xml musicxml +# application/vnd.renlearn.rlprint +application/vnd.rig.cryptonote cryptonote +application/vnd.rim.cod cod application/vnd.rn-realmedia rm application/vnd.route66.link66+xml link66 -application/vnd.ruckus.download -application/vnd.s3sms -application/vnd.sbm.mid2 -application/vnd.scribus -application/vnd.sealed.3df -application/vnd.sealed.csf -application/vnd.sealed.doc -application/vnd.sealed.eml -application/vnd.sealed.mht -application/vnd.sealed.net -application/vnd.sealed.ppt -application/vnd.sealed.tiff -application/vnd.sealed.xls -application/vnd.sealedmedia.softseal.html -application/vnd.sealedmedia.softseal.pdf +# application/vnd.ruckus.download +# application/vnd.s3sms +application/vnd.sailingtracker.track st +# application/vnd.sbm.cid +# application/vnd.sbm.mid2 +# application/vnd.scribus +# application/vnd.sealed.3df +# application/vnd.sealed.csf +# application/vnd.sealed.doc +# application/vnd.sealed.eml +# application/vnd.sealed.mht +# application/vnd.sealed.net +# application/vnd.sealed.ppt +# application/vnd.sealed.tiff +# application/vnd.sealed.xls +# application/vnd.sealedmedia.softseal.html +# application/vnd.sealedmedia.softseal.pdf application/vnd.seemail see application/vnd.sema sema application/vnd.semd semd @@ -564,96 +841,135 @@ application/vnd.shana.informed.interchange iif application/vnd.shana.informed.package ipk application/vnd.simtech-mindmapper twd twds application/vnd.smaf mmf -application/vnd.software602.filler.form+xml -application/vnd.software602.filler.form-xml-zip +# application/vnd.smart.notebook +application/vnd.smart.teacher teacher +# application/vnd.software602.filler.form+xml +# application/vnd.software602.filler.form-xml-zip 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.street-stream -application/vnd.sun.wadl+xml +# application/vnd.sss-cod +# application/vnd.sss-dtf +# application/vnd.sss-ntf +application/vnd.stardivision.calc sdc +application/vnd.stardivision.draw sda +application/vnd.stardivision.impress sdd +application/vnd.stardivision.math smf +application/vnd.stardivision.writer sdw vor +application/vnd.stardivision.writer-global sgl +application/vnd.stepmania.stepchart sm +# application/vnd.street-stream +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.sun.wadl+xml application/vnd.sus-calendar sus susp application/vnd.svd svd -application/vnd.swiftview-ics +# application/vnd.swiftview-ics +application/vnd.symbian.install sis sisx application/vnd.syncml+xml xsm application/vnd.syncml.dm+wbxml bdm application/vnd.syncml.dm+xml xdm -application/vnd.syncml.ds.notification +# application/vnd.syncml.dm.notification +# application/vnd.syncml.ds.notification application/vnd.tao.intent-module-archive tao application/vnd.tmobile-livetv tmo application/vnd.trid.tpt tpt application/vnd.triscape.mxs mxs application/vnd.trueapp tra -application/vnd.truedoc +# application/vnd.truedoc +# application/vnd.ubisoft.webplayer application/vnd.ufdl ufd ufdl application/vnd.uiq.theme utz application/vnd.umajin umj application/vnd.unity unityweb application/vnd.uoml+xml uoml -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.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 -application/vnd.vd-study -application/vnd.vectorworks -application/vnd.vidsoft.vidconference +# application/vnd.vd-study +# application/vnd.vectorworks +# application/vnd.verimatrix.vcas +# application/vnd.vidsoft.vidconference application/vnd.visio vsd vst vss vsw application/vnd.visionary vis -application/vnd.vividence.scriptfile +# application/vnd.vividence.scriptfile application/vnd.vsf vsf -application/vnd.wap.sic -application/vnd.wap.slc +# application/vnd.wap.sic +# application/vnd.wap.slc application/vnd.wap.wbxml wbxml application/vnd.wap.wmlc wmlc application/vnd.wap.wmlscriptc wmlsc application/vnd.webturbo wtb -application/vnd.wfa.wsc -application/vnd.wmc -application/vnd.wmf.bootstrap +# application/vnd.wfa.wsc +# application/vnd.wmc +# application/vnd.wmf.bootstrap +# application/vnd.wolfram.mathematica +# application/vnd.wolfram.mathematica.package +application/vnd.wolfram.player nbp application/vnd.wordperfect wpd application/vnd.wqd wqd -application/vnd.wrq-hp3000-labelled +# application/vnd.wrq-hp3000-labelled application/vnd.wt.stf stf -application/vnd.wv.csp+wbxml -application/vnd.wv.csp+xml -application/vnd.wv.ssp+xml +# application/vnd.wv.csp+wbxml +# application/vnd.wv.csp+xml +# application/vnd.wv.ssp+xml application/vnd.xara xar application/vnd.xfdl xfdl -application/vnd.xmi+xml -application/vnd.xmpie.cpkg -application/vnd.xmpie.dpkg -application/vnd.xmpie.plan -application/vnd.xmpie.ppkg -application/vnd.xmpie.xlim +# application/vnd.xfdl.webform +# application/vnd.xmi+xml +# application/vnd.xmpie.cpkg +# application/vnd.xmpie.dpkg +# application/vnd.xmpie.plan +# application/vnd.xmpie.ppkg +# application/vnd.xmpie.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 osfpvg +# application/vnd.yamaha.remote-setup application/vnd.yamaha.smaf-audio saf application/vnd.yamaha.smaf-phrase spf +# 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/watcherinfo+xml -application/whoispp-query -application/whoispp-response +# application/vq-rtcpxr +# application/watcherinfo+xml +# application/whoispp-query +# application/whoispp-response +application/widget wgt application/winhlp hlp -application/wita -application/wordperfect5.1 +# application/wita +# application/wordperfect5.1 application/wsdl+xml wsdl application/wspolicy+xml wspolicy +application/x-7z-compressed 7z +application/x-abiword abw application/x-ace-compressed ace +application/x-authorware-bin aab x32 u32 vox +application/x-authorware-map aam +application/x-authorware-seg aas application/x-bcpio bcpio application/x-bittorrent torrent application/x-bzip bz @@ -661,18 +977,43 @@ application/x-bzip2 bz2 boz application/x-cdlink vcd application/x-chat chat application/x-chess-pgn pgn -application/x-compress +# application/x-compress application/x-cpio cpio application/x-csh csh -application/x-director dcr dir dxr fgd +application/x-debian-package deb udeb +application/x-director dir dcr dxr cst cct cxt w3d fgd swa +application/x-doom wad +application/x-dtbncx+xml ncx +application/x-dtbook+xml dtb +application/x-dtbresource+xml res application/x-dvi dvi +application/x-font-bdf bdf +# application/x-font-dos +# application/x-font-framemaker +application/x-font-ghostscript gsf +# application/x-font-libgrx +application/x-font-linux-psf psf +application/x-font-otf otf +application/x-font-pcf pcf +application/x-font-snf snf +# application/x-font-speedo +# application/x-font-sunos-news +application/x-font-ttf ttf ttc +application/x-font-type1 pfa pfb pfm afm +application/x-font-woff woff +# application/x-font-vfont application/x-futuresplash spl +application/x-gnumeric gnumeric application/x-gtar gtar -application/x-gzip +# application/x-gzip application/x-hdf hdf +application/x-java-jnlp-file jnlp application/x-latex latex +application/x-mobipocket-ebook prc mobi +application/x-ms-application application application/x-ms-wmd wmd application/x-ms-wmz wmz +application/x-ms-xbap xbap application/x-msaccess mdb application/x-msbinder obd application/x-mscardfile crd @@ -693,6 +1034,7 @@ application/x-rar-compressed rar application/x-sh sh application/x-shar shar application/x-shockwave-flash swf +application/x-silverlight-app xap application/x-stuffit sit application/x-stuffitx sitx application/x-sv4cpio sv4cpio @@ -700,137 +1042,169 @@ application/x-sv4crc sv4crc application/x-tar tar application/x-tcl tcl application/x-tex tex +application/x-tex-tfm tfm application/x-texinfo texinfo texi application/x-ustar ustar application/x-wais-source src application/x-x509-ca-cert der crt -application/x400-bp -application/xcap-att+xml -application/xcap-caps+xml -application/xcap-el+xml -application/xcap-error+xml -application/xcap-ns+xml +application/x-xfig fig +application/x-xpinstall xpi +# application/x400-bp +# application/xcap-att+xml +# application/xcap-caps+xml +application/xcap-diff+xml xdf +# application/xcap-el+xml +# application/xcap-error+xml +# application/xcap-ns+xml +# application/xcon-conference-info-diff+xml +# application/xcon-conference-info+xml application/xenc+xml xenc application/xhtml+xml xhtml xht +# application/xhtml-voice+xml application/xml xml xsl application/xml-dtd dtd -application/xml-external-parsed-entity -application/xmpp+xml +# application/xml-external-parsed-entity +# application/xmpp+xml application/xop+xml xop application/xslt+xml xslt application/xspf+xml xspf application/xv+xml mxml xhvml xvml xvm +application/yang yang +application/yin+xml yin application/zip zip -audio/32kadpcm -audio/3gpp -audio/3gpp2 -audio/ac3 -audio/amr -audio/amr-wb -audio/amr-wb+ -audio/asc +# audio/1d-interleaved-parityfec +# audio/32kadpcm +# audio/3gpp +# audio/3gpp2 +# audio/ac3 +audio/adpcm adp +# audio/amr +# audio/amr-wb +# audio/amr-wb+ +# audio/asc +# audio/atrac-advanced-lossless +# audio/atrac-x +# audio/atrac3 audio/basic au snd -audio/bv16 -audio/bv32 -audio/clearmode -audio/cn -audio/dat12 -audio/dls -audio/dsr-es201108 -audio/dsr-es202050 -audio/dsr-es202211 -audio/dsr-es202212 -audio/dvi4 -audio/eac3 -audio/evrc -audio/evrc-qcp -audio/evrc0 -audio/evrc1 -audio/evrcb -audio/evrcb0 -audio/evrcb1 -audio/evrcwb -audio/evrcwb0 -audio/evrcwb1 -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/ilbc -audio/l16 -audio/l20 -audio/l24 -audio/l8 -audio/lpc +# audio/bv16 +# audio/bv32 +# audio/clearmode +# audio/cn +# audio/dat12 +# audio/dls +# audio/dsr-es201108 +# audio/dsr-es202050 +# audio/dsr-es202211 +# audio/dsr-es202212 +# audio/dvi4 +# audio/eac3 +# audio/evrc +# audio/evrc-qcp +# audio/evrc0 +# audio/evrc1 +# audio/evrcb +# audio/evrcb0 +# audio/evrcb1 +# audio/evrcwb +# audio/evrcwb0 +# audio/evrcwb1 +# audio/example +# 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 +# audio/l16 +# audio/l20 +# audio/l24 +# audio/l8 +# audio/lpc audio/midi mid midi kar rmi -audio/mobile-xmf +# audio/mobile-xmf audio/mp4 mp4a -audio/mp4a-latm -audio/mpa -audio/mpa-robust +# audio/mp4a-latm +# audio/mpa +# audio/mpa-robust audio/mpeg mpga mp2 mp2a mp3 m2a m3a -audio/mpeg4-generic +# audio/mpeg4-generic audio/ogg oga ogg spx -audio/parityfec -audio/pcma -audio/pcmu -audio/prs.sid -audio/qcelp -audio/red -audio/rtp-enc-aescm128 -audio/rtp-midi -audio/rtx -audio/smv -audio/smv0 -audio/smv-qcp -audio/sp-midi -audio/t140c -audio/t38 -audio/telephone-event -audio/tone -audio/ulpfec -audio/vdvi -audio/vmr-wb -audio/vnd.3gpp.iufp -audio/vnd.4sb -audio/vnd.audiokoz -audio/vnd.celp -audio/vnd.cisco.nse -audio/vnd.cmles.radio-events -audio/vnd.cns.anp1 -audio/vnd.cns.inf1 +# audio/parityfec +# audio/pcma +# audio/pcma-wb +# audio/pcmu-wb +# audio/pcmu +# audio/prs.sid +# audio/qcelp +# audio/red +# audio/rtp-enc-aescm128 +# audio/rtp-midi +# audio/rtx +# audio/smv +# audio/smv0 +# audio/smv-qcp +# 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.audiokoz +# 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.mlp +# audio/vnd.dlna.adts +# audio/vnd.dolby.heaac.1 +# audio/vnd.dolby.heaac.2 +# audio/vnd.dolby.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 dra audio/vnd.dts dts audio/vnd.dts.hd dtshd -audio/vnd.everad.plj -audio/vnd.hns.audio +# audio/vnd.everad.plj +# audio/vnd.hns.audio audio/vnd.lucent.voice lvp audio/vnd.ms-playready.media.pya pya -audio/vnd.nokia.mobile-xmf -audio/vnd.nortel.vbk +# audio/vnd.nokia.mobile-xmf +# audio/vnd.nortel.vbk audio/vnd.nuera.ecelp4800 ecelp4800 audio/vnd.nuera.ecelp7470 ecelp7470 audio/vnd.nuera.ecelp9600 ecelp9600 -audio/vnd.octel.sbc -audio/vnd.qcelp -audio/vnd.rhetorex.32kadpcm -audio/vnd.sealedmedia.softseal.mpeg -audio/vnd.vmx.cvsd -audio/vorbis -audio/vorbis-config -audio/wav wav +# audio/vnd.octel.sbc +# audio/vnd.qcelp +# audio/vnd.rhetorex.32kadpcm +audio/vnd.rip rip +# audio/vnd.sealedmedia.softseal.mpeg +# audio/vnd.vmx.cvsd +# audio/vorbis +# audio/vorbis-config +audio/webm weba +audio/x-aac aac audio/x-aiff aif aiff aifc audio/x-mpegurl m3u audio/x-ms-wax wax @@ -843,28 +1217,32 @@ chemical/x-cif cif chemical/x-cmdf cmdf chemical/x-cml cml chemical/x-csml csml -chemical/x-pdb pdb +# chemical/x-pdb chemical/x-xyz xyz image/bmp bmp image/cgm cgm -image/fits +# image/example +# image/fits image/g3fax g3 image/gif gif image/ief ief -image/jp2 +# image/jp2 image/jpeg jpeg jpg jpe -image/jpm -image/jpx -image/naplps +# image/jpm +# image/jpx +image/ktx ktx +# image/naplps image/png png image/prs.btif btif -image/prs.pti +# image/prs.pti image/svg+xml svg svgz -image/t38 +# image/t38 image/tiff tiff tif -image/tiff-fx +# image/tiff-fx image/vnd.adobe.photoshop psd -image/vnd.cns.inf2 +# image/vnd.cns.inf2 +image/vnd.dece.graphic uvi uvvi uvg uvvg +image/vnd.dvb.subtitle sub image/vnd.djvu djvu djv image/vnd.dwg dwg image/vnd.dxf dxf @@ -873,19 +1251,22 @@ image/vnd.fpx fpx image/vnd.fst fst image/vnd.fujixerox.edmics-mmr mmr image/vnd.fujixerox.edmics-rlc rlc -image/vnd.globalgraphics.pgb -image/vnd.microsoft.icon -image/vnd.mix +# image/vnd.globalgraphics.pgb +# image/vnd.microsoft.icon +# image/vnd.mix image/vnd.ms-modi mdi image/vnd.net-fpx npx -image/vnd.sealed.png -image/vnd.sealedmedia.softseal.gif -image/vnd.sealedmedia.softseal.jpg -image/vnd.svf +# image/vnd.radiance +# image/vnd.sealed.png +# image/vnd.sealedmedia.softseal.gif +# image/vnd.sealedmedia.softseal.jpg +# image/vnd.svf image/vnd.wap.wbmp wbmp image/vnd.xiff xif +image/webp webp image/x-cmu-raster ras image/x-cmx cmx +image/x-freehand fh fhc fh4 fh5 fh7 image/x-icon ico image/x-pcx pcx image/x-pict pic pct @@ -897,92 +1278,109 @@ image/x-rgb rgb image/x-xbitmap xbm image/x-xpixmap xpm image/x-xwindowdump xwd -message/cpim -message/delivery-status -message/disposition-notification -message/external-body -message/global -message/global-delivery-status -message/global-disposition-notification -message/global-headers -message/http -message/news -message/partial +# message/cpim +# message/delivery-status +# message/disposition-notification +# message/example +# message/external-body +# message/feedback-report +# message/global +# message/global-delivery-status +# message/global-disposition-notification +# message/global-headers +# message/http +# message/imdn+xml +# message/news +# message/partial message/rfc822 eml mime -message/s-http -message/sip -message/sipfrag -message/tracking-status -message/vnd.si.simp +# message/s-http +# message/sip +# message/sipfrag +# message/tracking-status +# message/vnd.si.simp +# model/example model/iges igs iges model/mesh msh mesh silo +model/vnd.collada+xml dae model/vnd.dwf dwf -model/vnd.flatland.3dml +# model/vnd.flatland.3dml model/vnd.gdl gdl -model/vnd.gs.gdl +# model/vnd.gs-gdl +# model/vnd.gs.gdl model/vnd.gtw gtw -model/vnd.moml+xml +# model/vnd.moml+xml model/vnd.mts mts -model/vnd.parasolid.transmit.binary -model/vnd.parasolid.transmit.text +# model/vnd.parasolid.transmit.binary +# model/vnd.parasolid.transmit.text 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 +# multipart/alternative +# multipart/appledouble +# multipart/byteranges +# multipart/digest +# multipart/encrypted +# multipart/example +# multipart/form-data +# multipart/header-set +# multipart/mixed +# multipart/parallel +# multipart/related +# multipart/report +# multipart/signed +# multipart/voice-message +# text/1d-interleaved-parityfec text/calendar ics ifb text/css css text/csv csv -text/directory -text/dns -text/enriched +# text/directory +# text/dns +# text/ecmascript +# text/enriched +# text/example text/html html htm -text/parityfec +# text/javascript +text/n3 n3 +# text/parityfec text/plain txt text conf def list log in -text/prs.fallenstein.rst +# text/prs.fallenstein.rst text/prs.lines.tag dsc -text/red -text/rfc822-headers +# text/vnd.radisys.msml-basic-layout +# text/red +# text/rfc822-headers text/richtext rtx -text/rtf -text/rtp-enc-aescm128 -text/rtx +# text/rtf +# text/rtp-enc-aescm128 +# text/rtx text/sgml sgml sgm -text/t140 +# text/t140 text/tab-separated-values tsv text/troff t tr roff man me ms -text/ulpfec +text/turtle ttl +# text/ulpfec text/uri-list uri uris urls -text/vnd.abc -text/vnd.curl -text/vnd.dmclientscript -text/vnd.esmertec.theme-descriptor +# text/vnd.abc +text/vnd.curl curl +text/vnd.curl.dcurl dcurl +text/vnd.curl.scurl scurl +text/vnd.curl.mcurl mcurl +# text/vnd.dmclientscript +# text/vnd.esmertec.theme-descriptor text/vnd.fly fly text/vnd.fmi.flexstor flx text/vnd.graphviz gv text/vnd.in3d.3dml 3dml text/vnd.in3d.spot spot -text/vnd.iptc.newsml -text/vnd.iptc.nitf -text/vnd.latex-z -text/vnd.motorola.reflex -text/vnd.ms-mediapackage -text/vnd.net2phone.commcenter.command -text/vnd.si.uricatalogue +# text/vnd.iptc.newsml +# text/vnd.iptc.nitf +# text/vnd.latex-z +# text/vnd.motorola.reflex +# text/vnd.ms-mediapackage +# text/vnd.net2phone.commcenter.command +# text/vnd.si.uricatalogue text/vnd.sun.j2me.app-descriptor jad -text/vnd.trolltech.linguist -text/vnd.wap.si -text/vnd.wap.sl +# text/vnd.trolltech.linguist +# text/vnd.wap.si +# text/vnd.wap.sl text/vnd.wap.wml wml text/vnd.wap.wmlscript wmls text/x-asm s asm @@ -994,66 +1392,83 @@ text/x-setext etx text/x-uuencode uu text/x-vcalendar vcs text/x-vcard vcf -text/xml -text/xml-external-parsed-entity +# text/xml +# text/xml-external-parsed-entity +# video/1d-interleaved-parityfec video/3gpp 3gp -video/3gpp-tt +# video/3gpp-tt video/3gpp2 3g2 -video/bmpeg -video/bt656 -video/celb -video/dv +# video/bmpeg +# video/bt656 +# video/celb +# video/dv +# video/example video/h261 h261 video/h263 h263 -video/h263-1998 -video/h263-2000 +# video/h263-1998 +# video/h263-2000 video/h264 h264 +# video/h264-rcdo +# video/h264-svc video/jpeg jpgv -video/jpeg2000 +# video/jpeg2000 video/jpm jpm jpgm video/mj2 mj2 mjp2 -video/mp1s -video/mp2p -video/mp2t +# video/mp1s +# video/mp2p +# video/mp2t video/mp4 mp4 mp4v mpg4 -video/mp4v-es +# video/mp4v-es video/mpeg mpeg mpg mpe m1v m2v -video/mpeg4-generic -video/mpv -video/nv +# video/mpeg4-generic +# video/mpv +# video/nv video/ogg ogv -video/parityfec -video/pointer +# video/parityfec +# video/pointer video/quicktime qt mov -video/raw -video/rtp-enc-aescm128 -video/rtx -video/smpte292m -video/ulpfec -video/vc1 -video/vnd.cctv -video/vnd.dlna.mpeg-tts +# 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 +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.fvt fvt -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.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 -video/vnd.nokia.videovoip -video/vnd.objectvideo -video/vnd.sealed.mpeg1 -video/vnd.sealed.mpeg4 -video/vnd.sealed.swf -video/vnd.sealedmedia.softseal.mov +# video/vnd.nokia.interleaved-multimedia +# video/vnd.nokia.videovoip +# video/vnd.objectvideo +# video/vnd.sealed.mpeg1 +# video/vnd.sealed.mpeg4 +# video/vnd.sealed.swf +# video/vnd.sealedmedia.softseal.mov +video/vnd.uvvu.mp4 uvu uvvu video/vnd.vivo viv +video/webm webm +video/x-f4v f4v video/x-fli fli +video/x-flv flv +video/x-m4v m4v video/x-ms-asf asf asx video/x-ms-wm wm video/x-ms-wmv wmv |