An error occurred fetching the project authors.
  1. 28 Jun, 2018 1 commit
    • Augusto Roman's avatar
      caddyfile: Fix multi-file snippets and import literals. (#2205) · 053373a3
      Augusto Roman authored
      * Fix a few import problems: snippets and import literals.
      
      Two problems are fixed by this code simplification:
      1. Snippets defined in one import file are strangely not available in
         another.
      2. If an imported file had a directive with an argument "import", then
         the rest of the tokens on the line would be converted to absolute
         filepaths.
      
      An example of #2 would be the following directive in an imported file:
          basicauth / import secret
      
      In this case, the password would actually be an absolute path to the
      file 'secret' (whether or not it exists) in the directory of the imported
      Caddyfile.
      
      The problem was the blind token processing to fix import paths in the
      imported tokens without considering the context of the 'import' token.
      
      My first inclination was to just add more context (detect 'import' tokens
      at the beginning of lines and check the value tokens against defined
      snippets), however I eventually realized that we already do all of this
      in the parser, so the code was redundant. Instead we just use the current
      token's File property when importing. This works fine with imported tokens
      since they already have the absolute path to the imported file!
      
      Fixes #2204
      
      * renamed file2 -> fileName
      
      * Fix copy/pasted comment in test.
      
      * Change gzip example to basicauth example.
      
      This makes it more clear how the import side effect is detrimental.
      053373a3
  2. 03 Apr, 2018 1 commit
    • Matt Holt's avatar
      caddyfile: Fix errors caught by fuzzing (#2097) · 64c18a7c
      Matt Holt authored
      * caddyfile: More robust parsing for 'import' (fixes #2096)
      
      The fix for hanging involves limiting the number of wildcards in an
      import pattern to just 1. Otherwise some patterns can expand to the
      entire disk.
      
      The other fix requires that the end string for an environment variable
      expansion come after the start string.
      
      * caddyfile: Fix more fuzzing errors
      64c18a7c
  3. 23 Mar, 2018 1 commit
  4. 10 Feb, 2018 1 commit
  5. 01 Nov, 2017 1 commit
  6. 19 Oct, 2017 1 commit
  7. 15 Oct, 2017 1 commit
  8. 13 Oct, 2017 2 commits
  9. 23 Sep, 2017 2 commits
  10. 25 Oct, 2016 1 commit
  11. 22 Sep, 2016 1 commit
  12. 18 Sep, 2016 1 commit
  13. 17 Aug, 2016 2 commits
  14. 15 Jul, 2016 1 commit
  15. 13 Jul, 2016 1 commit
  16. 29 Jun, 2016 1 commit
    • Matthew Holt's avatar
      Import paths now relative to Caddyfile (closes #867) · d2be213e
      Matthew Holt authored
      This is inconsistent with the other directives, but import is a special
      case and frankly the behavior of import shouldn't change depending
      on the directory from which you run caddy. Breaking change but I think
      it's for the better, and best to do it now before 1.0.
      d2be213e
  17. 21 Jun, 2016 1 commit
  18. 05 Jun, 2016 1 commit
  19. 04 Jun, 2016 1 commit
    • Matthew Holt's avatar
      Rewrote Caddy from the ground up; initial commit of 0.9 branch · ac4fa2c3
      Matthew Holt authored
      These changes span work from the last ~4 months in an effort to make
      Caddy more extensible, reduce the coupling between its components, and
      lay a more robust foundation of code going forward into 1.0. A bunch of
      new features have been added, too, with even higher future potential.
      
      The most significant design change is an overall inversion of
      dependencies. Instead of the caddy package knowing about the server
      and the notion of middleware and config, the caddy package exposes an
      interface that other components plug into. This does introduce more
      indirection when reading the code, but every piece is very modular and
      pluggable. Even the HTTP server is pluggable.
      
      The caddy package has been moved to the top level, and main has been
      pushed into a subfolder called caddy. The actual logic of the main
      file has been pushed even further into caddy/caddymain/run.go so that
      custom builds of Caddy can be 'go get'able.
      
      The HTTPS logic was surgically separated into two parts to divide the
      TLS-specific code and the HTTPS-specific code. The caddytls package can
      now be used by any type of server that needs TLS, not just HTTP. I also
      added the ability to customize nearly every aspect of TLS at the site
      level rather than all sites sharing the same TLS configuration. Not all
      of this flexibility is exposed in the Caddyfile yet, but it may be in
      the future. Caddy can also generate self-signed certificates in memory
      for the convenience of a developer working on localhost who wants HTTPS.
      And Caddy now supports the DNS challenge, assuming at least one DNS
      provider is plugged in.
      
      Dozens, if not hundreds, of other minor changes swept through the code
      base as I literally started from an empty main function, copying over
      functions or files as needed, then adjusting them to fit in the new
      design. Most tests have been restored and adapted to the new API,
      but more work is needed there.
      
      A lot of what was "impossible" before is now possible, or can be made
      possible with minimal disruption of the code. For example, it's fairly
      easy to make plugins hook into another part of the code via callbacks.
      Plugins can do more than just be directives; we now have plugins that
      customize how the Caddyfile is loaded (useful when you need to get your
      configuration from a remote store).
      
      Site addresses no longer need be just a host and port. They can have a
      path, allowing you to scope a configuration to a specific path. There is
      no inheretance, however; each site configuration is distinct.
      
      Thanks to amazing work by Lucas Clemente, this commit adds experimental
      QUIC support. Turn it on using the -quic flag; your browser may have
      to be configured to enable it.
      
      Almost everything is here, but you will notice that most of the middle-
      ware are missing. After those are transferred over, we'll be ready for
      beta tests.
      
      I'm very excited to get this out. Thanks for everyone's help and
      patience these last few months. I hope you like it!!
      ac4fa2c3
  20. 06 Apr, 2016 1 commit
  21. 16 Mar, 2016 1 commit
  22. 11 Jan, 2016 1 commit
  23. 09 Jan, 2016 1 commit
  24. 03 Jan, 2016 1 commit
    • Matthew Holt's avatar
      Parser separate scheme/port, refactor config loading · 946ff5e8
      Matthew Holt authored
      By separating scheme and port at the parser, we are able to set the port appropriately and also keep the semantics of the scheme being specified by the user later on. The parser also stores an address' original input. Also, the config refactor makes it possible to partially load a config - valuable for determining which ones will need Let's Encrypt integration turned on during a restart.
      946ff5e8
  25. 29 Dec, 2015 1 commit
  26. 11 Dec, 2015 1 commit
  27. 06 Dec, 2015 1 commit
  28. 04 Dec, 2015 2 commits
  29. 15 Nov, 2015 2 commits
  30. 05 Nov, 2015 3 commits
  31. 27 Oct, 2015 1 commit
  32. 26 Oct, 2015 1 commit
    • Matthew Holt's avatar
      core: Major refactor for graceful restarts; numerous fixes · 4ebff9a1
      Matthew Holt authored
      Merged config and app packages into one called caddy. Abstracted away caddy startup functionality making it easier to embed Caddy in any Go application and use it as a library. Graceful restart (should) now ensure child starts properly. Now piping a gob bundle to child process so that the child can match up inherited listeners to server address. Much cleanup still to do.
      4ebff9a1
  33. 19 Oct, 2015 1 commit