diff options
| author | Shulhan <m.shulhan@gmail.com> | 2019-09-20 10:11:52 +0700 |
|---|---|---|
| committer | Shulhan <m.shulhan@gmail.com> | 2019-09-23 23:47:48 +0700 |
| commit | 9d2bd0bd555a1634e1ea7651b9939a38b6100669 (patch) | |
| tree | fbc9e1cadf5c154ea7f751365706f7dac9af9e23 | |
| parent | d33bc74ca62e0aaebebd66fe4be43a561210ad80 (diff) | |
| download | pakakeh.go-9d2bd0bd555a1634e1ea7651b9939a38b6100669.tar.xz | |
http: export the Memfs field
User of HTTP can use the Memfs field to get the content manually or
to Search the content.
| -rw-r--r-- | CHANGELOG.adoc | 9 | ||||
| -rw-r--r-- | CHANGELOG.html | 50 | ||||
| -rw-r--r-- | lib/http/server.go | 17 |
3 files changed, 54 insertions, 22 deletions
diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index a9bc6761..b1f284f7 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -48,6 +48,15 @@ to be an empty string, so "var" value is equal to "". On macOS, turn out, all DNS queries have RD flag set to zero. This cause no DNS queries forwarded to parent server. +=== Enhancements + +* http: export the Memfs field on Server ++ +User of HTTP can use the Memfs field to get the content manually or +to Search the content. + +* http: add content and response type HTML and XML + == share v0.8.2 (2019-09-05) diff --git a/CHANGELOG.html b/CHANGELOG.html index d2ec8137..a1d7b8d2 100644 --- a/CHANGELOG.html +++ b/CHANGELOG.html @@ -34,30 +34,31 @@ <li><a href="#_new_features">New Features</a></li> <li><a href="#_breaking_changes">Breaking Changes</a></li> <li><a href="#_bug_fixes">Bug Fixes</a></li> +<li><a href="#_enhancements">Enhancements</a></li> </ul> </li> <li><a href="#_share_v0_8_2_2019_09_05">share v0.8.2 (2019-09-05)</a> <ul class="sectlevel2"> -<li><a href="#_enhancements">Enhancements</a></li> +<li><a href="#_enhancements_2">Enhancements</a></li> </ul> </li> <li><a href="#_share_v0_8_1_2019_08_05">share v0.8.1 (2019-08-05)</a> <ul class="sectlevel2"> -<li><a href="#_enhancements_2">Enhancements</a></li> +<li><a href="#_enhancements_3">Enhancements</a></li> </ul> </li> <li><a href="#_share_v0_8_0_2019_07_09">share v0.8.0 (2019-07-09)</a> <ul class="sectlevel2"> <li><a href="#_breaking_changes_2">Breaking changes</a></li> <li><a href="#_new_features_2">New Features</a></li> -<li><a href="#_enhancements_3">Enhancements</a></li> +<li><a href="#_enhancements_4">Enhancements</a></li> </ul> </li> <li><a href="#_share_v0_7_0_2019_06_14">share v0.7.0 (2019-06-14)</a> <ul class="sectlevel2"> <li><a href="#_breaking_changes_3">Breaking Changes</a></li> <li><a href="#_new_features_3">New Features</a></li> -<li><a href="#_enhancements_4">Enhancements</a></li> +<li><a href="#_enhancements_5">Enhancements</a></li> <li><a href="#_bug_fixes_2">Bug Fixes</a></li> </ul> </li> @@ -73,27 +74,27 @@ <li><a href="#_share_v0_5_0_2019_04_02">share v0.5.0 (2019-04-02)</a> <ul class="sectlevel2"> <li><a href="#_new_features_5">New Features</a></li> -<li><a href="#_enhancements_5">Enhancements</a></li> +<li><a href="#_enhancements_6">Enhancements</a></li> </ul> </li> <li><a href="#_share_v0_4_0_2019_03_01">share v0.4.0 (2019-03-01)</a> <ul class="sectlevel2"> <li><a href="#_new_features_6">New Features</a></li> -<li><a href="#_enhancements_6">Enhancements</a></li> +<li><a href="#_enhancements_7">Enhancements</a></li> <li><a href="#_fixes">Fixes</a></li> </ul> </li> <li><a href="#_share_v0_3_0_2019_02_01">share v0.3.0 (2019-02-01)</a> <ul class="sectlevel2"> <li><a href="#_features_changes">Features Changes</a></li> -<li><a href="#_enhancements_7">Enhancements</a></li> +<li><a href="#_enhancements_8">Enhancements</a></li> <li><a href="#_fixes_2">Fixes</a></li> </ul> </li> <li><a href="#_share_v0_2_0_2019_01_02">share v0.2.0 (2019-01-02)</a> <ul class="sectlevel2"> <li><a href="#_new_features_7">New Features</a></li> -<li><a href="#_enhancements_8">Enhancements</a></li> +<li><a href="#_enhancements_9">Enhancements</a></li> </ul> </li> <li><a href="#_share_v0_1_0_2018_11_29">share v0.1.0 (2018-11-29)</a></li> @@ -178,13 +179,30 @@ no DNS queries forwarded to parent server.</p> </ul> </div> </div> +<div class="sect2"> +<h3 id="_enhancements">Enhancements</h3> +<div class="ulist"> +<ul> +<li> +<p>http: export the Memfs field on Server</p> +<div class="paragraph"> +<p>User of HTTP can use the Memfs field to get the content manually or +to Search the content.</p> +</div> +</li> +<li> +<p>http: add content and response type HTML and XML</p> +</li> +</ul> +</div> +</div> </div> </div> <div class="sect1"> <h2 id="_share_v0_8_2_2019_09_05">share v0.8.2 (2019-09-05)</h2> <div class="sectionbody"> <div class="sect2"> -<h3 id="_enhancements">Enhancements</h3> +<h3 id="_enhancements_2">Enhancements</h3> <div class="ulist"> <ul> <li> @@ -234,7 +252,7 @@ in directory.</p> <h2 id="_share_v0_8_1_2019_08_05">share v0.8.1 (2019-08-05)</h2> <div class="sectionbody"> <div class="sect2"> -<h3 id="_enhancements_2">Enhancements</h3> +<h3 id="_enhancements_3">Enhancements</h3> <div class="ulist"> <ul> <li> @@ -293,7 +311,7 @@ file, we want that file to be excluded from .go static source.</p> </div> </div> <div class="sect2"> -<h3 id="_enhancements_3">Enhancements</h3> +<h3 id="_enhancements_4">Enhancements</h3> <div class="ulist"> <ul> <li> @@ -344,7 +362,7 @@ simple API.</p> </div> </div> <div class="sect2"> -<h3 id="_enhancements_4">Enhancements</h3> +<h3 id="_enhancements_5">Enhancements</h3> <div class="ulist"> <ul> <li> @@ -685,7 +703,7 @@ server and client API to make it easy and extensible. The websocket is now </div> </div> <div class="sect2"> -<h3 id="_enhancements_5">Enhancements</h3> +<h3 id="_enhancements_6">Enhancements</h3> <div class="ulist"> <ul> <li> @@ -750,7 +768,7 @@ server and client API to make it easy and extensible. The websocket is now </div> </div> <div class="sect2"> -<h3 id="_enhancements_6">Enhancements</h3> +<h3 id="_enhancements_7">Enhancements</h3> <div class="ulist"> <ul> <li> @@ -939,7 +957,7 @@ server and client API to make it easy and extensible. The websocket is now </div> </div> <div class="sect2"> -<h3 id="_enhancements_7">Enhancements</h3> +<h3 id="_enhancements_8">Enhancements</h3> <div class="ulist"> <ul> <li> @@ -993,7 +1011,7 @@ system and simplified routing handler.</p> </div> </div> <div class="sect2"> -<h3 id="_enhancements_8">Enhancements</h3> +<h3 id="_enhancements_9">Enhancements</h3> <div class="paragraph"> <p>Fix warnings from linters.</p> </div> diff --git a/lib/http/server.go b/lib/http/server.go index d313556b..58d32f11 100644 --- a/lib/http/server.go +++ b/lib/http/server.go @@ -23,7 +23,12 @@ import ( // Server define HTTP server. // type Server struct { - mfs *memfs.MemFS + // Memfs contains the content of file systems to be served in memory. + // It will be initialized only if ServerOptions's Root is not empty or + // if the current directory contains generated Go file from + // memfs.GoGenerate. + Memfs *memfs.MemFS + evals []Evaluator conn *http.Server routeDeletes []*route @@ -59,12 +64,12 @@ func NewServer(opts *ServerOptions) (srv *Server, e error) { memfs.Development = opts.Development - srv.mfs, e = memfs.New(opts.Includes, opts.Excludes, true) + srv.Memfs, e = memfs.New(opts.Includes, opts.Excludes, true) if e != nil { return nil, e } - e = srv.mfs.Mount(opts.Root) + e = srv.Memfs.Mount(opts.Root) if e != nil { return nil, e } @@ -287,7 +292,7 @@ func (srv *Server) Start() (err error) { func (srv *Server) getFSNode(reqPath string) (node *memfs.Node) { var e error - node, e = srv.mfs.Get(reqPath) + node, e = srv.Memfs.Get(reqPath) if e != nil { if e != os.ErrNotExist { log.Printf("http: getFSNode %q: %s", reqPath, e.Error()) @@ -296,7 +301,7 @@ func (srv *Server) getFSNode(reqPath string) (node *memfs.Node) { reqPath = path.Join(reqPath, "index.html") - node, e = srv.mfs.Get(reqPath) + node, e = srv.Memfs.Get(reqPath) if e != nil { log.Printf("http: getFSNode %q: %s", reqPath, e.Error()) return nil @@ -305,7 +310,7 @@ func (srv *Server) getFSNode(reqPath string) (node *memfs.Node) { if node.Mode.IsDir() { indexHTML := path.Join(reqPath, "index.html") - node, e = srv.mfs.Get(indexHTML) + node, e = srv.Memfs.Get(indexHTML) if e != nil { return nil } |
