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)
 	}
 }