Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xmpp-dns for openSUSE:Factory 
checked in at 2022-08-22 12:02:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xmpp-dns (Old)
 and      /work/SRC/openSUSE:Factory/.xmpp-dns.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xmpp-dns"

Mon Aug 22 12:02:02 2022 rev:2 rq:998585 version:0.3.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/xmpp-dns/xmpp-dns.changes        2022-08-05 
19:51:51.789589240 +0200
+++ /work/SRC/openSUSE:Factory/.xmpp-dns.new.2083/xmpp-dns.changes      
2022-08-22 12:02:03.945360734 +0200
@@ -1,0 +2,9 @@
+Mon Aug 22 08:39:21 UTC 2022 - Michael Vetter <mvet...@suse.com>
+
+- Update to 0.3.1:
+  * Print error details if SRV lookup fails.
+  * Print error details if IP lookup fails.
+  * Respect CNAME records.
+  * Detect CNAME loops (max. 5 CNAMEs) (via xmppsrv >= 0.2.4)
+
+-------------------------------------------------------------------

Old:
----
  xmpp-dns-0.3.0.tar.gz

New:
----
  xmpp-dns-0.3.1.tar.gz

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

Other differences:
------------------
++++++ xmpp-dns.spec ++++++
--- /var/tmp/diff_new_pack.Je1deb/_old  2022-08-22 12:02:04.693362379 +0200
+++ /var/tmp/diff_new_pack.Je1deb/_new  2022-08-22 12:02:04.697362388 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           xmpp-dns
-Version:        0.3.0
+Version:        0.3.1
 Release:        0
 Summary:        A CLI tool to check XMPP SRV records
 License:        BSD-2-Clause

++++++ _service ++++++
--- /var/tmp/diff_new_pack.Je1deb/_old  2022-08-22 12:02:04.737362476 +0200
+++ /var/tmp/diff_new_pack.Je1deb/_new  2022-08-22 12:02:04.741362485 +0200
@@ -3,9 +3,9 @@
     <param name="url">https://salsa.debian.org/mdosch/xmpp-dns.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.3.0</param>
+    <param name="revision">v0.3.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
-    <param name="changesgenerate">enable</param>
+    <param name="changesgenerate">disable</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>
   <service name="set_version" mode="disabled">

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2022-08-04 13:29:21.000000000 +0200
+++ new/vendor/modules.txt      2022-08-22 10:39:04.000000000 +0200
@@ -1,6 +1,6 @@
 # github.com/pborman/getopt/v2 v2.1.0
 ## explicit
 github.com/pborman/getopt/v2
-# salsa.debian.org/mdosch/xmppsrv v0.2.2
+# salsa.debian.org/mdosch/xmppsrv v0.2.4
 ## explicit
 salsa.debian.org/mdosch/xmppsrv
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/salsa.debian.org/mdosch/xmppsrv/.gitlab-ci.yml 
new/vendor/salsa.debian.org/mdosch/xmppsrv/.gitlab-ci.yml
--- old/vendor/salsa.debian.org/mdosch/xmppsrv/.gitlab-ci.yml   2022-08-04 
13:29:21.000000000 +0200
+++ new/vendor/salsa.debian.org/mdosch/xmppsrv/.gitlab-ci.yml   2022-08-22 
10:39:04.000000000 +0200
@@ -38,4 +38,4 @@
     - tags
   script:
      - |
-      release-cli create --name "Release $CI_COMMIT_TAG" --tag-name 
$CI_COMMIT_TAG --description="`cat CHANGELOG.md`"
+      release-cli create --name "Release $CI_COMMIT_TAG" --tag-name 
$CI_COMMIT_TAG --description="`head -n $(expr "$(grep -nm2 "^## " 
CHANGELOG.md|awk '(NR>1) {print $1}'|cut -f1 -d:) - 2"|bc) CHANGELOG.md`"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/salsa.debian.org/mdosch/xmppsrv/CHANGELOG.md 
new/vendor/salsa.debian.org/mdosch/xmppsrv/CHANGELOG.md
--- old/vendor/salsa.debian.org/mdosch/xmppsrv/CHANGELOG.md     2022-08-04 
13:29:21.000000000 +0200
+++ new/vendor/salsa.debian.org/mdosch/xmppsrv/CHANGELOG.md     2022-08-22 
10:39:04.000000000 +0200
@@ -1,5 +1,18 @@
 # Changelog
 
