1. 26 Oct, 2015 3 commits
    • 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
    • Matthew Holt's avatar
      letsencrypt: Work with latest lego changes · 69366580
      Matthew Holt authored
      69366580
    • Matthew Holt's avatar
      letsencrypt: Graceful restarts · b5b31e39
      Matthew Holt authored
      Lots of refinement still needed and runs only on POSIX systems. Windows will not get true graceful restarts (for now), but we will opt for very, very quick forceful restarts. Also, server configs are no longer put into a map; it is critical that they stay ordered so that they can be matched with their sockets in the child process after forking.
      
      This implementation of graceful restarts is probably not perfect, but it is a good start. Lots of details to attend to now.
      b5b31e39
  2. 22 Oct, 2015 1 commit
  3. 21 Oct, 2015 4 commits
  4. 20 Oct, 2015 1 commit
  5. 19 Oct, 2015 3 commits
  6. 18 Oct, 2015 10 commits
  7. 17 Oct, 2015 7 commits
  8. 16 Oct, 2015 5 commits
  9. 15 Oct, 2015 5 commits
    • Matthew Holt's avatar
      OncePerServerBlock may now return an error · 691204ce
      Matthew Holt authored
      691204ce
    • Matthew Holt's avatar
      Merge branch 'master' into configfix · a518049f
      Matthew Holt authored
      a518049f
    • Matthew Holt's avatar
      First use of OncePerServerBlock in a Setup function · 35e309cf
      Matthew Holt authored
      startup and shutdown commands should only be executed once per appearance in the Caddyfile (naturally meaning once per server block).
      
      Notice that we support multiple occurrences of startup and shutdown in the same server block by building the callback array incrementally as we parse the Caddyfile, then we append all the callbacks all at once. Quite literally, the OncePerServerBlock function executes only once per server block!
      35e309cf
    • Matthew Holt's avatar
      Don't share sync.Once with all directives · e0fdddc7
      Matthew Holt authored
      If each server block had only one sync.Once then all directives would refer to it and only the first directive would be able to use it! So this commit changes it to a map of sync.Once instances, keyed by directive. So by creating a new map for every server block, each directive in that block can get its own sync.Once which is exactly what is needed. They won't step on each other this way.
      e0fdddc7
    • Matthew Holt's avatar
      Epic revert of 0ac8bf58 and adding OncePerServerBlock · 0c07f7ad
      Matthew Holt authored
      Turns out having each server block share a single server.Config during initialization when the Setup functions are being called was a bad idea. Sure, startup and shutdown functions were only executed once, but they had no idea what their hostname or port was. So here we revert to the old way of doing things where Setup may be called multiple times per server block (once per host associated with the block, to be precise), but the Setup functions now know their host and port since the config belongs to exactly one virtualHost. To have something happen just once per server block, use OncePerServerBlock, a new function available on each Controller.
      0c07f7ad
  10. 14 Oct, 2015 1 commit