Skip to content

Commit 91e9e4c

Browse files
Rename to fastad (lowercase), fix multiproto wrapper
1 parent 8cec6b1 commit 91e9e4c

File tree

10 files changed

+68
-43
lines changed

10 files changed

+68
-43
lines changed

cmd/receiver/main.go

+9-7
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import (
99
"syscall"
1010
"time"
1111

12-
"FastAD/internal/pinger"
13-
"FastAD/internal/receiver"
14-
"FastAD/internal/wrapper"
15-
pingerpb "FastAD/pkg/proto/pinger"
16-
receiverpb "FastAD/pkg/proto/receiver"
12+
"fastad/internal/multiproto"
13+
"fastad/internal/pinger"
14+
"fastad/internal/receiver"
15+
pingerpb "fastad/pkg/proto/pinger"
16+
receiverpb "fastad/pkg/proto/receiver"
1717

1818
"github.com/sirupsen/logrus"
1919
"google.golang.org/grpc"
@@ -30,8 +30,10 @@ func main() {
3030
pingerpb.RegisterPingerServiceServer(grpcServer, pinger.New())
3131
reflection.Register(grpcServer)
3232

33-
httpServer := wrapper.NewServer(grpcServer)
34-
httpServer.Addr = "0.0.0.0:8002"
33+
httpServer := &http.Server{
34+
Addr: "0.0.0.0:8002",
35+
Handler: multiproto.NewHandler(grpcServer),
36+
}
3537

3638
go func() {
3739
logrus.Infof("Running http server on %s", httpServer.Addr)

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module FastAD
1+
module fastad
22

33
go 1.18
44

internal/multiproto/wrapper.go

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package multiproto
2+
3+
import (
4+
"net/http"
5+
"strings"
6+
7+
"github.com/improbable-eng/grpc-web/go/grpcweb"
8+
"golang.org/x/net/http2"
9+
"golang.org/x/net/http2/h2c"
10+
"google.golang.org/grpc"
11+
)
12+
13+
func OriginAllowed(_ string) bool {
14+
return true
15+
}
16+
17+
func WebSocketOriginAllowed(_ *http.Request) bool {
18+
return true
19+
}
20+
21+
func NewHandler(grpcServer *grpc.Server) http.Handler {
22+
return h2c.NewHandler(
23+
&Handler{
24+
grpcServer: grpcServer,
25+
webServer: grpcweb.WrapServer(
26+
grpcServer,
27+
grpcweb.WithWebsockets(true),
28+
grpcweb.WithOriginFunc(OriginAllowed),
29+
grpcweb.WithWebsocketOriginFunc(WebSocketOriginAllowed),
30+
),
31+
httpHandler: http.DefaultServeMux,
32+
},
33+
&http2.Server{},
34+
)
35+
}
36+
37+
type Handler struct {
38+
grpcServer *grpc.Server
39+
webServer *grpcweb.WrappedGrpcServer
40+
httpHandler http.Handler
41+
}
42+
43+
func (s *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
44+
switch {
45+
case r.ProtoMajor == 2 && strings.Contains(r.Header.Get("Content-Type"), "application/grpc"):
46+
s.grpcServer.ServeHTTP(w, r)
47+
case s.webServer.IsGrpcWebRequest(r) || s.webServer.IsGrpcWebSocketRequest(r):
48+
s.webServer.ServeHTTP(w, r)
49+
default:
50+
s.httpHandler.ServeHTTP(w, r)
51+
}
52+
}

internal/pinger/pinger.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package pinger
33
import (
44
"context"
55

6-
pingerpb "FastAD/pkg/proto/pinger"
6+
pingerpb "fastad/pkg/proto/pinger"
77
)
88

99
func New() *Service {

internal/receiver/receiver.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package receiver
33
import (
44
"context"
55

6-
receiverpb "FastAD/pkg/proto/receiver"
6+
receiverpb "fastad/pkg/proto/receiver"
77

88
"google.golang.org/grpc/codes"
99
"google.golang.org/grpc/status"

internal/wrapper/wrapper.go

-29
This file was deleted.

proto/pinger/pinger.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
syntax = "proto3";
22

33
package pinger;
4-
option go_package = "FastAD/pkg/proto/pinger";
4+
option go_package = "fastad/pkg/proto/pinger";
55

66
message PingRequest {}
77

proto/pinger/pinger_service.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
syntax = "proto3";
22

33
package pinger;
4-
option go_package = "FastAD/pkg/proto/pinger";
4+
option go_package = "fastad/pkg/proto/pinger";
55

66
import "pinger/pinger.proto";
77

proto/receiver/receiver.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
syntax = "proto3";
22

33
package receiver;
4-
option go_package = "FastAD/pkg/proto/receiver";
4+
option go_package = "fastad/pkg/proto/receiver";
55

66
message SubmitFlagsRequest {
77
repeated string flags = 1;

proto/receiver/receiver_service.proto

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
syntax = "proto3";
22

33
package receiver;
4-
option go_package = "FastAD/pkg/proto/receiver";
4+
option go_package = "fastad/pkg/proto/receiver";
55

66
import "receiver/receiver.proto";
77

0 commit comments

Comments
 (0)