diff --git a/TODO b/TODO index 3eeebf108..11537d66f 100644 --- a/TODO +++ b/TODO @@ -214,10 +214,6 @@ Offline list: -- get webdav server working again, for mounting on Windows. This worked before Go 1 but bitrot when we moved pkg/fs to use the rsc/fuse. --- work on runsit more, so I can start using this more often. runsit should - be able to reload itself, and also watch for binaries changing and restart - when binaries change. (or symlinks to binaries) - -- BUG: osutil paths.go on OS X: should use Library everywhere instead of mix of Library and ~/.camlistore? diff --git a/vendor/github.com/bradfitz/runsit/listen/listen.go b/pkg/webserver/listen/listen.go similarity index 66% rename from vendor/github.com/bradfitz/runsit/listen/listen.go rename to pkg/webserver/listen/listen.go index 087b6a551..87922f430 100644 --- a/vendor/github.com/bradfitz/runsit/listen/listen.go +++ b/pkg/webserver/listen/listen.go @@ -1,4 +1,20 @@ -package listen +/* +Copyright 2017 Google Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package listen // import "camlistore.org/pkg/webserver/listen" import ( "errors" @@ -19,9 +35,8 @@ func NewFlag(flagName, defaultValue string, serverType string) *Addr { return addr } -// Listen is a replacement for net.Listen that also respects runsit -// listeners: port, :port, ip:port, FD:, ADDR: or -// named ports. +// Listen is a replacement for net.Listen and supports +// port, :port, ip:port, FD:, ADDR: // Listeners are always TCP. func Listen(addr string) (net.Listener, error) { a := &Addr{s: addr} @@ -37,15 +52,15 @@ func Usage(name string) string { if !strings.HasSuffix(name, " address") { name += " address" } - return name + "; may be port, :port, ip:port, FD:, or ADDR: to use named runsit ports" + return name + "; may be port, :port, ip:port, FD:, or ADDR: to use named ports" } // Addr is a flag variable. Use like: // -// var webPort listen.Addr -// flag.Var(&webPort, "web_addr", listen.Usage("Web server address")) -// flag.Parse() -// webListener, err := webPort.Listen() +// var webPort listen.Addr +// flag.Var(&webPort, "web_addr", listen.Usage("Web server address")) +// flag.Parse() +// webListener, err := webPort.Listen() type Addr struct { s string ln net.Listener @@ -60,15 +75,6 @@ func (a *Addr) String() string { func (a *Addr) Set(v string) error { a.s = v - // Try the requested port by runsit port name first. - fd, ok, err := namedPort(v) - if err != nil { - return err - } - if ok { - return a.listenOnFD(fd) - } - if strings.HasPrefix(v, "FD:") { fdStr := v[len("FD:"):] fd, err := strconv.ParseUint(fdStr, 10, 32) @@ -83,7 +89,7 @@ func (a *Addr) Set(v string) error { ipPort = ":" + v } - _, _, err = net.SplitHostPort(ipPort) + _, _, err := net.SplitHostPort(ipPort) if err != nil { return fmt.Errorf("invalid PORT or IP:PORT %q: %v", v, err) } @@ -97,23 +103,11 @@ func isPort(s string) bool { } func (a *Addr) listenOnFD(fd uintptr) (err error) { - f := os.NewFile(fd, fmt.Sprintf("fd #%d from runsit parent", fd)) + f := os.NewFile(fd, fmt.Sprintf("fd #%d from process parent", fd)) a.ln, err = net.FileListener(f) return } -func namedPort(name string) (fd uintptr, ok bool, err error) { - s := os.Getenv("RUNSIT_PORTFD_" + name) - if s == "" { - return - } - u64, err := strconv.ParseUint(s, 10, 32) - if err != nil { - return - } - return uintptr(u64), true, nil -} - var _ flag.Value = (*Addr)(nil) // Listen returns the address's TCP listener. diff --git a/pkg/webserver/webserver.go b/pkg/webserver/webserver.go index a0f1074cc..a538a56d5 100644 --- a/pkg/webserver/webserver.go +++ b/pkg/webserver/webserver.go @@ -36,7 +36,7 @@ import ( "sync" "time" - "github.com/bradfitz/runsit/listen" + "camlistore.org/pkg/webserver/listen" "go4.org/net/throttle" "go4.org/wkfs"