Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't call resolver if domain is already resolved #677

Merged
merged 2 commits into from
Jan 27, 2021

Conversation

Bolodya1997
Copy link

Motivation

There is no need to call resolver if domain is already in tcp://${addr}:${port} format.


u, err := url.Parse(fmt.Sprintf("tcp://%v:%v", ips[0].IP, records[0].Port))
var resolvedPattern = regexp.MustCompile("tcp://(?P<addr>[0-9.:]+):(?P<port>[0-9]+)?")
Copy link
Member

@denis-tingaikin denis-tingaikin Jan 27, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we just try to parse resolved domain as a URL to check is it resolved?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope, any domain is most possible a valid URL. We need a domain in tcp://ip:port format.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets then check that part in URL after the scheme is a valid IP and PORT.

You could split Path into two strings entry to parse parts with default parsers for IP and int

@Bolodya1997 Bolodya1997 marked this pull request as draft January 27, 2021 05:52
serviceDomain := fmt.Sprintf("%v.%v", service, domain)
_, records, err := r.LookupSRV(ctx, service, "tcp", serviceDomain)
var resolved string
if isResolved(domain) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please move this check to top-level before call resolve domain.


u, err := url.Parse(fmt.Sprintf("tcp://%v:%v", ips[0].IP, records[0].Port))
var resolvedPattern = regexp.MustCompile("tcp://(?P<addr>[0-9.:]+):(?P<port>[0-9]+)?")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets then check that part in URL after the scheme is a valid IP and PORT.

You could split Path into two strings entry to parse parts with default parsers for IP and int

@Bolodya1997 Bolodya1997 marked this pull request as ready for review January 27, 2021 07:17
@denis-tingaikin denis-tingaikin merged commit cefb0ac into networkservicemesh:master Jan 27, 2021
nsmbot pushed a commit to networkservicemesh/cmd-nsmgr that referenced this pull request Jan 27, 2021
…k@master networkservicemesh/sdk#677

networkservicemesh/sdk PR link: networkservicemesh/sdk#677

networkservicemesh/sdk commit message:
commit cefb0ac33f42abd4b175cdc25184e1d78abe2d87
Author: Vladimir Popov <[email protected]>
Date:   Wed Jan 27 14:18:11 2021 +0700

    Don't call resolver if domain is already resolved (#677)

    * Don't call resolver if domain is already resolved

    Signed-off-by: Vladimir Popov <[email protected]>

    * Rework isResolved() to parseIPPort()

    Signed-off-by: Vladimir Popov <[email protected]>

Signed-off-by: NSMBot <[email protected]>
nsmbot pushed a commit to networkservicemesh/cmd-registry-proxy-dns that referenced this pull request Jan 27, 2021
…k@master networkservicemesh/sdk#677

networkservicemesh/sdk PR link: networkservicemesh/sdk#677

networkservicemesh/sdk commit message:
commit cefb0ac33f42abd4b175cdc25184e1d78abe2d87
Author: Vladimir Popov <[email protected]>
Date:   Wed Jan 27 14:18:11 2021 +0700

    Don't call resolver if domain is already resolved (#677)

    * Don't call resolver if domain is already resolved

    Signed-off-by: Vladimir Popov <[email protected]>

    * Rework isResolved() to parseIPPort()

    Signed-off-by: Vladimir Popov <[email protected]>

Signed-off-by: NSMBot <[email protected]>
nsmbot pushed a commit to networkservicemesh/cmd-nse-vfio that referenced this pull request Jan 27, 2021
…k@master networkservicemesh/sdk#677

networkservicemesh/sdk PR link: networkservicemesh/sdk#677

networkservicemesh/sdk commit message:
commit cefb0ac33f42abd4b175cdc25184e1d78abe2d87
Author: Vladimir Popov <[email protected]>
Date:   Wed Jan 27 14:18:11 2021 +0700

    Don't call resolver if domain is already resolved (#677)

    * Don't call resolver if domain is already resolved

    Signed-off-by: Vladimir Popov <[email protected]>

    * Rework isResolved() to parseIPPort()

    Signed-off-by: Vladimir Popov <[email protected]>

Signed-off-by: NSMBot <[email protected]>
nsmbot pushed a commit to networkservicemesh/cmd-nse-icmp-responder that referenced this pull request Jan 27, 2021
…k@master networkservicemesh/sdk#677

networkservicemesh/sdk PR link: networkservicemesh/sdk#677

