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-06-22 23:26:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fortio (Old) and /work/SRC/openSUSE:Factory/.fortio.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fortio" Thu Jun 22 23:26:17 2023 rev:40 rq:1094597 version:1.55.1 Changes: -------- --- /work/SRC/openSUSE:Factory/fortio/fortio.changes 2023-06-16 16:54:49.737701033 +0200 +++ /work/SRC/openSUSE:Factory/.fortio.new.15902/fortio.changes 2023-06-22 23:26:43.122042806 +0200 @@ -1,0 +2,13 @@ +Thu Jun 22 05:07:24 UTC 2023 - ka...@b1-systems.de + +- Update to version 1.55.1: + * change all the http client logs (info level and up) to + structured (#778) + * use fixed log package for log.Printf, remove bogus \n in + log.Printf (#775) + * Bump google.golang.org/grpc from 1.55.0 to 1.56.0 (#771) + * Bump docker/setup-buildx-action from 2.6.0 to 2.7.0 (#773) + * Bump docker/build-push-action from 4.1.0 to 4.1.1 (#772) + * Bump docker/login-action from 2.1.0 to 2.2.0 (#774) + +------------------------------------------------------------------- Old: ---- fortio-1.55.0.obscpio New: ---- fortio-1.55.1.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fortio.spec ++++++ --- /var/tmp/diff_new_pack.a0LAfz/_old 2023-06-22 23:26:43.922046886 +0200 +++ /var/tmp/diff_new_pack.a0LAfz/_new 2023-06-22 23:26:43.930046927 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: fortio -Version: 1.55.0 +Version: 1.55.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.a0LAfz/_old 2023-06-22 23:26:43.966047111 +0200 +++ /var/tmp/diff_new_pack.a0LAfz/_new 2023-06-22 23:26:43.970047131 +0200 @@ -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.55.0</param> + <param name="revision">v1.55.1</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.a0LAfz/_old 2023-06-22 23:26:43.994047253 +0200 +++ /var/tmp/diff_new_pack.a0LAfz/_new 2023-06-22 23:26:43.998047274 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/fortio/fortio</param> - <param name="changesrevision">7d76c8ef1ea2b66f736b3d54d093ed0d2ce2a768</param></service></servicedata> + <param name="changesrevision">b80d012cd7ee3df17e3e9f1ec644efb68abab47d</param></service></servicedata> (No newline at EOF) ++++++ fortio-1.55.0.obscpio -> fortio-1.55.1.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.55.0/.github/workflows/main.yml new/fortio-1.55.1/.github/workflows/main.yml --- old/fortio-1.55.0/.github/workflows/main.yml 2023-06-15 01:22:53.000000000 +0200 +++ new/fortio-1.55.1/.github/workflows/main.yml 2023-06-22 00:25:42.000000000 +0200 @@ -29,13 +29,13 @@ - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@6a58db7e0d21ca03e6c44877909e80e45217eed2 # pin@v2 + uses: docker/setup-buildx-action@ecf95283f03858871ff00b787d79c419715afc34 # pin@v2 - name: Available platforms run: echo ${{ steps.buildx.outputs.platforms }} - name: Log in to Docker Hub - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # pin@v2 + uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # pin@v2 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_TOKEN }} @@ -51,7 +51,7 @@ echo "Version $VERSION, Package version $PACKAGE_VERSION" - name: Build and push Docker image - uses: docker/build-push-action@44ea916f6c540f9302d50c2b1e5a8dc071f15cdf # pin@v3 + uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825 # pin@v3 with: context: . platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.55.0/.github/workflows/manual-build.yml new/fortio-1.55.1/.github/workflows/manual-build.yml --- old/fortio-1.55.0/.github/workflows/manual-build.yml 2023-06-15 01:22:53.000000000 +0200 +++ new/fortio-1.55.1/.github/workflows/manual-build.yml 2023-06-22 00:25:42.000000000 +0200 @@ -30,7 +30,7 @@ - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@6a58db7e0d21ca03e6c44877909e80e45217eed2 # pin@v2 + uses: docker/setup-buildx-action@ecf95283f03858871ff00b787d79c419715afc34 # pin@v2 - name: Build id: build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.55.0/README.md new/fortio-1.55.1/README.md --- old/fortio-1.55.0/README.md 2023-06-15 01:22:53.000000000 +0200 +++ new/fortio-1.55.1/README.md 2023-06-22 00:25:42.000000000 +0200 @@ -1,4 +1,4 @@ -<!-- 1.55.0 --> +<!-- 1.55.1 --> # Fortio [![Awesome Go](https://fortio.org/mentioned-badge.svg)](https://github.com/avelino/awesome-go#networking) @@ -60,13 +60,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.55.0/fortio-linux_amd64-1.55.0.tgz \ +curl -L https://github.com/fortio/fortio/releases/download/v1.55.1/fortio-linux_amd64-1.55.1.tgz \ | sudo tar -C / -xvzpf - # or the debian package -wget https://github.com/fortio/fortio/releases/download/v1.55.0/fortio_1.55.0_amd64.deb -dpkg -i fortio_1.55.0_amd64.deb +wget https://github.com/fortio/fortio/releases/download/v1.55.1/fortio_1.55.1_amd64.deb +dpkg -i fortio_1.55.1_amd64.deb # or the rpm -rpm -i https://github.com/fortio/fortio/releases/download/v1.55.0/fortio-1.55.0-1.x86_64.rpm +rpm -i https://github.com/fortio/fortio/releases/download/v1.55.1/fortio-1.55.1-1.x86_64.rpm # and more, see assets in release page ``` @@ -76,7 +76,7 @@ brew install fortio ``` -On Windows, download https://github.com/fortio/fortio/releases/download/v1.55.0/fortio_win_1.55.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.55.1/fortio_win_1.55.1.zip and extract `fortio.exe` to any location, then using the Windows Command Prompt: ``` fortio.exe server ``` @@ -127,7 +127,7 @@ <!-- use release/updateFlags.sh to update this section --> <pre> <!-- USAGE_START --> -ΦοÏÏίο 1.55.0 usage: +ΦοÏÏίο 1.55.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.55.0/fhttp/http_client.go new/fortio-1.55.1/fhttp/http_client.go --- old/fortio-1.55.0/fhttp/http_client.go 2023-06-15 01:22:53.000000000 +0200 +++ new/fortio-1.55.1/fhttp/http_client.go 2023-06-22 00:25:42.000000000 +0200 @@ -371,7 +371,9 @@ //nolint:noctx // we pass context later in Run()/Fetch() req, err := http.NewRequest(method, o.URL, body) if err != nil { - log.Errf("[%d] Unable to make %s request for %s : %v", o.ID, method, o.URL, err) + log.S(log.Error, "Unable to make request", + log.Attr("method", method), log.Attr("url", o.URL), log.Attr("err", err), + log.Attr("thread", o.ID), log.Attr("run", o.UniqueID)) return nil, err } req.Header = o.GenerateHeaders() @@ -387,7 +389,8 @@ } bytes, err := httputil.DumpRequestOut(req, false) if err != nil { - log.Errf("[%d] Unable to dump request: %v", o.ID, err) + log.S(log.Error, "Unable to dump request", + log.Attr("err", err), log.Attr("thread", o.ID), log.Attr("run", o.UniqueID)) } else { log.Debugf("[%d] For URL %s, sending:\n%s", o.ID, o.URL, bytes) } @@ -427,7 +430,7 @@ if c.req != nil { if c.req.Body != nil { if err := c.req.Body.Close(); err != nil { - log.Warnf("[%d] Error closing std client body: %v", c.id, err) + log.S(log.Warning, "Error closing std client body", log.Attr("err", err), log.Attr("thread", c.id), log.Attr("run", c.runID)) } } c.req = nil @@ -494,13 +497,15 @@ } resp, err := c.client.Do(req) if err != nil { - log.Errf("[%d] Unable to send %s request for %s : %v", c.id, req.Method, c.url, err) + log.S(log.Error, "Unable to send request", + log.Attr("method", req.Method), log.Attr("url", c.url), log.Attr("err", err), + log.Attr("thread", c.id), log.Attr("run", c.runID)) return -1, -1, 0 } var data []byte if log.LogDebug() { if data, err = httputil.DumpResponse(resp, false); err != nil { - log.Errf("[%d] Unable to dump response %v", c.id, err) + log.S(log.Error, "Unable to dump response", log.Attr("err", err), log.Attr("thread", c.id), log.Attr("run", c.runID)) } else { log.Debugf("[%d] For URL %s, received:\n%s", c.id, c.url, data) } @@ -512,11 +517,12 @@ n, err = io.Copy(c.dataWriter, resp.Body) resp.Body.Close() if err != nil { - log.Errf("[%d] Unable to read response for %s : %v", c.id, c.url, err) + log.S(log.Error, "Unable to read response", + log.Attr("err", err), log.Attr("thread", c.id), log.Attr("run", c.runID)) code := resp.StatusCode if codeIsOK(code) { code = http.StatusNoContent - log.Warnf("[%d] Ok code despite read error, switching code to %d", c.id, code) + log.S(log.Warning, "Ok code despite read error, switching code to 204", log.Attr("thread", c.id), log.Attr("run", c.runID)) } return code, n, 0 } @@ -592,7 +598,8 @@ newRemoteAddress := conn.RemoteAddr().String() // No change when it wasn't set before (first time) and when the value isn't actually changing either. if req.RemoteAddr != "" && newRemoteAddress != req.RemoteAddr { - log.Infof("[%d] Standard client IP address changed from %s to %s", client.id, req.RemoteAddr, newRemoteAddress) + log.S(log.Info, "Standard client IP address changed", log.Str("dest", req.RemoteAddr), log.Str("new_ip", newRemoteAddress), + log.Attr("thread", client.id), log.Attr("run", client.runID)) } req.RemoteAddr = newRemoteAddress client.ipAddrUsage.Record(req.RemoteAddr) @@ -734,7 +741,8 @@ log.Debugf("[%d] Closing %p %s socket count %d", c.id, c, c.url, c.socketCount) if c.socket != nil { if err := c.socket.Close(); err != nil { - log.Warnf("[%d] Error closing fast client's socket: %v", c.id, err) + log.S(log.Warning, "Error closing fast client's socket", + log.Attr("err", err), log.Attr("thread", c.id), log.Attr("run", c.runID)) } c.socket = nil } @@ -771,7 +779,8 @@ // Parse the url, extract components. url, err := url.Parse(urlString) if err != nil { - log.Errf("[%d] Bad url %q : %v", o.ID, urlString, err) + log.S(log.Error, "Bad url", log.Str("url", urlString), log.Attr("err", err), + log.Attr("thread", o.ID), log.Attr("run", o.UniqueID)) return nil, err } @@ -808,7 +817,8 @@ } var addr net.Addr if o.UnixDomainSocket != "" { - log.Infof("[%d] Using unix domain socket %v instead of %v %v", bc.id, o.UnixDomainSocket, bc.hostname, bc.port) + log.S(log.Info, "Using unix domain socket", log.Attr("path", o.UnixDomainSocket), + log.Attr("thread", bc.id), log.Attr("run", bc.runID)) uds := &net.UnixAddr{Name: o.UnixDomainSocket, Net: fnet.UnixDomainSocket} addr = uds } else { @@ -885,7 +895,8 @@ c.dest, err = resolve(ctx, c.hostname, c.port, c.resolve, c.ipAddrUsage) log.Debugf("[%d] Hostname %v resolve to ip %v", c.id, c.hostname, c.dest) if err != nil { - log.Errf("[%d] Unable to resolve hostname %v: %v", c.id, c.hostname, err) + log.S(log.Error, "Unable to resolve hostname", log.Str("hostname", c.hostname), log.Attr("err", err), + log.Attr("thread", c.id), log.Attr("run", c.runID)) return nil } } @@ -896,14 +907,16 @@ socket, err = tls.DialWithDialer(d, c.dest.Network(), c.dest.String(), c.tlsConfig) c.connectStats.Record(time.Since(now).Seconds()) if err != nil { - log.Errf("[%d] Unable to TLS connect to %v : %v", c.id, c.dest, err) + log.S(log.Error, "Unable to TLS connect", log.Attr("dest", c.dest), log.Attr("err", err), + log.Attr("thread", c.id), log.Attr("run", c.runID)) return nil } } else { socket, err = d.Dial(c.dest.Network(), c.dest.String()) c.connectStats.Record(time.Since(now).Seconds()) if err != nil { - log.Errf("[%d] Unable to connect to %v : %v", c.id, c.dest, err) + log.S(log.Error, "Unable to connect", log.Attr("dest", c.dest), log.Attr("err", err), + log.Attr("thread", c.id), log.Attr("run", c.runID)) return nil } } @@ -966,28 +979,30 @@ if err != nil || conErr != nil { if canReuse { // it's ok for the (idle) socket to die once, auto reconnect: - log.Infof("[%d] Closing dead socket %v (%v)", c.id, c.dest, err) + log.S(log.Info, "Closing dead socket", log.Attr("err", err), log.Attr("thread", c.id), log.Attr("run", c.runID)) conn.Close() c.errorCount++ return c.StreamFetch(ctx) // recurse once } - log.Errf("[%d] Unable to write to %v : %v", c.id, c.dest, err) + log.S(log.Error, "Unable to write", log.Attr("err", err), log.Attr("thread", c.id), log.Attr("run", c.runID)) return c.returnRes() } if n != len(c.req) { - log.Errf("[%d] Short write to %v : %d instead of %d", c.id, c.dest, n, len(c.req)) + log.S(log.Error, "Short write", log.Attr("err", err), log.Attr("actual", n), log.Attr("expected", len(c.req)), + log.Attr("thread", c.id), log.Attr("run", c.runID)) return c.returnRes() } if !c.keepAlive && c.halfClose { //nolint:nestif tcpConn, ok := conn.(*net.TCPConn) if ok { if err = tcpConn.CloseWrite(); err != nil { - log.Errf("[%d] Unable to close write to %v : %v", c.id, c.dest, err) + log.S(log.Error, "Unable to close write", log.Attr("err", err), log.Attr("thread", c.id), log.Attr("run", c.runID)) return c.returnRes() } // else: log.Debugf("[%d] Half closed ok after sending request %v", c.id, c.dest) } else { - log.Warnf("[%d] Unable to close write non tcp connection %v", c.id, c.dest) + log.S(log.Warning, "Unable to close write non tcp connection", + log.Attr("err", err), log.Attr("thread", c.id), log.Attr("run", c.runID)) } } // Read the response: @@ -1027,11 +1042,12 @@ if err != nil { if reusedSocket && c.size == 0 { // Ok for reused socket to be dead once (close by server) - log.Infof("[%d] Closing dead socket %v (err %v at first read)", c.id, c.dest, err) + log.S(log.Info, "Closing dead socket (err at first read)", + log.Attr("err", err), log.Attr("thread", c.id), log.Attr("run", c.runID)) c.errorCount++ err = conn.Close() // close the previous one if err != nil { - log.Warnf("[%d] Error closing dead socket %v: %v", c.id, c.dest, err) + log.S(log.Warning, "Error closing dead socket", log.Attr("err", err), log.Attr("thread", c.id), log.Attr("run", c.runID)) } c.code = RetryOnce // special "retry once" code return @@ -1040,7 +1056,8 @@ // handled below as possibly normal end of stream after we read something break } - log.Errf("[%d] Read error for %v %d : %v", c.id, c.dest, c.size, err) + log.S(log.Error, "Read error", log.Attr("err", err), log.Attr("size", c.size), log.Attr("dest", c.dest), log.Str("url", c.url), + log.Attr("thread", c.id), log.Attr("run", c.runID)) c.code = SocketError break } @@ -1096,7 +1113,8 @@ // Content-Length mode: contentLength = ParseDecimal(c.buffer[offset+len(contentLengthHeader) : c.headerLen]) if contentLength < 0 { - log.Warnf("[%d] Warning: content-length unparsable %s", c.id, string(c.buffer[offset+2:offset+len(contentLengthHeader)+4])) + log.S(log.Warning, "Content-length unparsable", log.Str("cl", string(c.buffer[offset+2:offset+len(contentLengthHeader)+4])), + log.Attr("thread", c.id), log.Attr("run", c.runID)) keepAlive = false break } @@ -1124,22 +1142,26 @@ if log.LogVerbose() { log.LogVf("[%d] Warning: content-length missing in %q", c.id, string(c.buffer[:c.headerLen])) } else { - log.Warnf("[%d] Warning: content-length missing (%d bytes headers)", c.id, c.headerLen) + log.S(log.Warning, "Content-length missing", + log.Attr("header_len", c.headerLen), log.Attr("thread", c.id), log.Attr("run", c.runID)) } keepAlive = false // can't keep keepAlive break } } // end of content-length section if max > int64(len(c.buffer)) { - log.Warnf("[%d] Buffer is too small for headers %d + data %d - change -httpbufferkb flag to at least %d", - c.id, c.headerLen, contentLength, (int64(c.headerLen)+contentLength)/1024+1) + log.S(log.Warning, "Buffer is too small for headers + data - change -httpbufferkb flag", + log.Attr("header_len", c.headerLen), + log.Attr("content_length", contentLength), + log.Attr("buffer_needed", (int64(c.headerLen)+contentLength)/1024+1), + log.Attr("thread", c.id), log.Attr("run", c.runID)) // TODO: just consume the extra instead // or rather use the dataWriter post headers max = int64(len(c.buffer)) } if checkConnectionClosedHeader { if found, _ := FoldFind(c.buffer[:c.headerLen], connectionCloseHeader); found { - log.Infof("[%d] Server wants to close connection, no keep-alive!", c.id) + log.S(log.Info, "Server wants to close connection, no keep-alive!", log.Attr("thread", c.id), log.Attr("run", c.runID)) keepAlive = false max = int64(len(c.buffer)) // reset to read as much as available } @@ -1149,10 +1171,12 @@ } // end of big if parse header if c.size >= max { if !keepAlive { - log.Errf("[%d] More data is available but stopping after %d, increase -httpbufferkb", c.id, max) + log.S(log.Error, "More data is available but stopping after max, increase -httpbufferkb", + log.Attr("max", max), log.Attr("thread", c.id), log.Attr("run", c.runID)) } if !parsedHeaders && c.parseHeaders { - log.Errf("[%d] Buffer too small (%d) to even finish reading headers, increase -httpbufferkb to get all the data", c.id, max) + log.S(log.Error, "Buffer too small to even finish reading headers, increase -httpbufferkb to get all the data", + log.Attr("max", max), log.Attr("thread", c.id), log.Attr("run", c.runID)) keepAlive = false } if chunkedMode { @@ -1162,20 +1186,24 @@ if c.size == max { log.Debugf("[%d] Couldn't find next chunk size, reading more %d %d", c.id, max, c.size) } else { - log.Infof("[%d] Partial chunk size (%s), reading more %d %d", c.id, DebugSummary(c.buffer[max:c.size], 20), max, c.size) + log.S(log.Info, "Partial chunk size, reading more", + log.Str("buf", DebugSummary(c.buffer[max:c.size], 20)), log.Attr("max", max), log.Attr("size", c.size), + log.Attr("thread", c.id), log.Attr("run", c.runID)) } continue } else if nextChunkLen == 0 { log.Debugf("[%d] Found last chunk %d %d", c.id, max+dataStart, c.size) if c.size != max+dataStart+2 || string(c.buffer[c.size-2:c.size]) != "\r\n" { - log.Errf("[%d] Unexpected mismatch at the end sz=%d expected %d; end of buffer %q", - c.id, c.size, max+dataStart+2, c.buffer[max:c.size]) + log.S(log.Error, "Unexpected mismatch at the end", + log.Attr("size", c.size), log.Attr("expected", max+dataStart+2), + log.Attr("end-of_buffer", c.buffer[max:c.size]), + log.Attr("thread", c.id), log.Attr("run", c.runID)) } } else { max += dataStart + nextChunkLen + 2 // extra CR LF log.Debugf("[%d] One more chunk %d -> new max %d", c.id, nextChunkLen, max) if max > int64(len(c.buffer)) { - log.Errf("[%d] Buffer too small for %d data", c.id, max) + log.S(log.Error, "Buffer too small for data", log.Attr("size", max), log.Attr("thread", c.id), log.Attr("run", c.runID)) } else { if max <= c.size { log.Debugf("[%d] Enough data to reach next chunk, skipping a read", c.id) @@ -1193,7 +1221,8 @@ c.socket = conn // keep the open socket } else { if err := conn.Close(); err != nil { - log.Errf("[%d] Close error %v %d : %v", c.id, c.dest, c.size, err) + log.S(log.Error, "Close error", log.Attr("err", err), log.Attr("size", c.size), + log.Attr("thread", c.id), log.Attr("run", c.runID)) } else { log.Debugf("[%d] Closed ok from %v after reading %d bytes", c.id, c.dest, c.size) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.55.0/fhttp/httprunner.go new/fortio-1.55.1/fhttp/httprunner.go --- old/fortio-1.55.0/fhttp/httprunner.go 2023-06-15 01:22:53.000000000 +0200 +++ new/fortio-1.55.1/fhttp/httprunner.go 2023-06-22 00:25:42.000000000 +0200 @@ -66,7 +66,8 @@ httpstate.headerSizes.Record(float64(headerSize)) if httpstate.AbortOn == code { httpstate.aborter.Abort(false) - log.Infof("Aborted run because of code %d - data len %d", code, size) + log.S(log.Info, "Aborted run because of http code", + log.Attr("run", httpstate.RunID), log.Attr("code", code), log.Attr("size", size)) } return codeIsOK(code), strconv.Itoa(code) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.55.0/fnet/network.go new/fortio-1.55.1/fnet/network.go --- old/fortio-1.55.0/fnet/network.go 2023-06-15 01:22:53.000000000 +0200 +++ new/fortio-1.55.1/fnet/network.go 2023-06-22 00:25:42.000000000 +0200 @@ -148,7 +148,7 @@ } lAddr := listener.Addr() if len(name) > 0 { - log.Printf("Fortio %s %s server listening on %s %s\n", version.Short(), name, sockType, lAddr) + log.Printf("Fortio %s %s server listening on %s %s", version.Short(), name, sockType, lAddr) } return listener, lAddr } @@ -167,7 +167,7 @@ return nil, nil } if len(name) > 0 { - log.Printf("Fortio %s %s server listening on udp %s\n", version.Short(), name, udpconn.LocalAddr()) + log.Printf("Fortio %s %s server listening on udp %s", version.Short(), name, udpconn.LocalAddr()) } return udpconn, udpconn.LocalAddr() } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.55.0/go.mod new/fortio-1.55.1/go.mod --- old/fortio-1.55.0/go.mod 2023-06-15 01:22:53.000000000 +0200 +++ new/fortio-1.55.1/go.mod 2023-06-22 00:25:42.000000000 +0200 @@ -6,13 +6,13 @@ fortio.org/assert v1.2.0 fortio.org/cli v1.1.0 fortio.org/dflag v1.5.2 - fortio.org/log v1.4.0 + fortio.org/log v1.4.1 fortio.org/scli v1.5.0 fortio.org/version v1.0.2 github.com/golang/protobuf v1.5.3 github.com/google/uuid v1.3.0 golang.org/x/net v0.11.0 - google.golang.org/grpc v1.55.0 + google.golang.org/grpc v1.56.0 ) // Local dev of dependencies changes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.55.0/go.sum new/fortio-1.55.1/go.sum --- old/fortio-1.55.0/go.sum 2023-06-15 01:22:53.000000000 +0200 +++ new/fortio-1.55.1/go.sum 2023-06-22 00:25:42.000000000 +0200 @@ -4,8 +4,8 @@ fortio.org/cli v1.1.0/go.mod h1:O3nVImKwJSvHKbMYWkqMbEagAXCS1xvSv1YbHwkKJjY= fortio.org/dflag v1.5.2 h1:F9XVRj4Qr2IbJP7BMj7XZc9wB0Q/RZ61Ool+4YPVad8= fortio.org/dflag v1.5.2/go.mod h1:ppb/A8u+KKg+qUUYZNYuvRnXuVb8IsdHb/XGzsmjkN8= -fortio.org/log v1.4.0 h1:xTCWj0nCj1QFw+QoBmOmxLsXXb7nqtwyoNGYcLFWEA4= -fortio.org/log v1.4.0/go.mod h1:u/8/2lyczXq52aT5Nw6reD+3cR6m/EbS2jBiIYhgiTU= +fortio.org/log v1.4.1 h1:e4MF23oC1J9JBq0xg/GTA9PUZ+tCXNEaYjQOr8g1X0k= +fortio.org/log v1.4.1/go.mod h1:u/8/2lyczXq52aT5Nw6reD+3cR6m/EbS2jBiIYhgiTU= fortio.org/scli v1.5.0 h1:FG7thN0PM9KQInU+LFZ+mjUvShA02hdJNTRVp0r+QUQ= fortio.org/scli v1.5.0/go.mod h1:42O1YYpSz+C9wKyfMkhtugtkldWX3zVGsrmCICRhkwg= fortio.org/sets v1.0.3 h1:HzewdGjH69YmyW06yzplL35lGr+X4OcqQt0qS6jbaO4= @@ -33,8 +33,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= -google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.56.0 h1:+y7Bs8rtMd07LeXmL3NxcTLn7mUkbKZqEpPhMNkwJEE= +google.golang.org/grpc v1.56.0/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= 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.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= ++++++ fortio.obsinfo ++++++ --- /var/tmp/diff_new_pack.a0LAfz/_old 2023-06-22 23:26:44.166048131 +0200 +++ /var/tmp/diff_new_pack.a0LAfz/_new 2023-06-22 23:26:44.170048151 +0200 @@ -1,5 +1,5 @@ name: fortio -version: 1.55.0 -mtime: 1686784973 -commit: 7d76c8ef1ea2b66f736b3d54d093ed0d2ce2a768 +version: 1.55.1 +mtime: 1687386342 +commit: b80d012cd7ee3df17e3e9f1ec644efb68abab47d ++++++ vendor.tar.gz ++++++ ++++ 3396 lines of diff (skipped)