Skip to content

Commit

Permalink
Make hostname parsing more lenient (fixes #28)
Browse files Browse the repository at this point in the history
  • Loading branch information
mpilquist committed Aug 13, 2023
1 parent c02ead2 commit 907fe53
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions src/main/scala/cjmx/cli/Parsers.scala
Expand Up @@ -72,12 +72,17 @@ object Parsers:
private def JMXUsername: Parser[String] = charClass(isScalaIDChar, "JMX username").*.string

private def HostName: Parser[String] =
token(chars(('-' :: 'a'.to('z').toList ::: 0.to(9).toList).mkString("")).*.string, "hostname")
token(
chars(
('-' :: '_' :: 'a'.to('z').toList ::: 'A'.to('Z').toList ::: 0.to(9).toList).mkString("")
).*.string,
"hostname"
)

private def IpAddress: Parser[String] =
token(chars(('.' :: 0.to(9).toList).mkString("")).*.string, "ip address")

private def RemoteConnectionAddress(): Parser[((String, Int), Option[String])] =
private def RemoteConnectionAddress: Parser[((String, Int), Option[String])] =
token(HostName | IpAddress, "hostname or address") ~ (token(":") ~> Port) ~ opt(
token(token(' ') ~> JMXUsername)
)
Expand All @@ -90,7 +95,7 @@ object Parsers:
}

private def RemoteConnect: Parser[actions.RemoteConnect] =
(token("remote-connect" ~> ' ') ~> (QuietFlag ~ RemoteConnectionAddress())).map:
(token("remote-connect" ~> ' ') ~> (QuietFlag ~ RemoteConnectionAddress)).map:
case quiet ~ (host ~ port ~ username) => actions.RemoteConnect(host, port, username, quiet)

def Connected(svr: MBeanServerConnection): Parser[Action] =
Expand Down

0 comments on commit 907fe53

Please sign in to comment.