aboutsummaryrefslogtreecommitdiffstats
path: root/ethwire/client_identity.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-07-04 06:12:28 +0800
committerobscuren <geffobscura@gmail.com>2014-07-04 06:12:28 +0800
commitdb60ebbbd72c5cfb852b37c8b9a37a7d81d79fb0 (patch)
treefea61eddff425f3d48c0e7bfdc6e1a1a2e0ad86e /ethwire/client_identity.go
parentcb7ebdf821adb4b022adcaea0973c8c7da2e2923 (diff)
parentf02602d02d12204a10c2aa9d1d43332b1be2fe0a (diff)
downloadgo-tangerine-db60ebbbd72c5cfb852b37c8b9a37a7d81d79fb0.tar
go-tangerine-db60ebbbd72c5cfb852b37c8b9a37a7d81d79fb0.tar.gz
go-tangerine-db60ebbbd72c5cfb852b37c8b9a37a7d81d79fb0.tar.bz2
go-tangerine-db60ebbbd72c5cfb852b37c8b9a37a7d81d79fb0.tar.lz
go-tangerine-db60ebbbd72c5cfb852b37c8b9a37a7d81d79fb0.tar.xz
go-tangerine-db60ebbbd72c5cfb852b37c8b9a37a7d81d79fb0.tar.zst
go-tangerine-db60ebbbd72c5cfb852b37c8b9a37a7d81d79fb0.zip
Merge branch 'feature/clientid' of https://github.com/ethersphere/eth-go into ethersphere-feature/clientid
Diffstat (limited to 'ethwire/client_identity.go')
-rw-r--r--ethwire/client_identity.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/ethwire/client_identity.go b/ethwire/client_identity.go
new file mode 100644
index 000000000..e803406d8
--- /dev/null
+++ b/ethwire/client_identity.go
@@ -0,0 +1,54 @@
+package ethwire
+
+import (
+ "fmt"
+ "runtime"
+)
+
+// should be used in Peer handleHandshake, incorporate Caps, ProtocolVersion, Pubkey etc.
+type ClientIdentity interface {
+ String() string
+}
+
+type SimpleClientIdentity struct {
+ clientString string
+ 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: "Go",
+ }
+ clientIdentity.init()
+ return clientIdentity
+}
+
+func (c *SimpleClientIdentity) init() {
+ c.clientString = fmt.Sprintf("%s/v%s/%s/%s/%s",
+ c.clientIdentifier,
+ c.version,
+ c.customIdentifier,
+ c.os,
+ c.implementation)
+}
+
+func (c *SimpleClientIdentity) String() string {
+ return c.clientString
+}
+
+func (c *SimpleClientIdentity) SetCustomIdentifier(customIdentifier string) {
+ c.customIdentifier = customIdentifier
+ c.init()
+}
+
+func (c *SimpleClientIdentity) GetCustomIdentifier() string {
+ return c.customIdentifier
+}