Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-12-18 | nslcd_server: respect all values if limits.Timeout < limits.ReadTimeout + ↵ | Luke Shumaker | |
limits.WriteTimeout If Timeout : 3s ReadTimeout : 2s WriteTimeout : 2s Then before the effective total Timeout was 2s+2s=4s. That is wrong. It should only be that the Write phase gets to use the full 2s if the Read phase uses <= 1s. | |||
2017-09-08 | nslcd_systemd: add `import "os"` to the example in the docs | Luke Shumaker | |
2017-09-08 | nslcd_server: Add a request size limit | Luke Shumaker | |
2017-09-08 | add a test for tricking the server into allocating huge buffers | Luke Shumaker | |
2017-09-08 | test: clean up, create a parameterized testDriver() | Luke Shumaker | |
2017-09-08 | nslcd_{server,systemd}: FIX, BREAKING CHANGE: add limits | Luke Shumaker | |
Added types: nslcd_server: type Limits struct { ...} nslcd_server: type Conn interface{ ... } // a subset of net.Conn nslcd_server.HandleRequest() signature change: -func HandleRequest(backend Backend, in io.Reader, out io.Writer, cred unix.Ucred) (err error) { +func HandleRequest(backend Backend, limits Limits, conn Conn, cred unix.Ucred) (err error) { The `limits Limits` argument is added, and `conn Conn` replaces `in io.Reader` and `out io.Writer`. nslcd_systemd.Main() signature change: -func Main(backend Backend) uint8 { +func Main(backend Backend, limits nslcd_server.Limits) uint8 { The `limits Limits` argument is added. | |||
2017-09-08 | nslcd_systemd: FIX: avoid a race condition | Luke Shumaker | |
Spawn handler goroutines from listener goroutine. This fixes a race condition where main | listener ----------+----------------- | conn = accept() return | | sock <- conn and the connection is *not* handled (despite being accepted). | |||
2017-09-08 | nslcd_server: FIX: HandleRequest(): error handling | Luke Shumaker | |
Instead of having a separate channel+goroutine for the backend, just call .Write() right where we get results from the backend, but don't let an error cause us to stop reading from the backend, an error should just cause us to stop writing. This ensures that the backend now always has its output chan drained; before if there were a write error, the backend chan wouldn't get drained, and the resources never released. | |||
2017-09-08 | add tests | Luke Shumaker | |
2017-09-08 | nslcd_proto: BREAKING CHANGE: Rethink the panic strategy | Luke Shumaker | |
nslcd_proto.Read() and .Write() panic() with any errors that they may need to emit. This made composition really simple, I was OK with it being against the normal Go style. But, I'm not happy with it anymore; have them return errors now. This leads us in to nslcd_server.HandleRequest() using those panics for control flow. Add a maybePanic(error) function to wrap all of the proto.Read() and proto.Write() calls to restore the panicing behavior. | |||
2017-09-08 | nslcd_systemd: say "temporary error" when logging a temporary net error | Luke Shumaker | |
2017-09-08 | nslcd_systemd: backoff on temporary net errors | Luke Shumaker | |
The logic for backof size is based on the net/http server. | |||
2017-09-08 | nslcd_systemd: Don't spew errors about "closed network socket" while stopping | Luke Shumaker | |
2017-09-08 | nslcd_systemd: Allow permanent network errors to make us exit | Luke Shumaker | |
2017-09-08 | nslcd_systemd: Use go 1.9 syscall.RawConn to implement getpeercred() | Luke Shumaker | |
Eh. I'm not really sure how I feel about this change. I feel better about the syscalls that the program makes. But the code is longer. There's more boilerplate. I wish syscall.RawConn let our function return an error that would bubble up. | |||
2017-09-08 | nslcd_systemd: log a notice when reloading | Luke Shumaker | |
2017-09-08 | nslcd_proto: Add some doc comments | Luke Shumaker | |
2017-09-04 | add canonical import paths | Luke Shumaker | |
2017-09-03 | nslcd_proto: fix typo in package description | Luke Shumaker | |
2017-09-03 | nslcd_systemd: whoops, missed one of the dead assignments | Luke Shumaker | |
2017-05-14 | remove dead assignments | Luke Shumaker | |
2017-05-12 | Have the Makefile be AutoThing friendly. | Luke Shumaker | |
While it mostly played nice with autothing before, by having autothing treat `go generate` as an opaque step, it didn't populate `files.src.gen`. | |||
2017-01-18 | Update for change in sd_notify. | Luke Shumaker | |
2017-01-14 | Rename packages: lukeshu.com/git/go/*.git -> git.lukeshu.com/go/* | Luke Shumaker | |
2017-01-02 | Tidy: make a private var const instead of var | Luke Shumaker | |
2017-01-01 | tidy Makefiles | Luke Shumaker | |
2017-01-01 | Update for new libsystemd. | Luke Shumaker | |
2016-12-19 | Use x/sys/unix instead of the deprecated syscall. BREAKING CHANGE. | Luke Shumaker | |
This is just a search/replace s/syscall/unix/g in the broken code. | |||
2016-12-18 | Rename packages to make goimports happy. BREAKING CHANGE. | Luke Shumaker | |
2016-12-18 | Adjust to the new libsystemd.git/sd_daemon interface. | Luke Shumaker | |
2016-12-18 | Add BUG comments about unchecked lengths. | Luke Shumaker | |
Related to https://labs.parabola.nu/issues/1068 | |||
2016-10-15 | simplify Makefiles for go generate | Luke Shumaker | |
2016-06-18 | go back to using plain strings | Luke Shumaker | |
2016-06-18 | revert the last commit | Luke Shumaker | |
2016-06-18 | Use a pool of byte arrays to reduce GC pressure. | Luke Shumaker | |
2016-06-18 | Shoot, I needed to use ReadFull, not Read. Amature mistake. | Luke Shumaker | |
2016-06-18 | fix a package name in an error message | Luke Shumaker | |
2016-06-18 | goimports | Luke Shumaker | |
2016-06-18 | Write a mutable String class to avoid memory usage issues. Safer logging. | Luke Shumaker | |
As for logging, filter the password from more types of requests. | |||
2016-06-17 | Correctly handle 0-length byte arrays in IO. | Luke Shumaker | |
2016-06-17 | disable_nss_module is too close to Arthur's version to not mention copyright | Luke Shumaker | |
2016-06-15 | oops, fix the last commit | Luke Shumaker | |
2016-06-15 | re-do the Makefile to be autothing-compatible. | Luke Shumaker | |
2015-11-08 | gofmt | Luke Shumaker | |
2015-11-08 | tidy Makefile | Luke Shumaker | |
2015-11-08 | add readme.go | Luke Shumaker | |
2015-11-07 | fix import paths | Luke Shumaker | |
2015-10-26 | dlfcn: return raw unsafe.Pointer | Luke Shumaker | |
2015-10-26 | go vet thinks that `panic("not reached")` isn't reachable, so remove it. | Luke Shumaker | |
2015-09-18 | Only clean `generate` targets on maintainer-clean | Luke Shumaker | |