Commit Graph

36 Commits

Author SHA1 Message Date
kevmoo@google.com 4e87f2a87c pkg/http_server: move to multi-lib layout
Dependencies between features are now crystal clear

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//756493002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41936 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-24 18:14:19 +00:00
sgjesse@google.com 1e4c88c97b Don't to do HTML entity decoding for multi-part form fields
The code was trying to do HTML entity decoding on text field values
in multipart form posts. This has been removed as it did not work.

The parsing was expecting HTML entities to always be used, but that is
not the case. Chrome, Firefox and Safari will do it if e.g. the attribute
accept-charset="latin1" is set on the HTML form element, but the default
when accept-charset is not set or is set to utf8 UTF-8 encoding will be
used.

Also when HTML entity encoding is used, the encoding done by the browser
cannot be consistently  decoded. E.g. if the value '&#<some large char>' is
entered in a form with accept-charset="latin1" the value in the
multipart/form-data response is '&#&#12402;' (<some large char> is HTML
entity encoded as &#12402;), so '&#' is not escaped in any way.

Passing the value returned by the browser into user code without trying to
be clever is the right thing to do.

R=kustermann@google.com
BUG=

Review URL: https://codereview.chromium.org//730203008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41821 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-19 07:41:17 +00:00
sgjesse@google.com 82ba3ad49b Fix a number of issues with the Range header handling for serving files
* Handling end position after file length
* Handling suffix range longer than file length
* Ignore syntactically invalid Range headers
* Return 416 (Requested range not satisfiable) if start < end

Added tests for these cases.

BUG=http://dartbug.com/21587
R=ajohnsen@google.com, kustermann@google.com

Review URL: https://codereview.chromium.org//721213002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41775 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-17 14:21:09 +00:00
ajohnsen@google.com 979f82002f Add 'pathPrefix' optional argument to VirtualDirectory constructor.
By setting the pathPrefix, all incoming requests are expected to have
its uri starting with the path. Then, before doing resource lookup, the
prefix is trimmed from the path.

BUG=https://code.google.com/p/dart/issues/detail?id=17353
R=kevmoo@google.com

Review URL: https://codereview.chromium.org//424063002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38720 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-30 06:50:23 +00:00
ajohnsen@google.com d3411334c8 Fix links of VirtualDirectory.
BUG=https://code.google.com/p/dart/issues/detail?id=19717
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//370753002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38010 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-04 12:04:25 +00:00
ajohnsen@google.com 4c9f0be0fc Use utf-8 encoding for listing and error page, in http_server VirtualDirectory.
BUG=https://code.google.com/p/dart/issues/detail?id=15157
R=ricow@google.com

Review URL: https://codereview.chromium.org//360453004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37779 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-27 09:11:25 +00:00
nweiz@google.com 02cf36609a Add an http_multi_server package.
This package supports using the same server class for multiple bound interfaces.
In particular, it's useful for binding both IPv4 and IPv6 loopback interfaces.

R=rnystrom@google.com
BUG=19147

Review URL: https://codereview.chromium.org//311233004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37023 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-05 00:43:37 +00:00
ajohnsen@google.com 75a0668f6d Fix XSS issues in http_server's dir-listing and error-page.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//225813002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34769 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 07:03:24 +00:00
kevmoo@google.com a300ce0a1d pkg/http_server: return future for VirtualDirectory serveRequest
Also:
- Return the subscription from serve method
- Bumped version

BUG= https://code.google.com/p/dart/issues/detail?id=15893
BUG= https://code.google.com/p/dart/issues/detail?id=16005
R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//124833003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31701 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-10 19:27:05 +00:00
ajohnsen@google.com 41dfdb599c Make VirtualDirectory redirect if the directory-path does not end with a tailing slash.
BUG=https://code.google.com/p/dart/issues/detail?id=15764
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//119453005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31651 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-09 10:26:54 +00:00
ajohnsen@google.com 989f6e1d5d Fix Directory path in VirtualDirectory, so it always ends with a platform-specific seperator. That'll make sure Uri.resolve always works.
BUG=http://code.google.com/p/dart/issues/detail?id=15764
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//125003002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31469 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-06 10:44:14 +00:00
sethladd@google.com fed1b85164 move contents of readme into library docs
BUG=
R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//113733002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31104 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-12 17:12:21 +00:00
ajohnsen@google.com e2434065ce Expose 'serveFile' on VirtualDirectory.
This makes it possible to easy forward directory requets to e.g.
'index.html'.

BUG=http://code.google.com/p/dart/issues/detail?id=14333
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//47513008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29430 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-29 10:17:30 +00:00
ajohnsen@google.com bc7c3b0301 The request may be canceled by http_body, thus allow that when testing.
BUG=https://code.google.com/p/dart/issues/detail?id=14381
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//46043003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29358 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-28 13:20:24 +00:00
ajohnsen@google.com 31bfc41409 Make setDirectoryHandler and setErrorPageHandler setters, and add a jailRoot property.
While being on by default, disabling jailRoot allows following links to
outside the root directory.

BUG=https://code.google.com/p/dart/issues/detail?id=14196,https://code.google.com/p/dart/issues/detail?id=14193
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//31633003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28926 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-21 12:21:04 +00:00
ajohnsen@google.com e598c1c6e2 Fix comment.
BUG=

Review URL: https://codereview.chromium.org//31633005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28922 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-21 08:53:03 +00:00
ajohnsen@google.com 2c02feaa38 Expose the HttpRequest object in HttpRequestBody, making all request properties available.
BUG=https://code.google.com/p/dart/issues/detail?id=14259
R=sethladd@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//31813002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28919 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-21 08:07:11 +00:00
floitsch@google.com dc9c5f42ed Redo StreamTransformers so they work with Stack traces.
Since this involved a breaking change I cleaned up more of the
StreamTransformer API.

This CL also deprecates the getAttachedStackTrace method.

R=ajohnsen@google.com, lrn@google.com, nweiz@google.com, rnystrom@google.com

Review URL: https://codereview.chromium.org//25354003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28562 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-12 12:34:34 +00:00
ajohnsen@google.com 86e664e645 Preserve '\' in filenames for uploads, as Windows/IE contains them.
BUG=http://code.google.com/p/dart/issues/detail?id=13928
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//26973004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28515 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-11 12:36:14 +00:00
floitsch@google.com 4be547c705 Adapt streams for additional stackTrace argument.
R=lrn@google.com

Review URL: https://codereview.chromium.org//25094002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28511 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-11 12:02:20 +00:00
ajohnsen@google.com 326f48d476 Expand usage of defaultEncoding in HttpBody in the http_server package.
This fixes a few cases where other default encodings was used. Given
that we operate with the concept of a default encoding, to use that
encoding makes more sense.

BUG=https://code.google.com/p/dart/issues/detail?id=13928
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//26685004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28453 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-10 14:08:55 +00:00
ajohnsen@google.com 1dba2c2cab Change Uri methods taking a decode argument, to now take an encoding.
This finished the integration of dart:convert into Uri.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//24122002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27426 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-12 11:09:38 +00:00
floitsch@google.com 74da0c7286 Remove usage of dart:json.
R=jmesserly@google.com, lrn@google.com, nweiz@google.com, rnystrom@google.com

Review URL: https://codereview.chromium.org//23596007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26789 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-28 14:05:11 +00:00
floitsch@google.com 35d7140e66 Remove Encoding-enum from dart:io and add interface in dart:convert.
BUG= http://dartbug.com/6284
BUG= http://dartbug.com/7966
R=nweiz@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//22872012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26632 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 10:37:25 +00:00
sgjesse@google.com 353428a918 Remove the Path class from dart:io
The Path class in dart:io has been deprecated for some time
now. It was scheduled to be removed on August 11th, so here it
goes.

dart:io still uses the Path class internally, but now it is
private. I will trim it down to what is actually used in a
follow-up change.

R=ahe@google.com, devoncarew@google.com, whesse@google.com
BUG=http://dartbug.com/11666

Review URL: https://codereview.chromium.org//23054008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26181 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-15 10:10:53 +00:00
ajohnsen@google.com b2cf4de3ef Fix editor warnings in http_server and mime.
BUG=

Review URL: https://codereview.chromium.org//19158002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24992 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-15 09:11:06 +00:00
ajohnsen@google.com 40c7d89d66 Move MimeMultipartTransformer and HttpBodyHandler to mime and http_server packages.
BUG=
R=whesse@google.com

Review URL: https://codereview.chromium.org//18438005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24991 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-15 08:40:36 +00:00
ajohnsen@google.com 1a5ccabf14 Correctly url-decode the path segment in the http_server.
BUG=
R=lrn@google.com

Review URL: https://codereview.chromium.org//18333003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24677 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-02 11:08:17 +00:00
ajohnsen@google.com 4d6cde0779 Add directory-listing to VirtualDirectory.
BUG=
R=sgjesse@google.com, whesse@google.com

Review URL: https://codereview.chromium.org//17833003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24584 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-28 12:49:31 +00:00
ajohnsen@google.com 94f6029199 Add error-page support in VirtualDirectory.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17589012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24378 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 06:00:19 +00:00
ajohnsen@google.com 53badd793a Add auto-detection of MIME-type in VirtualDirectory.
Default charset for text/* is still missing.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17573011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24328 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 13:05:39 +00:00
ajohnsen@google.com c9b66a7973 Add new VirtualHost class to http_server package, for handling multiple hosts on multiple sources (HttpServer's).
It uses a by-name aproach, and thus depends on the host field to be
present.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17581002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24318 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 10:07:19 +00:00
ajohnsen@google.com 0539f11c4a Add support for IfModifiedSince headers, in http_servers' VirtualDirectory.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17582002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24314 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 09:23:33 +00:00
ajohnsen@google.com 96a8fe6aed Add support for following links, in VirtualDirectory.
A link must be relative, and not escape the 'root' directory. The
implementation is kept conservative, to increase security.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17582007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24310 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 08:21:51 +00:00
ajohnsen@google.com 3514a89c19 Use toNativePath() in http_server pkg, to get the native path string on Windows.
BUG=

Review URL: https://codereview.chromium.org//17550004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24283 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 11:54:52 +00:00
ajohnsen@google.com 0ef921b335 First push of a new 'http_server' dart package.
The package will contain helper-classes for writing http server, such as
VirtualDirectory, VirtualHost etc.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17544005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24281 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 11:22:31 +00:00