+## [0.2.4]
+### Changed
+- The changes are the same as in 0.2.3 but a new release is created as not all 
changes were in 0.2.3 due to a misstake in the release process.
+
+## [0.2.3]
+### Added
+- Add CNAME lookup.
+
+### Changed
+- Check resolver IP for validity.
+- Improve error strings.
+- Always return the error if one of the lookups failed.
+
 ## [0.2.2]
 ### Changed
 - Added error handling for wrong resolver and DoT configuration.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/salsa.debian.org/mdosch/xmppsrv/xmppsrv.go 
new/vendor/salsa.debian.org/mdosch/xmppsrv/xmppsrv.go
--- old/vendor/salsa.debian.org/mdosch/xmppsrv/xmppsrv.go       2022-08-04 
13:29:21.000000000 +0200
+++ new/vendor/salsa.debian.org/mdosch/xmppsrv/xmppsrv.go       2022-08-22 
10:39:04.000000000 +0200
@@ -8,6 +8,7 @@
        "context"
        "crypto/tls"
        "errors"
+       "fmt"
        "math/rand"
        "net"
        "sort"
@@ -47,6 +48,98 @@
        return o[i].Priority < o[j].Priority
 }
 
+func getCNAME(server string) (string, error) {
+       var cname string
+       // Lookup CNAME
+       for i := 0; i <= 5; i++ {
+               cname, err := net.LookupCNAME(server)
+               // Return the requested domain unchanged if the
+               // CNAME record can't be resolved. This can
+               // happen if there is no CNAME record and no
+               // A/AAAA record. But there could still be SRV
+               // records.
+               if cname == "" {
+                       return server, nil
+               }
+               if cname == server {
+                       return cname, err
+               }
+               server = cname
+       }
+       return cname, errors.New("CNAME loop detected")
+}
+
+func getCNAMEDoT(server string, resolver string) (string, error) {
+       var cname string
+       var err error
+       var d tls.Dialer
+       s := strings.Split(resolver, "#")
+       if len(s) != 2 {
+               return cname, errors.New("wrong DoT server syntax")
+       }
+       ip := net.ParseIP(s[0])
+       if ip == nil {
+               return cname, errors.New("invalid resolver IP")
+       }
+       dnsServer := net.JoinHostPort(s[0], "853")
+       d.Config = &tls.Config{
+               ServerName: s[1],
+       }
+       r := &net.Resolver{
+               Dial: func(cont context.Context, network, address string) 
(net.Conn, error) {
+                       return d.DialContext(cont, "tcp", dnsServer)
+               },
+       }
+       for i := 0; i <= 5; i++ {
+               cname, err = r.LookupCNAME(context.Background(), server)
+               // Return the requested domain unchanged if the
+               // CNAME record can't be resolved. This can
+               // happen if there is no CNAME record and no
+               // A/AAAA record. But there could still be SRV
+               // records.
+               if cname == "" {
+                       return server, nil
+               }
+               if cname == server {
+                       return cname, err
+               }
+               server = cname
+       }
+       return cname, errors.New("CNAME loop detected")
+}
+
+func getCNAMECustomResolver(server string, resolver string) (string, error) {
+       var cname string
+       var err error
+       var d net.Dialer
+       ip := net.ParseIP(resolver)
+       if ip == nil {
+               return cname, errors.New("invalid resolver IP")
+       }
+       dnsServer := net.JoinHostPort(resolver, "53")
+       r := &net.Resolver{
+               Dial: func(cont context.Context, network, address string) 
(net.Conn, error) {
+                       return d.DialContext(cont, "udp", dnsServer)
+               },
+       }
+       for i := 0; i <= 5; i++ {
+               cname, err = r.LookupCNAME(context.Background(), server)
+               // Return the requested domain unchanged if the
+               // CNAME record can't be resolved. This can
+               // happen if there is no CNAME record and no
+               // A/AAAA record. But there could still be SRV
+               // records.
+               if cname == "" {
+                       return server, nil
+               }
+               if cname == server {
+                       return cname, err
+               }
+               server = cname
+       }
+       return cname, errors.New("CNAME loop detected")
+}
+
 func getSRVDoT(server string, srvType string,
        resolver string) ([]SRV, error) {
        var records []SRV
@@ -56,6 +149,10 @@
        if len(s) != 2 {
                return records, errors.New("wrong DoT server syntax")
        }
+       ip := net.ParseIP(s[0])
+       if ip == nil {
+               return records, errors.New("invalid resolver IP")
+       }
        dnsServer := net.JoinHostPort(s[0], "853")
        d.Config = &tls.Config{
                ServerName: s[1],
@@ -84,6 +181,10 @@
        var records []SRV
        var err error
        var d net.Dialer
+       ip := net.ParseIP(resolver)
+       if ip == nil {
+               return records, errors.New("invalid resolver IP")
+       }
        dnsServer := net.JoinHostPort(resolver, "53")
        r := &net.Resolver{
                Dial: func(cont context.Context, network, address string) 
(net.Conn, error) {
@@ -125,6 +226,11 @@
 
 // LookupXmppServer returns the xmpp-server SRV records.
 func LookupXmppServer(server string) ([]SRV, error) {
+       // Look up CNAME
+       cname, err := getCNAME(server)
+       if err == nil {
+               server = cname
+       }
        // Look up xmpp-server SRV
        records, err := getSRV(server, "xmpp-server")
        return records, err
@@ -132,15 +238,28 @@
 
 // LookupXmppServer returns the xmpp-server SRV records.
 func (c *Config) LookupXmppServer(server string) ([]SRV, error) {
+       var cname string
        var records []SRV
        var err error
        // Look up xmpp-server SRV
        switch {
        case c.Resolver == "":
+               cname, err = getCNAME(server)
+               if err == nil {
+                       server = cname
+               }
                records, err = getSRV(server, "xmpp-server")
        case c.Resolver != "" && !c.DoT:
+               cname, err = getCNAMECustomResolver(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                records, err = getSRVCustomResolver(server, "xmpp-server", 
c.Resolver)
        case c.Resolver != "" && c.DoT:
+               cname, err = getCNAMEDoT(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                records, err = getSRVDoT(server, "xmpp-server", c.Resolver)
        default:
                return records, errors.New("xmppsrv: invalid resolver setting")
@@ -151,24 +270,62 @@
 
 // LookupXmppsServer returns the xmpps-server SRV records.
 func LookupXmppsServer(server string) ([]SRV, error) {
+       // Look up CNAME
+       cname, err := getCNAME(server)
+       if err == nil {
+               server = cname
+       }
        // Look up xmpps-server SRV
        records, err := getSRV(server, "xmpps-server")
        return records, err
 }
 
+// LookupCNAME returns the final target name.
+func (c *Config) LookupCNAME(server string) (string, error) {
+       var cname string
+       var err error
+       switch {
+       case c.Resolver == "":
+               // Look up CNAME
+               cname, err = getCNAME(server)
+       case c.Resolver != "" && !c.DoT:
+               // Look up CNAME
+               cname, err = getCNAMECustomResolver(server, c.Resolver)
+       case c.Resolver != "" && c.DoT:
+               // Look up CNMAE
+               cname, err = getCNAMEDoT(server, c.Resolver)
+       default:
+               return cname, errors.New("xmppsrv: invalid resolver setting")
+       }
+       return cname, err
+}
+
 // LookupXmppsServer returns the xmpps-server SRV records.
 func (c *Config) LookupXmppsServer(server string) ([]SRV, error) {
+       var cname string
        var records []SRV
        var err error
        switch {
        case c.Resolver == "":
+               cname, err = getCNAME(server)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpps-server SRV
                records, err = getSRV(server, "xmpps-server")
        case c.Resolver != "" && !c.DoT:
+               cname, err = getCNAMECustomResolver(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpps-server SRV
                records, err = getSRVCustomResolver(server, "xmpps-server",
                        c.Resolver)
        case c.Resolver != "" && c.DoT:
+               cname, err = getCNAMEDoT(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpps-server SRV
                records, err = getSRVDoT(server, "xmpps-server", c.Resolver)
        default:
@@ -179,6 +336,11 @@
 
 // LookupXmppClient returns the xmpp-server SRV records.
 func LookupXmppClient(server string) ([]SRV, error) {
+       // Look up CNAME
+       cname, err := getCNAME(server)
+       if err == nil {
+               server = cname
+       }
        // Look up xmpp-client SRV
        records, err := getSRV(server, "xmpp-client")
        return records, err
@@ -186,17 +348,30 @@
 
 // LookupXmppClient returns the xmpp-server SRV records.
 func (c *Config) LookupXmppClient(server string) ([]SRV, error) {
+       var cname string
        var records []SRV
        var err error
        switch {
        case c.Resolver == "":
+               cname, err = getCNAME(server)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpp-client SRV
                records, err = getSRV(server, "xmpp-client")
        case c.Resolver != "" && !c.DoT:
+               cname, err = getCNAMECustomResolver(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpp-client SRV
                records, err = getSRVCustomResolver(server, "xmpp-client",
                        c.Resolver)
        case c.Resolver != "" && c.DoT:
+               cname, err = getCNAMEDoT(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpp-client SRV
                records, err = getSRVDoT(server, "xmpp-client", c.Resolver)
        default:
@@ -207,6 +382,11 @@
 
 // LookupXmppsClient returns the xmpp-server SRV records.
 func LookupXmppsClient(server string) ([]SRV, error) {
+       // Look up CNAME
+       cname, err := getCNAME(server)
+       if err == nil {
+               server = cname
+       }
        // Look up xmpps-client SRV
        records, err := getSRV(server, "xmpps-client")
        return records, err
@@ -214,17 +394,30 @@
 
 // LookupXmppsClient returns the xmpp-server SRV records.
 func (c *Config) LookupXmppsClient(server string) ([]SRV, error) {
+       var cname string
        var records []SRV
        var err error
        switch {
        case c.Resolver == "":
+               cname, err = getCNAME(server)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpps-client SRV
                records, err = getSRV(server, "xmpps-client")
        case c.Resolver != "" && !c.DoT:
+               cname, err = getCNAMECustomResolver(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpps-client SRV
                records, err = getSRVCustomResolver(server, "xmpps-client",
                        c.Resolver)
        case c.Resolver != "" && c.DoT:
+               cname, err = getCNAMEDoT(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpps-client SRV
                records, err = getSRVDoT(server, "xmpps-client", c.Resolver)
        default:
@@ -237,12 +430,17 @@
 // priority and weight.
 func LookupClient(server string) ([]SRV, error) {
        var records, records2 []SRV
-       var err error
+       var err, err2 error
        rand.Seed(time.Now().UnixNano())
+       // Look up CNAME
+       cname, err := getCNAME(server)
+       if err == nil {
+               server = cname
+       }
        // Look up xmpp-client SRV
-       records, _ = getSRV(server, "xmpp-client")
+       records, err = getSRV(server, "xmpp-client")
        // Look up xmpps-client SRV records.
-       records2, _ = getSRV(server, "xmpps-client")
+       records2, err2 = getSRV(server, "xmpps-client")
        switch rand.Intn(2) {
        case 0:
                records = append(records, records2...)
@@ -251,6 +449,15 @@
        default:
                records = append(records, records2...)
        }
+       switch {
+       case err != nil && err2 != nil:
+               return records, fmt.Errorf("failure in xmpp-client lookup: 
%v\n"+
+                       "failure in xmpps-client lookup: %v", err, err2)
+       case err != nil:
+               return records, err
+       case err2 != nil:
+               return records, err2
+       }
        switch len(records) {
        case 0:
                return records, errors.New("no client records found")
@@ -267,25 +474,38 @@
 // LookupClient returns the xmpp-client and xmpps-client SRV records sorted by
 // priority and weight.
 func (c *Config) LookupClient(server string) ([]SRV, error) {
+       var cname string
        var records, records2 []SRV
-       var err error
+       var err, err2 error
        rand.Seed(time.Now().UnixNano())
        switch {
        case c.Resolver == "":
+               cname, err = getCNAME(server)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpp-client SRV
-               records, _ = getSRV(server, "xmpp-client")
+               records, err = getSRV(server, "xmpp-client")
                // Look up xmpps-client SRV records.
-               records2, _ = getSRV(server, "xmpps-client")
+               records2, err2 = getSRV(server, "xmpps-client")
        case c.Resolver != "" && !c.DoT:
+               cname, err = getCNAMECustomResolver(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpp-client SRV
-               records, _ = getSRVCustomResolver(server, "xmpp-client", 
c.Resolver)
+               records, err = getSRVCustomResolver(server, "xmpp-client", 
c.Resolver)
                // Look up xmpps-client SRV records.
-               records2, _ = getSRVCustomResolver(server, "xmpps-client", 
c.Resolver)
+               records2, err2 = getSRVCustomResolver(server, "xmpps-client", 
c.Resolver)
        case c.Resolver != "" && c.DoT:
+               cname, err = getCNAMEDoT(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpp-client SRV
-               records, _ = getSRVDoT(server, "xmpp-client", c.Resolver)
+               records, err = getSRVDoT(server, "xmpp-client", c.Resolver)
                // Look up xmpps-client SRV records.
-               records2, _ = getSRVDoT(server, "xmpps-client", c.Resolver)
+               records2, err2 = getSRVDoT(server, "xmpps-client", c.Resolver)
        default:
                return records, errors.New("xmppsrv: invalid resolver setting")
        }
@@ -297,6 +517,15 @@
        default:
                records = append(records, records2...)
        }
+       switch {
+       case err != nil && err2 != nil:
+               return records, fmt.Errorf("failure in xmpp-client lookup: 
%v\n"+
+                       "failure in xmpps-client lookup: %v", err, err2)
+       case err != nil:
+               return records, err
+       case err2 != nil:
+               return records, err2
+       }
        switch len(records) {
        case 0:
                return records, errors.New("no client records found")
@@ -313,12 +542,16 @@
 // LookupServer returns the xmpp-server and xmpps-server SRV records sorted by
 // priority and weight.
 func LookupServer(server string) ([]SRV, error) {
-       var err error
+       var err, err2 error
        rand.Seed(time.Now().UnixNano())
+       cname, err := getCNAME(server)
+       if err == nil {
+               server = cname
+       }
        // Look up xmpp-client SRV
-       records, _ := getSRV(server, "xmpp-server")
+       records, err := getSRV(server, "xmpp-server")
        // Look up xmpps-client SRV records.
-       records2, _ := getSRV(server, "xmpps-server")
+       records2, err2 := getSRV(server, "xmpps-server")
        switch rand.Intn(2) {
        case 0:
                records = append(records, records2...)
@@ -327,6 +560,15 @@
        default:
                records = append(records, records2...)
        }
+       switch {
+       case err != nil && err2 != nil:
+               return records, fmt.Errorf("failure in xmpp-server lookup: 
%v\n"+
+                       "failure in xmpps-server lookup: %v", err, err2)
+       case err != nil:
+               return records, err
+       case err2 != nil:
+               return records, err2
+       }
        switch len(records) {
        case 0:
                return records, errors.New("no server records found")
@@ -343,27 +585,40 @@
 // LookupServer returns the xmpp-server and xmpps-server SRV records sorted by
 // priority and weight.
 func (c *Config) LookupServer(server string) ([]SRV, error) {
+       var cname string
        var records, records2 []SRV
-       var err error
+       var err, err2 error
        rand.Seed(time.Now().UnixNano())
        switch {
        case c.Resolver == "":
+               cname, err = getCNAME(server)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpp-client SRV
-               records, _ = getSRV(server, "xmpp-server")
+               records, err = getSRV(server, "xmpp-server")
                // Look up xmpps-client SRV records.
-               records2, _ = getSRV(server, "xmpps-server")
+               records2, err2 = getSRV(server, "xmpps-server")
        case c.Resolver != "" && !c.DoT:
+               cname, err = getCNAMECustomResolver(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpp-client SRV
-               records, _ = getSRVCustomResolver(server, "xmpp-server",
+               records, err = getSRVCustomResolver(server, "xmpp-server",
                        c.Resolver)
                // Look up xmpps-client SRV records.
-               records2, _ = getSRVCustomResolver(server, "xmpps-server",
+               records2, err2 = getSRVCustomResolver(server, "xmpps-server",
                        c.Resolver)
        case c.Resolver != "" && c.DoT:
+               cname, err = getCNAMEDoT(server, c.Resolver)
+               if err == nil {
+                       server = cname
+               }
                // Look up xmpp-client SRV
-               records, _ = getSRVDoT(server, "xmpp-server", c.Resolver)
+               records, err = getSRVDoT(server, "xmpp-server", c.Resolver)
                // Look up xmpps-client SRV records.
-               records2, _ = getSRVDoT(server, "xmpps-server", c.Resolver)
+               records2, err2 = getSRVDoT(server, "xmpps-server", c.Resolver)
        default:
                return records, errors.New("xmppsrv: invalid resolver setting")
        }
@@ -375,6 +630,15 @@
        default:
                records = append(records, records2...)
        }
+       switch {
+       case err != nil && err2 != nil:
+               return records, fmt.Errorf("failure in xmpp-server lookup: 
%v\n"+
+                       "failure in xmpps-server lookup: %v", err, err2)
+       case err != nil:
+               return records, err
+       case err2 != nil:
+               return records, err2
+       }
        switch len(records) {
        case 0:
                return records, errors.New("no server records found")

++++++ xmpp-dns-0.3.0.tar.gz -> xmpp-dns-0.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmpp-dns-0.3.0/.gitlab-ci.yml 
new/xmpp-dns-0.3.1/.gitlab-ci.yml
--- old/xmpp-dns-0.3.0/.gitlab-ci.yml   2022-07-24 15:57:14.000000000 +0200
+++ new/xmpp-dns-0.3.1/.gitlab-ci.yml   2022-08-21 12:45:40.000000000 +0200
@@ -38,12 +38,12 @@
     - tags
   script:
     - echo "${CI_JOB_ID}" > CI_JOB_ID.txt
-    - env GOOS=linux GOARCH=amd64 go build -buildmode=pie -ldflags 
"-extldflags '-static'" -o $CI_PROJECT_DIR/linux-amd64/xmpp-dns
-    - env GOOS=linux GOARCH=arm64 go build -buildmode=pie -ldflags 
"-extldflags '-static'" -o $CI_PROJECT_DIR/linux-arm64/xmpp-dns
-    - env GOOS=linux GOARCH=386 go build -ldflags "-extldflags '-static'" -o 
$CI_PROJECT_DIR/linux-386/xmpp-dns
-    - env GOOS=linux GOARCH=arm go build -ldflags "-extldflags '-static'" -o 
$CI_PROJECT_DIR/linux-arm/xmpp-dns
-    - env GOOS=windows GOARCH=386 go build -buildmode=pie -ldflags 
"-extldflags '-static'" -o $CI_PROJECT_DIR/win386/xmpp-dns.exe
-    - env GOOS=windows GOARCH=amd64 go build -buildmode=pie -ldflags 
"-extldflags '-static'" -o $CI_PROJECT_DIR/win64/xmpp-dns.exe
+    - env GOOS=linux GOARCH=amd64 go build -buildmode=pie -ldflags "-s -w 
-extldflags '-static'" -o $CI_PROJECT_DIR/linux-amd64/xmpp-dns
+    - env GOOS=linux GOARCH=arm64 go build -buildmode=pie -ldflags "-s -w 
-extldflags '-static'" -o $CI_PROJECT_DIR/linux-arm64/xmpp-dns
+    - env GOOS=linux GOARCH=386 go build -ldflags "-s -w  -extldflags 
'-static'" -o $CI_PROJECT_DIR/linux-386/xmpp-dns
+    - env GOOS=linux GOARCH=arm go build -ldflags "-s -w -extldflags 
'-static'" -o $CI_PROJECT_DIR/linux-arm/xmpp-dns
+    - env GOOS=windows GOARCH=386 go build -buildmode=pie -ldflags "-s -w 
-extldflags '-static'" -o $CI_PROJECT_DIR/win386/xmpp-dns.exe
+    - env GOOS=windows GOARCH=amd64 go build -buildmode=pie -ldflags "-s -w 
-extldflags '-static'" -o $CI_PROJECT_DIR/win64/xmpp-dns.exe
   artifacts:
     paths:
       - linux-amd64/xmpp-dns
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmpp-dns-0.3.0/CHANGELOG.md 
new/xmpp-dns-0.3.1/CHANGELOG.md
--- old/xmpp-dns-0.3.0/CHANGELOG.md     2022-07-24 15:57:14.000000000 +0200
+++ new/xmpp-dns-0.3.1/CHANGELOG.md     2022-08-21 12:45:40.000000000 +0200
@@ -1,5 +1,12 @@
 # Changelog
 
+## [0.3.1]
+### Changed
+- Print error details if SRV lookup fails.
+- Print error details if IP lookup fails.
+- Respect CNAME records.
+- Detect CNAME loops (max. 5 CNAMEs) (via xmppsrv >= 0.2.4)
+
 ## [0.3.0]
 ### Added
 - Possibility to specify the DNS resolver.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmpp-dns-0.3.0/README.md new/xmpp-dns-0.3.1/README.md
--- old/xmpp-dns-0.3.0/README.md        2022-07-24 15:57:14.000000000 +0200
+++ new/xmpp-dns-0.3.1/README.md        2022-08-21 12:45:40.000000000 +0200
@@ -47,7 +47,7 @@
      --help      Show help.
      --no-color  Don't colorize output.
      --resolver=value
-                 Custom resolver e.g. "1.1.1.1" for common DNSor
+                 Custom resolver e.g. "1.1.1.1" for common DNS or
                  "5.1.66.255#dot.ffmuc.net" for usage with "--dot".
  -s, --server    Show server SRV records.
  -t              Test connection and certificates.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmpp-dns-0.3.0/go.mod new/xmpp-dns-0.3.1/go.mod
--- old/xmpp-dns-0.3.0/go.mod   2022-07-24 15:57:14.000000000 +0200
+++ new/xmpp-dns-0.3.1/go.mod   2022-08-21 12:45:40.000000000 +0200
@@ -4,5 +4,5 @@
 
 require (
        github.com/pborman/getopt/v2 v2.1.0
-       salsa.debian.org/mdosch/xmppsrv v0.2.2
+       salsa.debian.org/mdosch/xmppsrv v0.2.4
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmpp-dns-0.3.0/go.sum new/xmpp-dns-0.3.1/go.sum
--- old/xmpp-dns-0.3.0/go.sum   2022-07-24 15:57:14.000000000 +0200
+++ new/xmpp-dns-0.3.1/go.sum   2022-08-21 12:45:40.000000000 +0200
@@ -1,4 +1,4 @@
 github.com/pborman/getopt/v2 v2.1.0 
h1:eNfR+r+dWLdWmV8g5OlpyrTYHkhVNxHBdN2cCrJmOEA=
 github.com/pborman/getopt/v2 v2.1.0/go.mod 
h1:4NtW75ny4eBw9fO1bhtNdYTlZKYX5/tBLtsOpwKIKd0=
-salsa.debian.org/mdosch/xmppsrv v0.2.2 
h1:A6LF2J1GL8Ayrz2bJeSKqW8UmQnQAZ0CdETDlEBjNEI=
-salsa.debian.org/mdosch/xmppsrv v0.2.2/go.mod 
h1:udWXnWFa9zkcyN9YSB/u44BCnnRDpeQ0eDy3MVLjHZQ=
+salsa.debian.org/mdosch/xmppsrv v0.2.4 
h1:ZroUkfml+kxgO+BFocVoVvYqJgk03D9oT1alXoFIyE4=
+salsa.debian.org/mdosch/xmppsrv v0.2.4/go.mod 
h1:udWXnWFa9zkcyN9YSB/u44BCnnRDpeQ0eDy3MVLjHZQ=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmpp-dns-0.3.0/main.go new/xmpp-dns-0.3.1/main.go
--- old/xmpp-dns-0.3.0/main.go  2022-07-24 15:57:14.000000000 +0200
+++ new/xmpp-dns-0.3.1/main.go  2022-08-21 12:45:40.000000000 +0200
@@ -19,7 +19,7 @@
 )
 
 const (
-       version = "0.3.0"
+       version = "0.3.1"
 )
 
 var (
@@ -108,6 +108,12 @@
                DoT:      *flagDoT,
        }
 
+       // Lookup CNAME
+       target, err := c.LookupCNAME(server[0])
+       if err != nil {
+               log.Fatal(err)
+       }
+
        // Timeout
        timeout := time.Duration(*flagTimeout * 1000000000)
 
@@ -136,26 +142,26 @@
        }
 
        if *flagClient {
-               clientRecords, err := c.LookupClient(server[0])
-               if err != nil {
-                       fmt.Println("No client SRV records found.")
+               clientRecords, err := c.LookupClient(target)
+               if err != nil && len(clientRecords) == 0 {
+                       fmt.Println(err)
                        if *flagFallback && *flagTest {
                                fmt.Println("Trying fallback ports.")
                                fmt.Println()
                                clientRecords = []xmppsrv.SRV{
                                        {
                                                Type:   "xmpp-client",
-                                               Target: server[0],
+                                               Target: target,
                                                Port:   5222,
                                        },
                                        {
                                                Type:   "xmpps-client",
-                                               Target: server[0],
+                                               Target: target,
                                                Port:   5223,
                                        },
                                        {
                                                Type:   "xmpps-client",
-                                               Target: server[0],
+                                               Target: target,
                                                Port:   443,
                                        },
                                }
@@ -169,21 +175,21 @@
                if *flagClient {
                        fmt.Println()
                }
-               serverRecords, err := c.LookupServer(server[0])
-               if err != nil {
-                       fmt.Println("No server SRV records found.")
+               serverRecords, err := c.LookupServer(target)
+               if err != nil && len(serverRecords) == 0 {
+                       fmt.Println(err)
                        if *flagFallback && *flagTest {
                                fmt.Println("Trying fallback ports.")
                                fmt.Println()
                                serverRecords = []xmppsrv.SRV{
                                        {
                                                Type:   "xmpp-server",
-                                               Target: server[0],
+                                               Target: target,
                                                Port:   5269,
                                        },
                                        {
                                                Type:   "xmpps-server",
-                                               Target: server[0],
+                                               Target: target,
                                                Port:   5270,
                                        },
                                }
@@ -216,9 +222,12 @@
 func printIP(record xmppsrv.SRV, ipv4 bool, ipv6 bool, test bool,
        tlsConfig *tls.Config, timeout time.Duration) {
        addresses, err := net.LookupIP(record.Target)
-       if err != nil || len(addresses) == 0 {
+       switch {
+       case err != nil:
+               fmt.Println("No IP addresses found for", record.Target, err)
+       case len(addresses) == 0:
                fmt.Println("No IP addresses found for", record.Target)
-       } else {
+       default:
                var c net.Conn
                addresses = removeDuplicates(addresses)
                for _, address := range addresses {

Reply via email to