feat(*) add response phase (#32)

This commit is contained in:
Javier
2020-06-22 09:40:57 -05:00
committed by GitHub
parent c1ee697a37
commit 9cd14d59ec
2 changed files with 18 additions and 22 deletions

View File

@@ -23,8 +23,7 @@ type (
certificater interface{ Certificate(*pdk.PDK) } certificater interface{ Certificate(*pdk.PDK) }
rewriter interface{ Rewrite(*pdk.PDK) } rewriter interface{ Rewrite(*pdk.PDK) }
accesser interface{ Access(*pdk.PDK) } accesser interface{ Access(*pdk.PDK) }
headerFilter interface{ HeaderFilter(*pdk.PDK) } responser interface{ Response(*pdk.PDK) }
bodyFilter interface{ BodyFilter(*pdk.PDK) }
prereader interface{ Preread(*pdk.PDK) } prereader interface{ Preread(*pdk.PDK) }
logger interface{ Log(*pdk.PDK) } logger interface{ Log(*pdk.PDK) }
) )
@@ -35,15 +34,13 @@ func getHandlers(config interface{}) map[string]func(kong *pdk.PDK) {
if h, ok := config.(certificater); ok { handlers["certificate"] = h.Certificate } if h, ok := config.(certificater); ok { handlers["certificate"] = h.Certificate }
if h, ok := config.(rewriter) ; ok { handlers["rewrite"] = h.Rewrite } if h, ok := config.(rewriter) ; ok { handlers["rewrite"] = h.Rewrite }
if h, ok := config.(accesser) ; ok { handlers["access"] = h.Access } if h, ok := config.(accesser) ; ok { handlers["access"] = h.Access }
if h, ok := config.(headerFilter); ok { handlers["header_filter"] = h.HeaderFilter } if h, ok := config.(responser) ; ok { handlers["response"] = h.Response }
if h, ok := config.(bodyFilter) ; ok { handlers["body_filter"] = h.BodyFilter }
if h, ok := config.(prereader) ; ok { handlers["preread"] = h.Preread } if h, ok := config.(prereader) ; ok { handlers["preread"] = h.Preread }
if h, ok := config.(logger) ; ok { handlers["log"] = h.Log } if h, ok := config.(logger) ; ok { handlers["log"] = h.Log }
return handlers return handlers
} }
func (s *PluginServer) expireInstances() error { func (s *PluginServer) expireInstances() error {
const instanceTimeout = 60 const instanceTimeout = 60
expirationCutoff := time.Now().Add(time.Second * -instanceTimeout) expirationCutoff := time.Now().Add(time.Second * -instanceTimeout)
@@ -131,7 +128,6 @@ func (s *PluginServer) StartInstance(config PluginConfig, status *InstanceStatus
log.Printf("Started instance %#v:%v", config.Name, instance.id) log.Printf("Started instance %#v:%v", config.Name, instance.id)
return nil return nil
} }

View File

@@ -4,14 +4,14 @@ package main
import ( import (
"flag" "flag"
"runtime" "fmt"
"github.com/ugorji/go/codec" "github.com/ugorji/go/codec"
"log" "log"
"net" "net"
"net/rpc" "net/rpc"
"os" "os"
"reflect" "reflect"
"fmt" "runtime"
"time" "time"
) )
@@ -118,7 +118,7 @@ func main() {
if socket != "" { if socket != "" {
go func() { go func() {
for { for {
if ! isParentAlive() { if !isParentAlive() {
log.Printf("Kong exited; shutting down...") log.Printf("Kong exited; shutting down...")
os.Exit(0) os.Exit(0)
} }