Support spaced HNS alias comments
This commit is contained in:
parent
1c91ff091f
commit
c41756c2df
2 changed files with 28 additions and 6 deletions
27
mainchain.go
27
mainchain.go
|
|
@ -259,10 +259,23 @@ func decodeString(raw json.RawMessage) (string, bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func extractAliasFromComment(comment string) string {
|
func extractAliasFromComment(comment string) string {
|
||||||
for _, token := range strings.Fields(comment) {
|
fields := strings.Fields(comment)
|
||||||
switch normalizedToken := strings.ToLower(token); {
|
for index, token := range fields {
|
||||||
|
normalizedToken := strings.ToLower(strings.TrimSpace(token))
|
||||||
|
switch {
|
||||||
case strings.HasPrefix(normalizedToken, "hns="):
|
case strings.HasPrefix(normalizedToken, "hns="):
|
||||||
alias := strings.TrimSpace(strings.TrimSuffix(strings.TrimPrefix(normalizedToken, "hns="), ";"))
|
alias := strings.TrimSuffix(strings.TrimPrefix(normalizedToken, "hns="), ";")
|
||||||
|
if alias != "" {
|
||||||
|
return normalizeName(alias)
|
||||||
|
}
|
||||||
|
case normalizedToken == "hns" && index+2 < len(fields):
|
||||||
|
nextToken := strings.TrimSpace(strings.ToLower(fields[index+1]))
|
||||||
|
if nextToken != "=" && nextToken != ":" && nextToken != ":=" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
alias := strings.TrimSpace(fields[index+2])
|
||||||
|
alias = strings.TrimSuffix(alias, ";")
|
||||||
|
alias = strings.TrimSuffix(alias, ",")
|
||||||
if alias != "" {
|
if alias != "" {
|
||||||
return normalizeName(alias)
|
return normalizeName(alias)
|
||||||
}
|
}
|
||||||
|
|
@ -270,13 +283,15 @@ func extractAliasFromComment(comment string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
commentLower := strings.ToLower(comment)
|
commentLower := strings.ToLower(comment)
|
||||||
if marker := strings.Index(commentLower, "hns="); marker >= 0 {
|
if marker := strings.Index(commentLower, "hns"); marker >= 0 {
|
||||||
alias := comment[marker+4:]
|
alias := comment[marker+3:]
|
||||||
if trim := strings.IndexAny(alias, " ;,"); trim >= 0 {
|
alias = strings.TrimLeft(alias, " \t:=;")
|
||||||
|
if trim := strings.IndexAny(alias, " ;,\t\r\n"); trim >= 0 {
|
||||||
alias = alias[:trim]
|
alias = alias[:trim]
|
||||||
}
|
}
|
||||||
alias = strings.TrimSpace(alias)
|
alias = strings.TrimSpace(alias)
|
||||||
alias = strings.TrimSuffix(alias, ";")
|
alias = strings.TrimSuffix(alias, ";")
|
||||||
|
alias = strings.TrimSuffix(alias, ",")
|
||||||
return normalizeName(alias)
|
return normalizeName(alias)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -579,6 +579,13 @@ func TestExtractAliasFromCommentParsesCaseInsensitiveHNSPrefix(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestExtractAliasFromCommentParsesSpacedHNSAssignment(t *testing.T) {
|
||||||
|
got := extractAliasFromComment("gateway alias hns = gateway.charon.lthn;")
|
||||||
|
if got != "gateway.charon.lthn" {
|
||||||
|
t.Fatalf("expected gateway.charon.lthn, got %s", got)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestNewServiceBuildsMainchainAliasClientWithHSDFallbackCredentials(t *testing.T) {
|
func TestNewServiceBuildsMainchainAliasClientWithHSDFallbackCredentials(t *testing.T) {
|
||||||
service := NewService(ServiceOptions{
|
service := NewService(ServiceOptions{
|
||||||
MainchainURL: "http://127.0.0.1:14037",
|
MainchainURL: "http://127.0.0.1:14037",
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue