Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
client
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
elixxir
client
Commits
6039dc23
Commit
6039dc23
authored
Nov 17, 2020
by
Benjamin Wenger
Browse files
Options
Downloads
Patches
Plain Diff
implemented lookup
parent
93882e4d
No related branches found
No related tags found
No related merge requests found
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
Makefile
+12
-12
12 additions, 12 deletions
Makefile
go.mod
+4
-4
4 additions, 4 deletions
go.mod
go.sum
+10
-0
10 additions, 0 deletions
go.sum
ud/lookup.go
+105
-9
105 additions, 9 deletions
ud/lookup.go
ud/manager.go
+20
-1
20 additions, 1 deletion
ud/manager.go
ud/register.go
+24
-0
24 additions, 0 deletions
ud/register.go
with
175 additions
and
26 deletions
Makefile
+
12
−
12
View file @
6039dc23
...
@@ -20,20 +20,20 @@ build:
...
@@ -20,20 +20,20 @@ build:
go mod tidy
go mod tidy
update_release
:
update_release
:
GOFLAGS
=
""
go get
-u
gitlab.com/elixxir/primitives@
peppa/newClient
GOFLAGS
=
""
go get gitlab.com/elixxir/primitives@
release
GOFLAGS
=
""
go get
-u
gitlab.com/elixxir/crypto@
peppa/newClient
GOFLAGS
=
""
go get gitlab.com/elixxir/crypto@
release
GOFLAGS
=
""
go get
-u
gitlab.com/xx_network/crypto@release
GOFLAGS
=
""
go get gitlab.com/xx_network/crypto@release
GOFLAGS
=
""
go get
-u
gitlab.com/elixxir/comms@
hotfix/TestingFunction
GOFLAGS
=
""
go get gitlab.com/elixxir/comms@
release
GOFLAGS
=
""
go get
-u
gitlab.com/xx_network/comms@release
GOFLAGS
=
""
go get gitlab.com/xx_network/comms@release
GOFLAGS
=
""
go get
-u
gitlab.com/xx_network/primitives@release
GOFLAGS
=
""
go get gitlab.com/xx_network/primitives@release
update_master
:
update_master
:
GOFLAGS
=
""
go get
-u
gitlab.com/elixxir/primitives@master
GOFLAGS
=
""
go get gitlab.com/elixxir/primitives@master
GOFLAGS
=
""
go get
-u
gitlab.com/elixxir/crypto@master
GOFLAGS
=
""
go get gitlab.com/elixxir/crypto@master
GOFLAGS
=
""
go get
-u
gitlab.com/xx_network/crypto@master
GOFLAGS
=
""
go get gitlab.com/xx_network/crypto@master
GOFLAGS
=
""
go get
-u
gitlab.com/elixxir/comms@master
GOFLAGS
=
""
go get gitlab.com/elixxir/comms@master
GOFLAGS
=
""
go get
-u
gitlab.com/xx_network/comms@master
GOFLAGS
=
""
go get gitlab.com/xx_network/comms@master
GOFLAGS
=
""
go get
-u
gitlab.com/xx_network/primitives@master
GOFLAGS
=
""
go get gitlab.com/xx_network/primitives@master
master
:
clean update_master build version
master
:
clean update_master build version
...
...
This diff is collapsed.
Click to expand it.
go.mod
+
4
−
4
View file @
6039dc23
...
@@ -17,11 +17,11 @@ require (
...
@@ -17,11 +17,11 @@ require (
github.com/spf13/jwalterweatherman
v1.1.0
github.com/spf13/jwalterweatherman
v1.1.0
github.com/spf13/pflag
v1.0.5 // indirect
github.com/spf13/pflag
v1.0.5 // indirect
github.com/spf13/viper
v1.7.1
github.com/spf13/viper
v1.7.1
gitlab.com/elixxir/comms
v0.0.4-0.202011
03220934-c476c9282f30
gitlab.com/elixxir/comms
v0.0.4-0.202011
11205457-b073b28c367a
gitlab.com/elixxir/crypto
v0.0.5-0.202011
09203841-ba162a25be6e
gitlab.com/elixxir/crypto
v0.0.5-0.202011
10193609-6b5e881867b4
gitlab.com/elixxir/ekv
v0.1.3
gitlab.com/elixxir/ekv
v0.1.3
gitlab.com/elixxir/primitives
v0.0.
2
gitlab.com/elixxir/primitives
v0.0.
3-0.20201116174806-97f190989704
gitlab.com/xx_network/comms
v0.0.
3
gitlab.com/xx_network/comms
v0.0.
4-0.20201110022115-4a6171cad07d
gitlab.com/xx_network/crypto
v0.0.4
gitlab.com/xx_network/crypto
v0.0.4
gitlab.com/xx_network/primitives
v0.0.2
gitlab.com/xx_network/primitives
v0.0.2
golang.org/x/crypto
v0.0.0-20201016220609-9e8e0b390897
golang.org/x/crypto
v0.0.0-20201016220609-9e8e0b390897
...
...
This diff is collapsed.
Click to expand it.
go.sum
+
10
−
0
View file @
6039dc23
...
@@ -252,6 +252,10 @@ github.com/zeebo/pcg v1.0.0 h1:dt+dx+HvX8g7Un32rY9XWoYnd0NmKmrIzpHF7qiTDj0=
...
@@ -252,6 +252,10 @@ github.com/zeebo/pcg v1.0.0 h1:dt+dx+HvX8g7Un32rY9XWoYnd0NmKmrIzpHF7qiTDj0=
github.com/zeebo/pcg
v1.0.0/go.mod h1:
09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4=
github.com/zeebo/pcg
v1.0.0/go.mod h1:
09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4=
gitlab.com/elixxir/comms
v0.0.4-0.20201103220934-c476c9282f30 h1:
9q+xVbu5m7XDvT1CVz8s1S/SOVpasWJOx7V/3rAY/pE=
gitlab.com/elixxir/comms
v0.0.4-0.20201103220934-c476c9282f30 h1:
9q+xVbu5m7XDvT1CVz8s1S/SOVpasWJOx7V/3rAY/pE=
gitlab.com/elixxir/comms
v0.0.4-0.20201103220934-c476c9282f30/go.mod h1:
5p7oz4yFrK037rPap6ooaWrloJrzuVZ4jnzOdvgyqnU=
gitlab.com/elixxir/comms
v0.0.4-0.20201103220934-c476c9282f30/go.mod h1:
5p7oz4yFrK037rPap6ooaWrloJrzuVZ4jnzOdvgyqnU=
gitlab.com/elixxir/comms
v0.0.4-0.20201111205457-b073b28c367a h1:
GnZLdgn5ZSDtPFsiCUPgqQk2D+e7LmzVOZ9Rq/B8hCY=
gitlab.com/elixxir/comms
v0.0.4-0.20201111205457-b073b28c367a/go.mod h1:
5p7oz4yFrK037rPap6ooaWrloJrzuVZ4jnzOdvgyqnU=
gitlab.com/elixxir/comms
v0.0.4-0.20201112000135-4147e270e129 h1:
d4s9JGimUVmqdKlK4NhICayzWBUSM2XmKta821ZJTF0=
gitlab.com/elixxir/comms
v0.0.4-0.20201112000135-4147e270e129/go.mod h1:
5p7oz4yFrK037rPap6ooaWrloJrzuVZ4jnzOdvgyqnU=
gitlab.com/elixxir/crypto
v0.0.0-20200804182833-984246dea2c4 h1:
28ftZDeYEko7xptCZzeFWS1Iam95dj46TWFVVlKmw6A=
gitlab.com/elixxir/crypto
v0.0.0-20200804182833-984246dea2c4 h1:
28ftZDeYEko7xptCZzeFWS1Iam95dj46TWFVVlKmw6A=
gitlab.com/elixxir/crypto
v0.0.0-20200804182833-984246dea2c4/go.mod h1:
ucm9SFKJo+K0N2GwRRpaNr+tKXMIOVWzmyUD0SbOu2c=
gitlab.com/elixxir/crypto
v0.0.0-20200804182833-984246dea2c4/go.mod h1:
ucm9SFKJo+K0N2GwRRpaNr+tKXMIOVWzmyUD0SbOu2c=
gitlab.com/elixxir/crypto
v0.0.3 h1:
znCt/x2bL4y8czTPaaFkwzdgSgW3BJc/1+dxyf1jqVw=
gitlab.com/elixxir/crypto
v0.0.3 h1:
znCt/x2bL4y8czTPaaFkwzdgSgW3BJc/1+dxyf1jqVw=
...
@@ -260,6 +264,8 @@ gitlab.com/elixxir/crypto v0.0.4 h1:8eWjvUepCU2PiqZM2NFYo6rFg1w8KWO1hMDwMNFEqoI=
...
@@ -260,6 +264,8 @@ gitlab.com/elixxir/crypto v0.0.4 h1:8eWjvUepCU2PiqZM2NFYo6rFg1w8KWO1hMDwMNFEqoI=
gitlab.com/elixxir/crypto
v0.0.4/go.mod h1:
ZNgBOblhYToR4m8tj4cMvJ9UsJAUKq+p0gCp07WQmhA=
gitlab.com/elixxir/crypto
v0.0.4/go.mod h1:
ZNgBOblhYToR4m8tj4cMvJ9UsJAUKq+p0gCp07WQmhA=
gitlab.com/elixxir/crypto
v0.0.5-0.20201109203841-ba162a25be6e h1:
rkT8Pzjgo9oF3uS8ExHGNUQoJX/22qK3lU+vU8QsOCY=
gitlab.com/elixxir/crypto
v0.0.5-0.20201109203841-ba162a25be6e h1:
rkT8Pzjgo9oF3uS8ExHGNUQoJX/22qK3lU+vU8QsOCY=
gitlab.com/elixxir/crypto
v0.0.5-0.20201109203841-ba162a25be6e/go.mod h1:
ZNgBOblhYToR4m8tj4cMvJ9UsJAUKq+p0gCp07WQmhA=
gitlab.com/elixxir/crypto
v0.0.5-0.20201109203841-ba162a25be6e/go.mod h1:
ZNgBOblhYToR4m8tj4cMvJ9UsJAUKq+p0gCp07WQmhA=
gitlab.com/elixxir/crypto
v0.0.5-0.20201110193609-6b5e881867b4 h1:
1a1zZDuqZ56qU1EPgpc+Sqny1YFl0kAKJgQbsVc0WJQ=
gitlab.com/elixxir/crypto
v0.0.5-0.20201110193609-6b5e881867b4/go.mod h1:
ZNgBOblhYToR4m8tj4cMvJ9UsJAUKq+p0gCp07WQmhA=
gitlab.com/elixxir/ekv
v0.1.3 h1:
OE+LBMIhjGUMwc6hHJzYvEPNJQV7t1vMnJyIgxUMUo8=
gitlab.com/elixxir/ekv
v0.1.3 h1:
OE+LBMIhjGUMwc6hHJzYvEPNJQV7t1vMnJyIgxUMUo8=
gitlab.com/elixxir/ekv
v0.1.3/go.mod h1:
e6WPUt97taFZe5PFLPb1Dupk7tqmDCTQu1kkstqJvw4=
gitlab.com/elixxir/ekv
v0.1.3/go.mod h1:
e6WPUt97taFZe5PFLPb1Dupk7tqmDCTQu1kkstqJvw4=
gitlab.com/elixxir/primitives
v0.0.0-20200731184040-494269b53b4d/go.mod h1:
OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg=
gitlab.com/elixxir/primitives
v0.0.0-20200731184040-494269b53b4d/go.mod h1:
OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg=
...
@@ -269,9 +275,13 @@ gitlab.com/elixxir/primitives v0.0.1 h1:q61anawANlNAExfkeQEE1NCsNih6vNV1FFLoUQX6
...
@@ -269,9 +275,13 @@ gitlab.com/elixxir/primitives v0.0.1 h1:q61anawANlNAExfkeQEE1NCsNih6vNV1FFLoUQX6
gitlab.com/elixxir/primitives
v0.0.1/go.mod h1:
kNp47yPqja2lHSiS4DddTvFpB/4D9dB2YKnw5c+LJCE=
gitlab.com/elixxir/primitives
v0.0.1/go.mod h1:
kNp47yPqja2lHSiS4DddTvFpB/4D9dB2YKnw5c+LJCE=
gitlab.com/elixxir/primitives
v0.0.2 h1:
PvyOOp/A6tCtmU7YnGhCCPRdmEogEzCi0Li/WfiVjGo=
gitlab.com/elixxir/primitives
v0.0.2 h1:
PvyOOp/A6tCtmU7YnGhCCPRdmEogEzCi0Li/WfiVjGo=
gitlab.com/elixxir/primitives
v0.0.2/go.mod h1:
3fxFHSlQhkV4vs+S0dZEz3Om3m+40WX8L806yvSnNFc=
gitlab.com/elixxir/primitives
v0.0.2/go.mod h1:
3fxFHSlQhkV4vs+S0dZEz3Om3m+40WX8L806yvSnNFc=
gitlab.com/elixxir/primitives
v0.0.3-0.20201116174806-97f190989704 h1:
JkFREumz8skDqkCjjzZnlf5tg+PBiMB9kfVn9z0VEfE=
gitlab.com/elixxir/primitives
v0.0.3-0.20201116174806-97f190989704/go.mod h1:
3fxFHSlQhkV4vs+S0dZEz3Om3m+40WX8L806yvSnNFc=
gitlab.com/xx_network/comms
v0.0.0-20200805174823-841427dd5023/go.mod h1:
owEcxTRl7gsoM8c3RQ5KAm5GstxrJp5tn+6JfQ4z5Hw=
gitlab.com/xx_network/comms
v0.0.0-20200805174823-841427dd5023/go.mod h1:
owEcxTRl7gsoM8c3RQ5KAm5GstxrJp5tn+6JfQ4z5Hw=
gitlab.com/xx_network/comms
v0.0.3 h1:
ch1eJI4WXUE/Kz0Kp9uDWX16B+hfVFmdHY+EOai4Wzc=
gitlab.com/xx_network/comms
v0.0.3 h1:
ch1eJI4WXUE/Kz0Kp9uDWX16B+hfVFmdHY+EOai4Wzc=
gitlab.com/xx_network/comms
v0.0.3/go.mod h1:
YViGbRj7FjJYoaO4NpALGEd9dK/l8uUT000FEBbUTL8=
gitlab.com/xx_network/comms
v0.0.3/go.mod h1:
YViGbRj7FjJYoaO4NpALGEd9dK/l8uUT000FEBbUTL8=
gitlab.com/xx_network/comms
v0.0.4-0.20201110022115-4a6171cad07d h1:
wPsoqWNusbFJxvPB1Rvzu+TLZxth3G+ay8qkNrpAuzM=
gitlab.com/xx_network/comms
v0.0.4-0.20201110022115-4a6171cad07d/go.mod h1:
YViGbRj7FjJYoaO4NpALGEd9dK/l8uUT000FEBbUTL8=
gitlab.com/xx_network/crypto
v0.0.3/go.mod h1:
DF2HYvvCw9wkBybXcXAgQMzX+MiGbFPjwt3t17VRqRE=
gitlab.com/xx_network/crypto
v0.0.3/go.mod h1:
DF2HYvvCw9wkBybXcXAgQMzX+MiGbFPjwt3t17VRqRE=
gitlab.com/xx_network/crypto
v0.0.4 h1:
lpKOL5mTJ2awWMfgBy30oD/UvJVrWZzUimSHlOdZZxo=
gitlab.com/xx_network/crypto
v0.0.4 h1:
lpKOL5mTJ2awWMfgBy30oD/UvJVrWZzUimSHlOdZZxo=
gitlab.com/xx_network/crypto
v0.0.4/go.mod h1:
+lcQEy+Th4eswFgQDwT0EXKp4AXrlubxalwQFH5O0Mk=
gitlab.com/xx_network/crypto
v0.0.4/go.mod h1:
+lcQEy+Th4eswFgQDwT0EXKp4AXrlubxalwQFH5O0Mk=
...
...
This diff is collapsed.
Click to expand it.
ud/lookup.go
+
105
−
9
View file @
6039dc23
...
@@ -7,23 +7,71 @@ import (
...
@@ -7,23 +7,71 @@ import (
"gitlab.com/elixxir/client/interfaces/message"
"gitlab.com/elixxir/client/interfaces/message"
"gitlab.com/elixxir/client/interfaces/params"
"gitlab.com/elixxir/client/interfaces/params"
"gitlab.com/elixxir/client/interfaces/utility"
"gitlab.com/elixxir/client/interfaces/utility"
"gitlab.com/elixxir/comms/network/dataStructures"
"gitlab.com/elixxir/primitives/states"
"gitlab.com/xx_network/primitives/id"
"gitlab.com/xx_network/primitives/id"
"google.golang.org/protobuf/runtime/protoimpl"
"google.golang.org/protobuf/runtime/protoimpl"
"time"
"time"
jww
"github.com/spf13/jwalterweatherman"
)
)
type
lookupCallback
func
([]
contact
.
Contact
,
error
)
type
lookupCallback
func
(
contact
.
Contact
,
error
)
func
(
m
*
Manager
)
lookupProcess
(
c
chan
message
.
Receive
,
quitCh
<-
chan
struct
{}){
for
true
{
select
{
case
<-
quitCh
:
return
case
response
:=
<-
c
:
// edge check the encryption
if
response
.
Encryption
!=
message
.
E2E
{
jww
.
WARN
.
Printf
(
"Dropped a lookup response from user "
+
"discovery due to incorrect encryption"
)
}
// unmarshal the message
lookupResponse
:=
&
LookupResponse
{}
if
err
:=
proto
.
Unmarshal
(
response
.
Payload
,
lookupResponse
);
err
!=
nil
{
jww
.
WARN
.
Printf
(
"Dropped a lookup response from user "
+
"discovery due to failed unmarshal: %s"
,
err
)
}
// get the appropriate channel from the lookup
m
.
inProgressMux
.
RLock
()
ch
,
ok
:=
m
.
inProgressLookup
[
lookupResponse
.
CommID
]
m
.
inProgressMux
.
RUnlock
()
if
!
ok
{
jww
.
WARN
.
Printf
(
"Dropped a lookup response from user "
+
"discovery due to unknown comm ID: %d"
,
lookupResponse
.
CommID
)
}
// send the response on the correct channel
// drop if the send cannot be completed
select
{
case
ch
<-
lookupResponse
:
default
:
jww
.
WARN
.
Printf
(
"Dropped a lookup response from user "
+
"discovery due failure to transmit to handling thread: "
+
"commID: %d"
,
lookupResponse
.
CommID
)
}
}
}
}
// returns the public key of the passed id as known by the user discovery system
// returns the public key of the passed id as known by the user discovery system
// or returns by the timeout
// or returns by the timeout
func
(
m
*
Manager
)
Lookup
(
id
*
id
.
ID
,
callback
lookupCallback
,
timeout
time
.
Duration
)
error
{
func
(
m
*
Manager
)
Lookup
(
id
*
id
.
ID
,
callback
lookupCallback
,
timeout
time
.
Duration
)
error
{
//get the id of this comm so it can be connected to its responce
commID
,
err
:=
m
.
getCommID
()
commID
,
err
:=
m
.
getCommID
()
if
err
!=
nil
{
if
err
!=
nil
{
return
errors
.
WithMessage
(
err
,
"Random generation failed"
)
return
errors
.
WithMessage
(
err
,
"Random generation failed"
)
}
}
//build the request
request
:=
&
LookupSend
{
request
:=
&
LookupSend
{
UserID
:
id
.
Marshal
(),
UserID
:
id
.
Marshal
(),
CommID
:
commID
,
CommID
:
commID
,
...
@@ -40,20 +88,68 @@ func (m *Manager)Lookup(id *id.ID, callback lookupCallback, timeout time.Duratio
...
@@ -40,20 +88,68 @@ func (m *Manager)Lookup(id *id.ID, callback lookupCallback, timeout time.Duratio
MessageType
:
message
.
UdLookup
,
MessageType
:
message
.
UdLookup
,
}
}
rounds
,
mid
,
err
:=
m
.
net
.
SendE2E
(
msg
,
params
.
GetDefaultE2E
())
//register the request in the responce map so it can be procesed on return
responseChan
:=
make
(
chan
*
LookupResponse
,
1
)
m
.
inProgressMux
.
Lock
()
m
.
inProgressLookup
[
commID
]
=
responseChan
m
.
inProgressMux
.
Unlock
()
//send the request
rounds
,
_
,
err
:=
m
.
net
.
SendE2E
(
msg
,
params
.
GetDefaultE2E
())
if
err
!=
nil
{
if
err
!=
nil
{
return
errors
.
WithMessage
(
err
,
"Failed to send the lookup "
+
return
errors
.
WithMessage
(
err
,
"Failed to send the lookup "
+
"request"
)
"request"
)
}
}
//register the round event to capture if the round fails
roundFailChan
:=
make
(
chan
dataStructures
.
EventReturn
,
len
(
rounds
))
for
_
,
round
:=
range
rounds
{
//subtract a millisecond to ensure this timeout will trigger before
// the one below
m
.
net
.
GetInstance
()
.
GetRoundEvents
()
.
AddRoundEventChan
(
round
,
roundFailChan
,
timeout
-
1
*
time
.
Millisecond
,
states
.
FAILED
)
}
//start the go routine which will trigger the callback
go
func
(){
go
func
(){
results
:=
timer
:=
time
.
NewTimer
(
timeout
)
utility
.
TrackResults
()
var
err
error
var
c
contact
.
Contact
select
{
//return an error if the round fails
case
<-
roundFailChan
:
err
=
errors
.
New
(
"One or more rounds failed to "
+
"resolve, lookup not delivered"
)
//return an error if the timeout is reached
case
<-
timer
.
C
:
err
=
errors
.
New
(
"Response from User Discovery"
+
" did not come before timeout"
)
//return the contact if one is returned
case
response
:=
<-
responseChan
:
if
response
.
Error
!=
""
{
err
=
errors
.
Errorf
(
"User Discovery returned an "
+
"error on Lookup: %s"
,
response
.
Error
)
}
else
{
pubkey
:=
m
.
grp
.
NewIntFromBytes
(
response
.
PubKey
)
c
=
contact
.
Contact
{
ID
:
id
,
DhPubKey
:
pubkey
,
OwnershipProof
:
nil
,
Facts
:
nil
,
}
}
}
}
//delete the response channel from the map
m
.
inProgressMux
.
Lock
()
delete
(
m
.
inProgressLookup
,
commID
)
m
.
inProgressMux
.
Unlock
()
//call the callback last in case it is blocking
callback
(
c
,
err
)
}()
return
nil
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
ud/manager.go
+
20
−
1
View file @
6039dc23
...
@@ -3,7 +3,10 @@ package ud
...
@@ -3,7 +3,10 @@ package ud
import
(
import
(
"encoding/binary"
"encoding/binary"
"gitlab.com/elixxir/client/interfaces"
"gitlab.com/elixxir/client/interfaces"
"gitlab.com/elixxir/client/interfaces/message"
"gitlab.com/elixxir/client/stoppable"
"gitlab.com/elixxir/comms/client"
"gitlab.com/elixxir/comms/client"
"gitlab.com/elixxir/crypto/cyclic"
"gitlab.com/elixxir/crypto/fastRNG"
"gitlab.com/elixxir/crypto/fastRNG"
"gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/crypto/signature/rsa"
"gitlab.com/xx_network/crypto/signature/rsa"
...
@@ -16,17 +19,20 @@ type Manager struct {
...
@@ -16,17 +19,20 @@ type Manager struct {
host
*
connect
.
Host
host
*
connect
.
Host
privKey
*
rsa
.
PrivateKey
privKey
*
rsa
.
PrivateKey
rng
*
fastRNG
.
StreamGenerator
rng
*
fastRNG
.
StreamGenerator
grp
*
cyclic
.
Group
sw
interfaces
.
Switchboard
udID
*
id
.
ID
udID
*
id
.
ID
inProgressLookup
map
[
int64
]
chan
*
LookupResponse
inProgressLookup
map
[
u
int64
]
chan
*
LookupResponse
inProgressMux
sync
.
RWMutex
inProgressMux
sync
.
RWMutex
net
interfaces
.
NetworkManager
net
interfaces
.
NetworkManager
}
}
func
(
m
*
Manager
)
getCommID
()(
uint64
,
error
){
func
(
m
*
Manager
)
getCommID
()(
uint64
,
error
){
//fixme: this should use incremenetation
stream
:=
m
.
rng
.
GetStream
()
stream
:=
m
.
rng
.
GetStream
()
idBytes
:=
make
([]
byte
,
8
)
idBytes
:=
make
([]
byte
,
8
)
...
@@ -36,3 +42,16 @@ func (m *Manager)getCommID()(uint64, error){
...
@@ -36,3 +42,16 @@ func (m *Manager)getCommID()(uint64, error){
return
binary
.
BigEndian
.
Uint64
(
idBytes
),
nil
return
binary
.
BigEndian
.
Uint64
(
idBytes
),
nil
}
}
func
(
m
*
Manager
)
StartProcessies
()
stoppable
.
Stoppable
{
lookupStop
:=
stoppable
.
NewSingle
(
"UDLookup"
)
lookupChan
:=
make
(
chan
message
.
Receive
,
100
)
m
.
sw
.
RegisterChannel
(
"UDLookupResponse"
,
m
.
udID
,
message
.
UdLookupResponse
,
lookupChan
)
go
m
.
lookupProcess
(
lookupChan
,
lookupStop
.
Quit
())
udMulti
:=
stoppable
.
NewMulti
(
"UD"
)
udMulti
.
Add
(
lookupStop
)
return
lookupStop
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
ud/register.go
0 → 100644
+
24
−
0
View file @
6039dc23
package
ud
import
(
"gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/primitives/id"
)
func
(
m
*
Manager
)
Register
(
myID
*
id
.
ID
,
username
string
)
error
{
msg
:=
&
messages
.
AuthenticatedMessage
{
ID
:
myID
.
Bytes
(),
Signature
:
nil
,
Token
:
nil
,
Client
:
nil
,
Message
:
nil
,
XXX_NoUnkeyedLiteral
:
struct
{}{},
XXX_unrecognized
:
nil
,
XXX_sizecache
:
0
,
}
m
.
comms
.
SendRegisterUser
(
m
.
host
)
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment