aboutsummaryrefslogtreecommitdiffstats
path: root/ethwire/client_identity.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <obscuren@users.noreply.github.com>2014-10-23 22:46:18 +0800
committerJeffrey Wilcke <obscuren@users.noreply.github.com>2014-10-23 22:46:18 +0800
commit119c5b40a7ed1aea1c871c0cb56956b8ef9303d9 (patch)
treeb021423da04c9ff319a77549b473b6bad4930dd4 /ethwire/client_identity.go
parent50fd46924900869e7210217c6a07979b544991c8 (diff)
parent184055b3e2995894ccaba364484223e488730627 (diff)
downloadgo-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.go56
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
+}