diff options
author | Jeffrey Wilcke <obscuren@users.noreply.github.com> | 2014-10-23 22:46:18 +0800 |
---|---|---|
committer | Jeffrey Wilcke <obscuren@users.noreply.github.com> | 2014-10-23 22:46:18 +0800 |
commit | 119c5b40a7ed1aea1c871c0cb56956b8ef9303d9 (patch) | |
tree | b021423da04c9ff319a77549b473b6bad4930dd4 /ethwire/client_identity.go | |
parent | 50fd46924900869e7210217c6a07979b544991c8 (diff) | |
parent | 184055b3e2995894ccaba364484223e488730627 (diff) | |
download | go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar.gz go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar.bz2 go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar.lz go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar.xz go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar.zst go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.zip |
Merge pull request #150 from fjl/develop
Merge eth-go repo into go-ethereum
Diffstat (limited to 'ethwire/client_identity.go')
-rw-r--r-- | ethwire/client_identity.go | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/ethwire/client_identity.go b/ethwire/client_identity.go new file mode 100644 index 000000000..ceaa9fe83 --- /dev/null +++ b/ethwire/client_identity.go @@ -0,0 +1,56 @@ +package ethwire + +import ( + "fmt" + "runtime" +) + +// should be used in Peer handleHandshake, incorporate Caps, ProtocolVersion, Pubkey etc. +type ClientIdentity interface { + String() string +} + +type SimpleClientIdentity struct { + clientIdentifier string + version string + customIdentifier string + os string + implementation string +} + +func NewSimpleClientIdentity(clientIdentifier string, version string, customIdentifier string) *SimpleClientIdentity { + clientIdentity := &SimpleClientIdentity{ + clientIdentifier: clientIdentifier, + version: version, + customIdentifier: customIdentifier, + os: runtime.GOOS, + implementation: runtime.Version(), + } + + return clientIdentity +} + +func (c *SimpleClientIdentity) init() { +} + +func (c *SimpleClientIdentity) String() string { + var id string + if len(c.customIdentifier) > 0 { + id = "/" + c.customIdentifier + } + + return fmt.Sprintf("%s/v%s%s/%s/%s", + c.clientIdentifier, + c.version, + id, + c.os, + c.implementation) +} + +func (c *SimpleClientIdentity) SetCustomIdentifier(customIdentifier string) { + c.customIdentifier = customIdentifier +} + +func (c *SimpleClientIdentity) GetCustomIdentifier() string { + return c.customIdentifier +} |