networkservicemesh/sdk commit message:
commit cefb0ac33f42abd4b175cdc25184e1d78abe2d87
Author: Vladimir Popov <[email protected]>
Date:   Wed Jan 27 14:18:11 2021 +0700

    Don't call resolver if domain is already resolved (#677)

    * Don't call resolver if domain is already resolved

    Signed-off-by: Vladimir Popov <[email protected]>

    * Rework isResolved() to parseIPPort()

    Signed-off-by: Vladimir Popov <[email protected]>

Signed-off-by: NSMBot <[email protected]>
nsmbot pushed a commit to networkservicemesh/sdk-vpp that referenced this pull request Jan 27, 2021
…k@master networkservicemesh/sdk#677

networkservicemesh/sdk PR link: networkservicemesh/sdk#677

networkservicemesh/sdk commit message:
commit cefb0ac33f42abd4b175cdc25184e1d78abe2d87
Author: Vladimir Popov <[email protected]>
Date:   Wed Jan 27 14:18:11 2021 +0700

    Don't call resolver if domain is already resolved (#677)

    * Don't call resolver if domain is already resolved

    Signed-off-by: Vladimir Popov <[email protected]>

    * Rework isResolved() to parseIPPort()

    Signed-off-by: Vladimir Popov <[email protected]>

Signed-off-by: NSMBot <[email protected]>
nsmbot pushed a commit to networkservicemesh/sdk-kernel that referenced this pull request Jan 27, 2021
…k@master networkservicemesh/sdk#677

networkservicemesh/sdk PR link: networkservicemesh/sdk#677

networkservicemesh/sdk commit message:
commit cefb0ac33f42abd4b175cdc25184e1d78abe2d87
Author: Vladimir Popov <[email protected]>
Date:   Wed Jan 27 14:18:11 2021 +0700

    Don't call resolver if domain is already resolved (#677)

    * Don't call resolver if domain is already resolved

    Signed-off-by: Vladimir Popov <[email protected]>

    * Rework isResolved() to parseIPPort()

    Signed-off-by: Vladimir Popov <[email protected]>

Signed-off-by: NSMBot <[email protected]>
nsmbot pushed a commit to networkservicemesh/cmd-registry-memory that referenced this pull request Jan 27, 2021
…k@master networkservicemesh/sdk#677

networkservicemesh/sdk PR link: networkservicemesh/sdk#677

networkservicemesh/sdk commit message:
commit cefb0ac33f42abd4b175cdc25184e1d78abe2d87
Author: Vladimir Popov <[email protected]>
Date:   Wed Jan 27 14:18:11 2021 +0700

    Don't call resolver if domain is already resolved (#677)

    * Don't call resolver if domain is already resolved

    Signed-off-by: Vladimir Popov <[email protected]>

    * Rework isResolved() to parseIPPort()

    Signed-off-by: Vladimir Popov <[email protected]>

Signed-off-by: NSMBot <[email protected]>
nsmbot pushed a commit to networkservicemesh/cmd-nsmgr-proxy that referenced this pull request Jan 27, 2021
…k@master networkservicemesh/sdk#677

networkservicemesh/sdk PR link: networkservicemesh/sdk#677

networkservicemesh/sdk commit message:
commit cefb0ac33f42abd4b175cdc25184e1d78abe2d87
Author: Vladimir Popov <[email protected]>
Date:   Wed Jan 27 14:18:11 2021 +0700

    Don't call resolver if domain is already resolved (#677)

    * Don't call resolver if domain is already resolved

    Signed-off-by: Vladimir Popov <[email protected]>

    * Rework isResolved() to parseIPPort()

    Signed-off-by: Vladimir Popov <[email protected]>

Signed-off-by: NSMBot <[email protected]>
nsmbot pushed a commit to networkservicemesh/sdk-k8s that referenced this pull request Jan 27, 2021
…k@master networkservicemesh/sdk#677

networkservicemesh/sdk PR link: networkservicemesh/sdk#677

networkservicemesh/sdk commit message:
commit cefb0ac33f42abd4b175cdc25184e1d78abe2d87
Author: Vladimir Popov <[email protected]>
Date:   Wed Jan 27 14:18:11 2021 +0700

    Don't call resolver if domain is already resolved (#677)

    * Don't call resolver if domain is already resolved

    Signed-off-by: Vladimir Popov <[email protected]>

    * Rework isResolved() to parseIPPort()

    Signed-off-by: Vladimir Popov <[email protected]>

Signed-off-by: NSMBot <[email protected]>
@Bolodya1997 Bolodya1997 deleted the fix-resolve branch February 12, 2021 05:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants