Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fortio for openSUSE:Factory checked 
in at 2023-02-05 19:20:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fortio (Old)
 and      /work/SRC/openSUSE:Factory/.fortio.new.4462 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fortio"

Sun Feb  5 19:20:20 2023 rev:28 rq:1063164 version:1.40.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/fortio/fortio.changes    2023-01-26 
13:59:37.988533234 +0100
+++ /work/SRC/openSUSE:Factory/.fortio.new.4462/fortio.changes  2023-02-05 
19:20:21.471610751 +0100
@@ -1,0 +2,10 @@
+Sat Feb 04 12:24:53 UTC 2023 - ka...@b1-systems.de
+
+- Update to version 1.40.1:
+  * fix special grpc metadata handling (#697)
+  * Bump docker/setup-buildx-action from 2.2.1 to 2.4.0 (#698)
+  * Bump github/codeql-action from 2.1.39 to 2.2.1 (#699)
+  * Bump google.golang.org/grpc from 1.52.1 to 1.52.3 (#694)
+  * Always initialize DebugHandler's startTime + misc cleanup (#693)
+
+-------------------------------------------------------------------

Old:
----
  fortio-1.40.0.tar.gz

New:
----
  fortio-1.40.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fortio.spec ++++++
--- /var/tmp/diff_new_pack.FyM5Ij/_old  2023-02-05 19:20:21.971613641 +0100
+++ /var/tmp/diff_new_pack.FyM5Ij/_new  2023-02-05 19:20:21.975613664 +0100
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           fortio
-Version:        1.40.0
+Version:        1.40.1
 Release:        0
 Summary:        Load testing library, command line tool, advanced echo server 
and web UI
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.FyM5Ij/_old  2023-02-05 19:20:22.015613896 +0100
+++ /var/tmp/diff_new_pack.FyM5Ij/_new  2023-02-05 19:20:22.019613918 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/fortio/fortio</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v1.40.0</param>
+    <param name="revision">v1.40.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>
@@ -17,7 +17,7 @@
     <param name="compression">gz</param>
   </service>
   <service name="go_modules" mode="disabled">
-    <param name="archive">fortio-1.40.0.tar.gz</param>
+    <param name="archive">fortio-1.40.1.tar.gz</param>
   </service>
 </services>
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.FyM5Ij/_old  2023-02-05 19:20:22.043614057 +0100
+++ /var/tmp/diff_new_pack.FyM5Ij/_new  2023-02-05 19:20:22.047614081 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/fortio/fortio</param>
-              <param 
name="changesrevision">43a882efd38f26ec6d70685090c6fdc78b1821de</param></service></servicedata>
+              <param 
name="changesrevision">a681ef1703e792f06e70f2386dfe30038c071b10</param></service></servicedata>
 (No newline at EOF)
 

++++++ fortio-1.40.0.tar.gz -> fortio-1.40.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/.github/workflows/codeql-analysis.yml 
new/fortio-1.40.1/.github/workflows/codeql-analysis.yml
--- old/fortio-1.40.0/.github/workflows/codeql-analysis.yml     2023-01-25 
17:39:53.000000000 +0100
+++ new/fortio-1.40.1/.github/workflows/codeql-analysis.yml     2023-02-02 
16:43:46.000000000 +0100
@@ -44,7 +44,7 @@
 
       # Initializes the CodeQL tools for scanning.
       - name: Initialize CodeQL
-        uses: 
github/codeql-action/init@a34ca99b4610d924e04c68db79e503e1f79f9f02 # pin@v2
+        uses: 
github/codeql-action/init@3ebbd71c74ef574dbc558c82f70e52732c8b44fe # pin@v2
         with:
           languages: ${{ matrix.language }}
           # If you wish to specify custom queries, you can do so here or in a 
config file.
@@ -55,7 +55,7 @@
           # Autobuild attempts to build any compiled languages  (C/C++, C#, or 
Java).
           # If this step fails, then you should remove it and run the build 
manually (see below)
       - name: Autobuild
-        uses: 
github/codeql-action/autobuild@a34ca99b4610d924e04c68db79e503e1f79f9f02 # pin@v2
+        uses: 
github/codeql-action/autobuild@3ebbd71c74ef574dbc558c82f70e52732c8b44fe # pin@v2
 
       # ℹ️ Command-line programs to run using the OS shell.
       # 📚 https://git.io/JvXDl
@@ -66,4 +66,4 @@
       #   make bootstrap
       #   make release
       - name: Perform CodeQL Analysis
-        uses: 
github/codeql-action/analyze@a34ca99b4610d924e04c68db79e503e1f79f9f02 # pin@v2
+        uses: 
github/codeql-action/analyze@3ebbd71c74ef574dbc558c82f70e52732c8b44fe # pin@v2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/.github/workflows/main.yml 
new/fortio-1.40.1/.github/workflows/main.yml
--- old/fortio-1.40.0/.github/workflows/main.yml        2023-01-25 
17:39:53.000000000 +0100
+++ new/fortio-1.40.1/.github/workflows/main.yml        2023-02-02 
16:43:46.000000000 +0100
@@ -29,7 +29,7 @@
 
       - name: Set up Docker Buildx
         id: buildx
-        uses: 
docker/setup-buildx-action@8c0edbc76e98fa90f69d9a2c020dcb50019dc325 # pin@v2
+        uses: 
docker/setup-buildx-action@15c905b16b06416d2086efa066dd8e3a35cc7f98 # pin@v2
 
       - name: Available platforms
         run: echo ${{ steps.buildx.outputs.platforms }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/.github/workflows/manual-build.yml 
new/fortio-1.40.1/.github/workflows/manual-build.yml
--- old/fortio-1.40.0/.github/workflows/manual-build.yml        2023-01-25 
17:39:53.000000000 +0100
+++ new/fortio-1.40.1/.github/workflows/manual-build.yml        2023-02-02 
16:43:46.000000000 +0100
@@ -30,7 +30,7 @@
 
       - name: Set up Docker Buildx
         id: buildx
-        uses: 
docker/setup-buildx-action@8c0edbc76e98fa90f69d9a2c020dcb50019dc325 # pin@v2
+        uses: 
docker/setup-buildx-action@15c905b16b06416d2086efa066dd8e3a35cc7f98 # pin@v2
 
       - name: Build
         id: build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/README.md new/fortio-1.40.1/README.md
--- old/fortio-1.40.0/README.md 2023-01-25 17:39:53.000000000 +0100
+++ new/fortio-1.40.1/README.md 2023-02-02 16:43:46.000000000 +0100
@@ -54,13 +54,13 @@
 The [releases](https://github.com/fortio/fortio/releases) page has binaries 
for many OS/architecture combinations (see assets):
 
 ```shell
-curl -L 
https://github.com/fortio/fortio/releases/download/v1.40.0/fortio-linux_amd64-1.40.0.tgz
 \
+curl -L 
https://github.com/fortio/fortio/releases/download/v1.40.1/fortio-linux_amd64-1.40.1.tgz
 \
  | sudo tar -C / -xvzpf -
 # or the debian package
-wget 
https://github.com/fortio/fortio/releases/download/v1.40.0/fortio_1.40.0_amd64.deb
-dpkg -i fortio_1.40.0_amd64.deb
+wget 
https://github.com/fortio/fortio/releases/download/v1.40.1/fortio_1.40.1_amd64.deb
+dpkg -i fortio_1.40.1_amd64.deb
 # or the rpm
-rpm -i 
https://github.com/fortio/fortio/releases/download/v1.40.0/fortio-1.40.0-1.x86_64.rpm
+rpm -i 
https://github.com/fortio/fortio/releases/download/v1.40.1/fortio-1.40.1-1.x86_64.rpm
 # and more, see assets in release page
 ```
 
@@ -70,7 +70,7 @@
 brew install fortio
 ```
 
-On Windows, download 
https://github.com/fortio/fortio/releases/download/v1.40.0/fortio_win_1.40.0.zip
 and extract `fortio.exe` to any location, then using the Windows Command 
Prompt:
+On Windows, download 
https://github.com/fortio/fortio/releases/download/v1.40.1/fortio_win_1.40.1.zip
 and extract `fortio.exe` to any location, then using the Windows Command 
Prompt:
 ```
 fortio.exe server
 ```
@@ -119,7 +119,7 @@
 <details>
 <!-- use release/updateFlags.sh to update this section -->
 <pre>
-Φορτίο 1.40.0 usage:
+Φορτίο 1.40.1 usage:
     fortio command [flags] target
 where command is one of: load (load testing), server (starts ui, rest api,
  http-echo, redirect, proxies, tcp-echo, udp-echo and grpc ping servers),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/fgrpc/grpcrunner.go 
new/fortio-1.40.1/fgrpc/grpcrunner.go
--- old/fortio-1.40.0/fgrpc/grpcrunner.go       2023-01-25 17:39:53.000000000 
+0100
+++ new/fortio-1.40.1/fgrpc/grpcrunner.go       2023-02-02 16:43:46.000000000 
+0100
@@ -57,7 +57,7 @@
                        return net.Dial(fnet.UnixDomainSocket, 
o.UnixDomainSocket)
                }))
        }
-       opts = append(opts, extractDialOptions(o.Metadata)...)
+       opts = append(opts, o.dialOptions...)
        conn, err := grpc.Dial(serverAddr, opts...)
        if err != nil {
                log.Errf("failed to connect to %s with certificate %s and 
override %s: %v", serverAddr, o.CACert, o.CertOverride, err)
@@ -89,7 +89,7 @@
        var err error
        var res interface{}
        status := grpc_health_v1.HealthCheckResponse_SERVING
-       if grpcstate.Metadata.Len() != 0 {
+       if len(grpcstate.Metadata) != 0 { // filtered one
                outCtx = metadata.NewOutgoingContext(outCtx, grpcstate.Metadata)
        }
        if grpcstate.Ping {
@@ -121,15 +121,17 @@
        periodic.RunnerOptions
        fhttp.TLSOptions
        Destination        string
-       Service            string        // Service to be checked when using 
grpc health check
-       Profiler           string        // file to save profiles to. defaults 
to no profiling
-       Payload            string        // Payload to be sent for grpc ping 
service
-       Streams            int           // number of streams. total go 
routines and data streams will be streams*numthreads.
-       Delay              time.Duration // Delay to be sent when using grpc 
ping service
-       CertOverride       string        // Override the cert virtual host of 
authority for testing
-       AllowInitialErrors bool          // whether initial errors don't cause 
an abort
-       UsePing            bool          // use our own Ping proto for grpc 
load instead of standard health check one.
-       Metadata           metadata.MD   // metadata that will be added to the 
request
+       Service            string            // Service to be checked when 
using grpc health check
+       Profiler           string            // file to save profiles to. 
defaults to no profiling
+       Payload            string            // Payload to be sent for grpc 
ping service
+       Streams            int               // number of streams. total go 
routines and data streams will be streams*numthreads.
+       Delay              time.Duration     // Delay to be sent when using 
grpc ping service
+       CertOverride       string            // Override the cert virtual host 
of authority for testing
+       AllowInitialErrors bool              // whether initial errors don't 
cause an abort
+       UsePing            bool              // use our own Ping proto for grpc 
load instead of standard health check one.
+       Metadata           metadata.MD       // input metadata that will be 
added to the request
+       dialOptions        []grpc.DialOption // grpc dial options extracted 
from Metadata (authority and user-agent extracted)
+       filteredMetadata   metadata.MD       // filtered version of Metadata 
metadata (without authority and user-agent)
 }
 
 // RunGRPCTest runs an http test and returns the aggregated stats.
@@ -160,11 +162,13 @@
        r := periodic.NewPeriodicRunner(&o.RunnerOptions)
        defer r.Options().Abort()
        numThreads := r.Options().NumThreads // may change
+       o.dialOptions, o.filteredMetadata = 
extractDialOptionsAndFilter(o.Metadata)
        total := GRPCRunnerResults{
                RetCodes:    make(HealthResultMap),
                Destination: o.Destination,
                Streams:     o.Streams,
                Ping:        o.UsePing,
+               Metadata:    o.Metadata, // the original one
        }
        grpcstate := make([]GRPCRunnerResults, numThreads)
        out := r.Options().Out // Important as the default value is set from 
nil to stdout inside NewPeriodicRunner
@@ -185,9 +189,9 @@
                grpcstate[i].Ping = o.UsePing
                var err error
                outCtx := context.Background()
-               if o.Metadata.Len() != 0 {
-                       outCtx = metadata.NewOutgoingContext(outCtx, o.Metadata)
-                       grpcstate[i].Metadata = o.Metadata
+               if o.filteredMetadata.Len() != 0 {
+                       outCtx = metadata.NewOutgoingContext(outCtx, 
o.filteredMetadata)
+                       grpcstate[i].Metadata = o.filteredMetadata // the one 
used to send
                }
                if o.UsePing { //nolint:nestif
                        grpcstate[i].clientP = NewPingServerClient(conn)
@@ -312,18 +316,20 @@
        return parsedDest
 }
 
-// extractDialOptions extract special MD and convert them to dial options.
-func extractDialOptions(in metadata.MD) (out []grpc.DialOption) {
+// extractDialOptionsAndFilter converts special MD into dial options and 
filters them in outMD.
+func extractDialOptionsAndFilter(in metadata.MD) (out []grpc.DialOption, outMD 
metadata.MD) {
+       outMD = make(metadata.MD, len(in))
        for k, v := range in {
                switch k {
-               // Transfer these 2 and avoid having them duplicated in 
original MD
+               // Transfer these 2
                case "user-agent":
-                       delete(in, k)
                        out = append(out, grpc.WithUserAgent(v[0]))
                case "host":
-                       delete(in, k)
                        out = append(out, grpc.WithAuthority(v[0]))
+               default:
+                       outMD[k] = v
                }
        }
-       return out
+       log.Infof("Extracted dial options: %+v", out)
+       return out, outMD
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/fgrpc/grpcrunner_test.go 
new/fortio-1.40.1/fgrpc/grpcrunner_test.go
--- old/fortio-1.40.0/fgrpc/grpcrunner_test.go  2023-01-25 17:39:53.000000000 
+0100
+++ new/fortio-1.40.1/fgrpc/grpcrunner_test.go  2023-02-02 16:43:46.000000000 
+0100
@@ -397,10 +397,10 @@
 }
 
 type mdTestServer struct {
+       t       *testing.T
        mdKey   string
        mdValue string
        health.Server
-       error
 }
 
 func (m *mdTestServer) Ping(ctx context.Context, _ *PingMessage) 
(*PingMessage, error) {
@@ -408,7 +408,7 @@
        val := md.Get(m.mdKey)
 
        if len(val) == 0 || val[0] != m.mdValue {
-               m.error = fmt.Errorf("metadata %s not found or value is not 
%s,actual value: %v", m.mdKey, m.mdValue, val)
+               m.t.Errorf("metadata %s not found or value is not %s,actual 
value: %v", m.mdKey, m.mdValue, val)
        }
        return &PingMessage{}, nil
 }
@@ -418,7 +418,7 @@
        md, _ := metadata.FromIncomingContext(ctx)
        val := md.Get(m.mdKey)
        if len(val) == 0 || val[0] != m.mdValue {
-               m.error = fmt.Errorf("metadata %s not found or value is not 
%s,actual value: %v", m.mdKey, m.mdValue, val)
+               m.t.Errorf("metadata %q not found or value is not %q, actual 
value: %v", m.mdKey, m.mdValue, val)
        }
        return &grpc_health_v1.HealthCheckResponse{Status: 
grpc_health_v1.HealthCheckResponse_SERVING}, nil
 }
@@ -427,7 +427,7 @@
        server := grpc.NewServer()
        lis, err := net.Listen("tcp", "127.0.0.1:0")
        if err != nil {
-               m.error = err
+               m.t.Fatal(err)
                return nil
        }
        grpc_health_v1.RegisterHealthServer(server, m)
@@ -442,15 +442,13 @@
 }
 
 func TestGRPCRunnerWithMetadata(t *testing.T) {
-       server := &mdTestServer{}
+       server := &mdTestServer{t: t}
        addr := server.Serve()
-       if server.error != nil {
-               t.Fatal(server.error)
-       }
        tests := []struct {
-               name  string
-               key   string
-               value string
+               name      string
+               key       string
+               serverKey string
+               value     string
        }{
                {
                        name:  "valid metadata",
@@ -462,27 +460,34 @@
                        key:   "ghi",
                        value: "",
                },
+               {
+                       name:      "authority",
+                       key:       "host",
+                       serverKey: ":authority",
+                       value:     "xyz",
+               },
        }
        for _, test := range tests {
                server.mdKey = test.key
+               if test.serverKey != "" {
+                       server.mdKey = test.serverKey
+               }
                server.mdValue = test.value
-               server.error = nil
                _, err := RunGRPCTest(&GRPCRunnerOptions{
+                       Streams:     10,
                        Destination: addr.String(),
                        Metadata: map[string][]string{
                                test.key: {test.value},
                        },
                })
                if err != nil {
-                       t.Errorf("Test case: %s failed , err: %v", test.name, 
err)
-               }
-               if server.error != nil {
-                       t.Errorf("Test case: %s failed , err: %v", test.name, 
server.error)
+                       t.Errorf("Test case: %s failed, err: %v", test.name, 
err)
                }
+               // errors will be set by the server
        }
 }
 
-func Test_extractDialOptions(t *testing.T) {
+func TestHeaderHandling(t *testing.T) {
        type args struct {
                in metadata.MD
        }
@@ -542,11 +547,11 @@
        }
        for _, tt := range tests {
                t.Run(tt.name, func(t *testing.T) {
-                       gotOut := extractDialOptions(tt.args.in)
+                       gotOut, mdOut := extractDialOptionsAndFilter(tt.args.in)
                        if !reflect.DeepEqual(len(gotOut), tt.wantOutLen) {
-                               t.Errorf("extractDialOptions() = %v, want %v", 
len(gotOut), tt.wantOutLen)
+                               t.Errorf("extractDialOptionsAndFilter() = %v, 
want %v", len(gotOut), tt.wantOutLen)
                        }
-                       if !reflect.DeepEqual(tt.args.in, tt.wantMD) {
+                       if !reflect.DeepEqual(mdOut, tt.wantMD) {
                                t.Errorf("got md = %v, want %v", tt.args.in, 
tt.wantMD)
                        }
                })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/fgrpc/pingsrv.go 
new/fortio-1.40.1/fgrpc/pingsrv.go
--- old/fortio-1.40.0/fgrpc/pingsrv.go  2023-01-25 17:39:53.000000000 +0100
+++ new/fortio-1.40.1/fgrpc/pingsrv.go  2023-02-02 16:43:46.000000000 +0100
@@ -114,6 +114,7 @@
 func PingClientCall(serverAddr string, n int, payload string, delay 
time.Duration, tlsOpts *fhttp.TLSOptions, md metadata.MD,
 ) (float64, error) {
        o := GRPCRunnerOptions{Destination: serverAddr, TLSOptions: *tlsOpts, 
Metadata: md}
+       o.dialOptions, o.filteredMetadata = extractDialOptionsAndFilter(md)
        conn, err := Dial(&o) // somehow this never seem to error out, error 
comes later
        if err != nil {
                return -1, err // error already logged
@@ -122,7 +123,7 @@
        cli := NewPingServerClient(conn)
        outCtx := context.Background()
        if md.Len() != 0 {
-               outCtx = metadata.NewOutgoingContext(outCtx, md)
+               outCtx = metadata.NewOutgoingContext(outCtx, o.filteredMetadata)
        }
        // Warm up:
        _, err = cli.Ping(outCtx, msg)
@@ -176,7 +177,8 @@
 // service.
 func GrpcHealthCheck(serverAddr, svcname string, n int, tlsOpts 
*fhttp.TLSOptions, md metadata.MD) (*HealthResultMap, error) {
        log.Infof("GrpcHealthCheck for %s svc '%s', %d iterations", serverAddr, 
svcname, n)
-       o := GRPCRunnerOptions{Destination: serverAddr, TLSOptions: *tlsOpts}
+       o := GRPCRunnerOptions{Destination: serverAddr, TLSOptions: *tlsOpts, 
Metadata: md}
+       o.dialOptions, o.filteredMetadata = extractDialOptionsAndFilter(md)
        conn, err := Dial(&o)
        if err != nil {
                return nil, err
@@ -188,7 +190,7 @@
 
        outCtx := context.Background()
        if md.Len() != 0 {
-               outCtx = metadata.NewOutgoingContext(outCtx, md)
+               outCtx = metadata.NewOutgoingContext(outCtx, o.filteredMetadata)
        }
        for i := 1; i <= n; i++ {
                start := time.Now()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/fgrpc/pingsrv_test.go 
new/fortio-1.40.1/fgrpc/pingsrv_test.go
--- old/fortio-1.40.0/fgrpc/pingsrv_test.go     2023-01-25 17:39:53.000000000 
+0100
+++ new/fortio-1.40.1/fgrpc/pingsrv_test.go     2023-02-02 16:43:46.000000000 
+0100
@@ -129,13 +129,11 @@
        server := &mdTestServer{}
        addr := server.Serve()
        TLSInsecure := &fhttp.TLSOptions{Insecure: true}
-       if server.error != nil {
-               t.Fatal(server.error)
-       }
        tests := []struct {
-               name  string
-               key   string
-               value string
+               name      string
+               key       string
+               serverKey string
+               value     string
        }{
                {
                        name:  "valid metadata",
@@ -147,34 +145,39 @@
                        key:   "ghi",
                        value: "",
                },
+               {
+                       name:      "authority",
+                       key:       "host",
+                       serverKey: ":authority",
+                       value:     "xyz",
+               },
        }
+
        for _, test := range tests {
                server.mdKey = test.key
+               if test.serverKey != "" {
+                       server.mdKey = test.serverKey
+               }
                server.mdValue = test.value
-               server.error = nil
                _, err := PingClientCall(addr.String(), 2, "", 0, TLSInsecure, 
metadata.MD{
                        test.key: []string{test.value},
                })
                if err != nil {
                        t.Errorf("PingClientCall test case: %s failed , err: 
%v", test.name, err)
                }
-               if server.error != nil {
-                       t.Errorf("PingClientCall test case: %s failed , err: 
%v", test.name, server.error)
-               }
        }
 
        for _, test := range tests {
                server.mdKey = test.key
+               if test.serverKey != "" {
+                       server.mdKey = test.serverKey
+               }
                server.mdValue = test.value
-               server.error = nil
                _, err := GrpcHealthCheck(addr.String(), "", 2, TLSInsecure, 
metadata.MD{
                        test.key: []string{test.value},
                })
                if err != nil {
                        t.Errorf("GrpcHealthCheck test case: %s failed , err: 
%v", test.name, err)
                }
-               if server.error != nil {
-                       t.Errorf("GrpcHealthCheck test case: %s failed , err: 
%v", test.name, server.error)
-               }
        }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/fhttp/http_server.go 
new/fortio-1.40.1/fhttp/http_server.go
--- old/fortio-1.40.0/fhttp/http_server.go      2023-01-25 17:39:53.000000000 
+0100
+++ new/fortio-1.40.1/fhttp/http_server.go      2023-02-02 16:43:46.000000000 
+0100
@@ -45,7 +45,7 @@
 
 var (
        // Start time of the server (used in debug handler for uptime).
-       startTime time.Time
+       startTime = time.Now()
        // EchoRequests is the number of request received. Only updated in 
Debug mode.
        EchoRequests int64
        // TODO find a way to only include this on binaries and not library 
mode (#433).
@@ -238,9 +238,8 @@
                return mux, addr.(*net.TCPAddr)
        }
        // Note: we actually use the fact it's not supported as an error server 
for tests - need to change that
-       log.Errf("Secure setup not yet supported. Will just close incoming 
connections for now")
+       log.Warnf("Closing server requested (for error testing)")
        listener, addr := fnet.Listen("closing server", "0")
-       // err = http.ServeTLS(listener, nil, "", "") // go 1.9
        go func() {
                err := closingServer(listener)
                if err != nil {
@@ -296,6 +295,9 @@
 */
 
 // DebugHandler returns debug/useful info to http client.
+// Note this can be dangerous and shouldn't be exposed to the internet.
+// A safer version is available as part of fortio's proxy
+// https://github.com/fortio/proxy/blob/main/rp/reverse_proxy.go
 func DebugHandler(w http.ResponseWriter, r *http.Request) {
        LogRequest(r, "Debug")
        var buf bytes.Buffer
@@ -536,12 +538,7 @@
 // RedirectToHTTPS Sets up a redirector to https on the given port.
 // (Do not create a loop, make sure this is addressed from an ingress).
 func RedirectToHTTPS(port string) net.Addr {
-       m, a := HTTPServer("https redirector", port)
-       if m == nil {
-               return nil // error already logged
-       }
-       m.HandleFunc("/", RedirectToHTTPSHandler)
-       return a
+       return HTTPServerWithHandler("https redirector", port, 
http.HandlerFunc(RedirectToHTTPSHandler))
 }
 
 // TLSInfo returns " https <cipher suite>" if the request is using TLS, or "" 
otherwise.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/go.mod new/fortio-1.40.1/go.mod
--- old/fortio-1.40.0/go.mod    2023-01-25 17:39:53.000000000 +0100
+++ new/fortio-1.40.1/go.mod    2023-02-02 16:43:46.000000000 +0100
@@ -9,7 +9,7 @@
        github.com/google/uuid v1.3.0
        golang.org/x/exp v0.0.0-20221111204811-129d8d6c17ab
        golang.org/x/net v0.5.0
-       google.golang.org/grpc v1.52.1
+       google.golang.org/grpc v1.52.3
 )
 
 require (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.40.0/go.sum new/fortio-1.40.1/go.sum
--- old/fortio-1.40.0/go.sum    2023-01-25 17:39:53.000000000 +0100
+++ new/fortio-1.40.1/go.sum    2023-02-02 16:43:46.000000000 +0100
@@ -21,8 +21,8 @@
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 
h1:a2S6M0+660BgMNl++4JPlcAO/CjkqYItDEZwkoDQK7c=
 google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod 
h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
-google.golang.org/grpc v1.52.1 h1:2NpOPk5g5Xtb0qebIEs7hNIa++PdtZLo2AQUpc1YnSU=
-google.golang.org/grpc v1.52.1/go.mod 
h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY=
+google.golang.org/grpc v1.52.3 h1:pf7sOysg4LdgBqduXveGKrcEwbStiK2rtfghdzlUYDQ=
+google.golang.org/grpc v1.52.3/go.mod 
h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod 
h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0/go.mod 
h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 google.golang.org/protobuf v1.28.1 
h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/google.golang.org/grpc/version.go 
new/vendor/google.golang.org/grpc/version.go
--- old/vendor/google.golang.org/grpc/version.go        2023-01-26 
07:37:46.000000000 +0100
+++ new/vendor/google.golang.org/grpc/version.go        2023-02-04 
13:24:54.000000000 +0100
@@ -19,4 +19,4 @@
 package grpc
 
 // Version is the current grpc version.
-const Version = "1.52.1"
+const Version = "1.52.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2023-01-26 07:37:46.000000000 +0100
+++ new/vendor/modules.txt      2023-02-04 13:24:54.000000000 +0100
@@ -42,7 +42,7 @@
 # google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6
 ## explicit; go 1.19
 google.golang.org/genproto/googleapis/rpc/status
-# google.golang.org/grpc v1.52.1
+# google.golang.org/grpc v1.52.3
 ## explicit; go 1.17
 google.golang.org/grpc
 google.golang.org/grpc/attributes

Reply via email to