├── .formatter.exs ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── config └── config.exs ├── guides └── https.md ├── lib ├── plug.ex └── plug │ ├── adapters │ ├── cowboy.ex │ └── test │ │ └── conn.ex │ ├── application.ex │ ├── basic_auth.ex │ ├── builder.ex │ ├── conn.ex │ ├── conn │ ├── adapter.ex │ ├── cookies.ex │ ├── query.ex │ ├── status.ex │ ├── unfetched.ex │ ├── utils.ex │ └── wrapper_error.ex │ ├── csrf_protection.ex │ ├── debugger.ex │ ├── error_handler.ex │ ├── exceptions.ex │ ├── head.ex │ ├── html.ex │ ├── logger.ex │ ├── method_override.ex │ ├── mime.ex │ ├── parsers.ex │ ├── parsers │ ├── json.ex │ ├── multipart.ex │ └── urlencoded.ex │ ├── request_id.ex │ ├── rewrite_on.ex │ ├── router.ex │ ├── router │ └── utils.ex │ ├── session.ex │ ├── session │ ├── cookie.ex │ ├── ets.ex │ └── store.ex │ ├── ssl.ex │ ├── static.ex │ ├── telemetry.ex │ ├── templates │ ├── debugger.html.eex │ └── debugger.md.eex │ ├── test.ex │ ├── upload.ex │ └── upload │ ├── supervisor.ex │ └── terminator.ex ├── mix.exs ├── mix.lock ├── src └── plug_multipart.erl └── test ├── fixtures ├── file-deadbeef.txt ├── manifest-file ├── plug_cowboy.exs ├── ssl │ ├── README.md │ ├── ca.cer │ ├── ca.key │ ├── client.cer │ ├── client.key │ ├── client.req │ ├── server.cer │ ├── server.key │ └── server.key.enc ├── static with spaces.txt ├── static.txt ├── static.txt.br ├── static.txt.gz ├── static.txt.zst └── static │ └── file.txt ├── plug ├── adapters │ └── test │ │ └── conn_test.exs ├── basic_auth_test.exs ├── builder_test.exs ├── conn │ ├── adapter_test.exs │ ├── cookies_test.exs │ ├── query_test.exs │ ├── status_test.exs │ ├── utils_test.exs │ └── wrapper_error_test.exs ├── conn_test.exs ├── csrf_protection_test.exs ├── debugger_test.exs ├── error_handler_test.exs ├── head_test.exs ├── html_test.exs ├── logger_test.exs ├── method_override_test.exs ├── parsers │ └── json_test.exs ├── parsers_test.exs ├── request_id_test.exs ├── rewrite_on_test.exs ├── router │ └── utils_test.exs ├── router_test.exs ├── session │ ├── cookie_test.exs │ └── ets_test.exs ├── session_test.exs ├── ssl_test.exs ├── static_test.exs ├── telemetry_test.exs └── upload_test.exs ├── plug_test.exs └── test_helper.exs /.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/.formatter.exs -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/README.md -------------------------------------------------------------------------------- /config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/config/config.exs -------------------------------------------------------------------------------- /guides/https.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/guides/https.md -------------------------------------------------------------------------------- /lib/plug.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug.ex -------------------------------------------------------------------------------- /lib/plug/adapters/cowboy.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/adapters/cowboy.ex -------------------------------------------------------------------------------- /lib/plug/adapters/test/conn.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/adapters/test/conn.ex -------------------------------------------------------------------------------- /lib/plug/application.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/application.ex -------------------------------------------------------------------------------- /lib/plug/basic_auth.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/basic_auth.ex -------------------------------------------------------------------------------- /lib/plug/builder.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/builder.ex -------------------------------------------------------------------------------- /lib/plug/conn.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/conn.ex -------------------------------------------------------------------------------- /lib/plug/conn/adapter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/conn/adapter.ex -------------------------------------------------------------------------------- /lib/plug/conn/cookies.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/conn/cookies.ex -------------------------------------------------------------------------------- /lib/plug/conn/query.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/conn/query.ex -------------------------------------------------------------------------------- /lib/plug/conn/status.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/conn/status.ex -------------------------------------------------------------------------------- /lib/plug/conn/unfetched.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/conn/unfetched.ex -------------------------------------------------------------------------------- /lib/plug/conn/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/conn/utils.ex -------------------------------------------------------------------------------- /lib/plug/conn/wrapper_error.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/conn/wrapper_error.ex -------------------------------------------------------------------------------- /lib/plug/csrf_protection.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/csrf_protection.ex -------------------------------------------------------------------------------- /lib/plug/debugger.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/debugger.ex -------------------------------------------------------------------------------- /lib/plug/error_handler.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/error_handler.ex -------------------------------------------------------------------------------- /lib/plug/exceptions.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/exceptions.ex -------------------------------------------------------------------------------- /lib/plug/head.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/head.ex -------------------------------------------------------------------------------- /lib/plug/html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/html.ex -------------------------------------------------------------------------------- /lib/plug/logger.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/logger.ex -------------------------------------------------------------------------------- /lib/plug/method_override.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/method_override.ex -------------------------------------------------------------------------------- /lib/plug/mime.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/mime.ex -------------------------------------------------------------------------------- /lib/plug/parsers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/parsers.ex -------------------------------------------------------------------------------- /lib/plug/parsers/json.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/parsers/json.ex -------------------------------------------------------------------------------- /lib/plug/parsers/multipart.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/parsers/multipart.ex -------------------------------------------------------------------------------- /lib/plug/parsers/urlencoded.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/parsers/urlencoded.ex -------------------------------------------------------------------------------- /lib/plug/request_id.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/request_id.ex -------------------------------------------------------------------------------- /lib/plug/rewrite_on.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/rewrite_on.ex -------------------------------------------------------------------------------- /lib/plug/router.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/router.ex -------------------------------------------------------------------------------- /lib/plug/router/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/router/utils.ex -------------------------------------------------------------------------------- /lib/plug/session.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/session.ex -------------------------------------------------------------------------------- /lib/plug/session/cookie.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/session/cookie.ex -------------------------------------------------------------------------------- /lib/plug/session/ets.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/session/ets.ex -------------------------------------------------------------------------------- /lib/plug/session/store.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/session/store.ex -------------------------------------------------------------------------------- /lib/plug/ssl.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/ssl.ex -------------------------------------------------------------------------------- /lib/plug/static.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/static.ex -------------------------------------------------------------------------------- /lib/plug/telemetry.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/telemetry.ex -------------------------------------------------------------------------------- /lib/plug/templates/debugger.html.eex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/templates/debugger.html.eex -------------------------------------------------------------------------------- /lib/plug/templates/debugger.md.eex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/templates/debugger.md.eex -------------------------------------------------------------------------------- /lib/plug/test.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/test.ex -------------------------------------------------------------------------------- /lib/plug/upload.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/upload.ex -------------------------------------------------------------------------------- /lib/plug/upload/supervisor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/upload/supervisor.ex -------------------------------------------------------------------------------- /lib/plug/upload/terminator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/lib/plug/upload/terminator.ex -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/mix.exs -------------------------------------------------------------------------------- /mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/mix.lock -------------------------------------------------------------------------------- /src/plug_multipart.erl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/src/plug_multipart.erl -------------------------------------------------------------------------------- /test/fixtures/file-deadbeef.txt: -------------------------------------------------------------------------------- 1 | HELLO 2 | -------------------------------------------------------------------------------- /test/fixtures/manifest-file: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/plug_cowboy.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/fixtures/plug_cowboy.exs -------------------------------------------------------------------------------- /test/fixtures/ssl/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/fixtures/ssl/README.md -------------------------------------------------------------------------------- /test/fixtures/ssl/ca.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/fixtures/ssl/ca.cer -------------------------------------------------------------------------------- /test/fixtures/ssl/ca.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/fixtures/ssl/ca.key -------------------------------------------------------------------------------- /test/fixtures/ssl/client.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/fixtures/ssl/client.cer -------------------------------------------------------------------------------- /test/fixtures/ssl/client.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/fixtures/ssl/client.key -------------------------------------------------------------------------------- /test/fixtures/ssl/client.req: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/fixtures/ssl/client.req -------------------------------------------------------------------------------- /test/fixtures/ssl/server.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/fixtures/ssl/server.cer -------------------------------------------------------------------------------- /test/fixtures/ssl/server.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/fixtures/ssl/server.key -------------------------------------------------------------------------------- /test/fixtures/ssl/server.key.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/fixtures/ssl/server.key.enc -------------------------------------------------------------------------------- /test/fixtures/static with spaces.txt: -------------------------------------------------------------------------------- 1 | SPACES -------------------------------------------------------------------------------- /test/fixtures/static.txt: -------------------------------------------------------------------------------- 1 | HELLO -------------------------------------------------------------------------------- /test/fixtures/static.txt.br: -------------------------------------------------------------------------------- 1 | BROTLIED HELLO -------------------------------------------------------------------------------- /test/fixtures/static.txt.gz: -------------------------------------------------------------------------------- 1 | GZIPPED HELLO -------------------------------------------------------------------------------- /test/fixtures/static.txt.zst: -------------------------------------------------------------------------------- 1 | ZSTANDARDED HELLO -------------------------------------------------------------------------------- /test/fixtures/static/file.txt: -------------------------------------------------------------------------------- 1 | GOOD BYE 2 | -------------------------------------------------------------------------------- /test/plug/adapters/test/conn_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/adapters/test/conn_test.exs -------------------------------------------------------------------------------- /test/plug/basic_auth_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/basic_auth_test.exs -------------------------------------------------------------------------------- /test/plug/builder_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/builder_test.exs -------------------------------------------------------------------------------- /test/plug/conn/adapter_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/conn/adapter_test.exs -------------------------------------------------------------------------------- /test/plug/conn/cookies_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/conn/cookies_test.exs -------------------------------------------------------------------------------- /test/plug/conn/query_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/conn/query_test.exs -------------------------------------------------------------------------------- /test/plug/conn/status_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/conn/status_test.exs -------------------------------------------------------------------------------- /test/plug/conn/utils_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/conn/utils_test.exs -------------------------------------------------------------------------------- /test/plug/conn/wrapper_error_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/conn/wrapper_error_test.exs -------------------------------------------------------------------------------- /test/plug/conn_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/conn_test.exs -------------------------------------------------------------------------------- /test/plug/csrf_protection_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/csrf_protection_test.exs -------------------------------------------------------------------------------- /test/plug/debugger_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/debugger_test.exs -------------------------------------------------------------------------------- /test/plug/error_handler_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/error_handler_test.exs -------------------------------------------------------------------------------- /test/plug/head_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/head_test.exs -------------------------------------------------------------------------------- /test/plug/html_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/html_test.exs -------------------------------------------------------------------------------- /test/plug/logger_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/logger_test.exs -------------------------------------------------------------------------------- /test/plug/method_override_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/method_override_test.exs -------------------------------------------------------------------------------- /test/plug/parsers/json_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/parsers/json_test.exs -------------------------------------------------------------------------------- /test/plug/parsers_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/parsers_test.exs -------------------------------------------------------------------------------- /test/plug/request_id_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/request_id_test.exs -------------------------------------------------------------------------------- /test/plug/rewrite_on_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/rewrite_on_test.exs -------------------------------------------------------------------------------- /test/plug/router/utils_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/router/utils_test.exs -------------------------------------------------------------------------------- /test/plug/router_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/router_test.exs -------------------------------------------------------------------------------- /test/plug/session/cookie_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/session/cookie_test.exs -------------------------------------------------------------------------------- /test/plug/session/ets_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/session/ets_test.exs -------------------------------------------------------------------------------- /test/plug/session_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/session_test.exs -------------------------------------------------------------------------------- /test/plug/ssl_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/ssl_test.exs -------------------------------------------------------------------------------- /test/plug/static_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/static_test.exs -------------------------------------------------------------------------------- /test/plug/telemetry_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/telemetry_test.exs -------------------------------------------------------------------------------- /test/plug/upload_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug/upload_test.exs -------------------------------------------------------------------------------- /test/plug_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/plug_test.exs -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elixir-plug/plug/HEAD/test/test_helper.exs --------------------------------------------------------------------------------