set proper clientversion, better version/tag extraction
--HG-- branch : nmdc-ircfrontend
This commit is contained in:
parent
9c2cad7986
commit
169debea93
31
server.go
31
server.go
@ -57,7 +57,8 @@ type Server struct {
|
|||||||
|
|
||||||
func NewServer(name string, upstream libnmdc.HubAddress, conn net.Conn) *Server {
|
func NewServer(name string, upstream libnmdc.HubAddress, conn net.Conn) *Server {
|
||||||
self := libnmdc.NewUserInfo("")
|
self := libnmdc.NewUserInfo("")
|
||||||
self.ClientTag = APP_DESCRIPTION
|
self.ClientTag = APP_NAME
|
||||||
|
self.ClientVersion = APP_VERSION
|
||||||
|
|
||||||
return &Server{
|
return &Server{
|
||||||
name: name,
|
name: name,
|
||||||
@ -280,10 +281,10 @@ func (s *Server) handleCommand(command string, args []string) {
|
|||||||
// do nothing
|
// do nothing
|
||||||
|
|
||||||
case "INFO":
|
case "INFO":
|
||||||
s.reply(rplInfo, APP_DESCRIPTION)
|
s.reply(rplInfo, APP_NAME+" v"+APP_VERSION)
|
||||||
|
|
||||||
case "VERSION":
|
case "VERSION":
|
||||||
s.reply(rplVersion, VERSION)
|
s.reply(rplVersion, APP_VERSION)
|
||||||
|
|
||||||
case "MOTD":
|
case "MOTD":
|
||||||
s.sendMOTD(s.motd)
|
s.sendMOTD(s.motd)
|
||||||
@ -430,18 +431,28 @@ func (s *Server) SetClientSoftwareVersion(ver string) {
|
|||||||
// "liteIRC for Android 1.1.8"
|
// "liteIRC for Android 1.1.8"
|
||||||
// ":Relay:1.0:Android"
|
// ":Relay:1.0:Android"
|
||||||
|
|
||||||
// A bit long and unwieldy. Heuristic: stop after the first word containing digits
|
// A bit long and unwieldy.
|
||||||
|
// Heuristic: keep the first word, and the the first word containing digits
|
||||||
|
|
||||||
parts := regexp.MustCompilePOSIX("^([^0-9]*[0-9]+[^ ]*) ").FindStringSubmatch(ver)
|
tag := APP_NAME
|
||||||
|
version := APP_VERSION
|
||||||
|
|
||||||
if len(parts) > 0 {
|
words := strings.Split(ver, " ")
|
||||||
ver = strings.TrimRight(parts[0], " ")
|
|
||||||
|
for _, word := range words[1:] {
|
||||||
|
if strings.ContainsAny(word, "0123456789") {
|
||||||
|
tag = words[0]
|
||||||
|
version = strings.Replace(word, "(", "", -1) // AndroIRC
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
s.verbosef("Replacing client tag with '%s'...", ver)
|
s.verbosef("Replacing client tag with '%s' version '%s'", tag, version)
|
||||||
|
|
||||||
s.upstreamLauncher.Self.ClientTag = ver
|
s.upstreamLauncher.Self.ClientTag = tag
|
||||||
s.upstream.Hco.Self.ClientTag = ver
|
s.upstreamLauncher.Self.ClientVersion = version
|
||||||
|
s.upstream.Hco.Self.ClientTag = tag
|
||||||
|
s.upstream.Hco.Self.ClientVersion = version
|
||||||
|
|
||||||
s.upstream.SayInfo()
|
s.upstream.SayInfo()
|
||||||
}
|
}
|
||||||
|
@ -19,8 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const (
|
const (
|
||||||
VERSION = "1.0.0"
|
APP_VERSION = "1.0.0"
|
||||||
APP_DESCRIPTION = "nmdc-ircfrontend v" + VERSION
|
APP_NAME = "nmdc-ircfrontend"
|
||||||
BLESSED_CHANNEL = "#chat" // must be lowercase
|
BLESSED_CHANNEL = "#chat" // must be lowercase
|
||||||
BLESSED_CHANNEL_MODE = "n" // means that you have to be in the channel to chat, but that's it
|
BLESSED_CHANNEL_MODE = "n" // means that you have to be in the channel to chat, but that's it
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user