You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by sp...@apache.org on 2021/05/31 02:07:17 UTC
[apisix-go-plugin-runner] 10/22: chore: tweak for test
This is an automated email from the ASF dual-hosted git repository.
spacewander pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-go-plugin-runner.git
commit 669598cd58bd7e6769a40b7c97dfe4d3d68f676b
Author: spacewander <sp...@gmail.com>
AuthorDate: Thu May 20 18:07:13 2021 +0800
chore: tweak for test
---
internal/http/http.go | 30 ++++++++++++++++++++++++++++++
internal/server/server.go | 8 ++++++--
internal/server/server_test.go | 8 ++++----
3 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/internal/http/http.go b/internal/http/http.go
new file mode 100644
index 0000000..d946102
--- /dev/null
+++ b/internal/http/http.go
@@ -0,0 +1,30 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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 http
+
+import (
+ flatbuffers "github.com/google/flatbuffers/go"
+
+ "github.com/apache/apisix-go-plugin-runner/internal/util"
+ hrc "github.com/api7/ext-plugin-proto/go/A6/HTTPReqCall"
+)
+
+func HTTPReqCall(buf []byte) (*flatbuffers.Builder, error) {
+ builder := util.GetBuilder()
+ hrc.RespStart(builder)
+ resp := hrc.RespEnd(builder)
+ builder.Finish(resp)
+ return builder, nil
+}
diff --git a/internal/server/server.go b/internal/server/server.go
index 52c5624..88f2a17 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -23,9 +23,11 @@ import (
"os"
"os/signal"
"strconv"
+ "strings"
"syscall"
"time"
+ "github.com/apache/apisix-go-plugin-runner/internal/http"
"github.com/apache/apisix-go-plugin-runner/internal/log"
"github.com/apache/apisix-go-plugin-runner/internal/plugin"
"github.com/apache/apisix-go-plugin-runner/internal/util"
@@ -98,6 +100,8 @@ func handleConn(c net.Conn) {
switch ty {
case RPCPrepareConf:
bd, err = plugin.PrepareConf(buf)
+ case RPCHTTPReqCall:
+ bd, err = http.HTTPReqCall(buf)
default:
err = fmt.Errorf("unknown type %d", ty)
}
@@ -148,11 +152,11 @@ func getConfCacheTTL() time.Duration {
func getSockAddr() string {
path := os.Getenv(SockAddrEnv)
- if path == "" {
+ if !strings.HasPrefix(path, "unix:") {
log.Errorf("invalid socket address: %s", path)
return ""
}
- return path
+ return path[len("unix:"):]
}
func Run() {
diff --git a/internal/server/server_test.go b/internal/server/server_test.go
index bd483eb..4a5b3dd 100644
--- a/internal/server/server_test.go
+++ b/internal/server/server_test.go
@@ -29,12 +29,12 @@ func TestGetSockAddr(t *testing.T) {
os.Unsetenv(SockAddrEnv)
assert.Equal(t, "", getSockAddr())
- os.Setenv(SockAddrEnv, "/tmp/x.sock")
+ os.Setenv(SockAddrEnv, "unix:/tmp/x.sock")
assert.Equal(t, "/tmp/x.sock", getSockAddr())
}
func TestRun(t *testing.T) {
- addr := "/tmp/x.sock"
+ addr := "unix:/tmp/x.sock"
os.Setenv(SockAddrEnv, addr)
os.Setenv(ConfCacheTTLEnv, "60")
@@ -60,9 +60,9 @@ func TestRun(t *testing.T) {
}
for _, c := range cases {
- conn, err := net.DialTimeout("unix", addr, 1*time.Second)
- defer conn.Close()
+ conn, err := net.DialTimeout("unix", addr[len("unix:"):], 1*time.Second)
assert.NotNil(t, conn, err)
+ defer conn.Close()
conn.Write(c.header)
}
}