aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/client_identity.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-12-20 09:34:12 +0800
committerobscuren <geffobscura@gmail.com>2014-12-20 09:34:12 +0800
commit3983dd2428137211f84f299f9ce8690c22f50afd (patch)
tree3a2dc53b365e6f377fc82a3514150d1297fe549c /p2p/client_identity.go
parent7daa8c2f6eb25511c6a54ad420709af911fc6748 (diff)
parent0a9dc1536c5d776844d6947a0090ff7e1a7c6ab4 (diff)
downloaddexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar
dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.gz
dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.bz2
dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.lz
dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.xz
dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.zst
dexon-3983dd2428137211f84f299f9ce8690c22f50afd.zip
Merge branch 'release/v0.7.10'
Diffstat (limited to 'p2p/client_identity.go')
-rw-r--r--p2p/client_identity.go63
1 files changed, 63 insertions, 0 deletions
diff --git a/p2p/client_identity.go b/p2p/client_identity.go
new file mode 100644
index 000000000..bc865b63b
--- /dev/null
+++ b/p2p/client_identity.go
@@ -0,0 +1,63 @@
+package p2p
+
+import (
+ "fmt"
+ "runtime"
+)
+
+// ClientIdentity represents the identity of a peer.
+type ClientIdentity interface {
+ String() string // human readable identity
+ Pubkey() []byte // 512-bit public key
+}
+
+type SimpleClientIdentity struct {
+ clientIdentifier string
+ version string
+ customIdentifier string
+ os string
+ implementation string
+ pubkey string
+}
+
+func NewSimpleClientIdentity(clientIdentifier string, version string, customIdentifier string, pubkey string) *SimpleClientIdentity {
+ clientIdentity := &SimpleClientIdentity{
+ clientIdentifier: clientIdentifier,
+ version: version,
+ customIdentifier: customIdentifier,
+ os: runtime.GOOS,
+ implementation: runtime.Version(),
+ pubkey: pubkey,
+ }
+
+ 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) Pubkey() []byte {
+ return []byte(c.pubkey)
+}
+
+func (c *SimpleClientIdentity) SetCustomIdentifier(customIdentifier string) {
+ c.customIdentifier = customIdentifier
+}
+
+func (c *SimpleClientIdentity) GetCustomIdentifier() string {
+ return c.customIdentifier
+}