mirror of
				https://github.com/yggdrasil-network/yggdrasil-go.git
				synced 2025-11-04 03:05:07 +03:00 
			
		
		
		
	Reimplement AddPeer and RemovePeer for admin socket (#951)
* Reimplement AddPeer and RemovePeer for admin socket Fix #950 * Disconnect the peer on `removePeer` Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									c922eba2d8
								
							
						
					
					
						commit
						7db934488e
					
				
					 7 changed files with 97 additions and 73 deletions
				
			
		
							
								
								
									
										12
									
								
								src/admin/addpeer.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/admin/addpeer.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
package admin
 | 
			
		||||
 | 
			
		||||
type AddPeerRequest struct {
 | 
			
		||||
	Uri   string `json:"uri"`
 | 
			
		||||
	Sintf string `json:"interface,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type AddPeerResponse struct{}
 | 
			
		||||
 | 
			
		||||
func (a *AdminSocket) addPeerHandler(req *AddPeerRequest, res *AddPeerResponse) error {
 | 
			
		||||
	return a.core.AddPeer(req.Uri, req.Sintf)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -174,6 +174,34 @@ func (a *AdminSocket) SetupAdminHandlers() {
 | 
			
		|||
			return res, nil
 | 
			
		||||
		},
 | 
			
		||||
	)
 | 
			
		||||
	_ = a.AddHandler(
 | 
			
		||||
		"addPeer", "Add a peer to the peer list", []string{"uri", "interface"},
 | 
			
		||||
		func(in json.RawMessage) (interface{}, error) {
 | 
			
		||||
			req := &AddPeerRequest{}
 | 
			
		||||
			res := &AddPeerResponse{}
 | 
			
		||||
			if err := json.Unmarshal(in, &req); err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
			if err := a.addPeerHandler(req, res); err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
			return res, nil
 | 
			
		||||
		},
 | 
			
		||||
	)
 | 
			
		||||
	_ = a.AddHandler(
 | 
			
		||||
		"removePeer", "Remove a peer from the peer list", []string{"uri", "interface"},
 | 
			
		||||
		func(in json.RawMessage) (interface{}, error) {
 | 
			
		||||
			req := &RemovePeerRequest{}
 | 
			
		||||
			res := &RemovePeerResponse{}
 | 
			
		||||
			if err := json.Unmarshal(in, &req); err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
			if err := a.removePeerHandler(req, res); err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
			return res, nil
 | 
			
		||||
		},
 | 
			
		||||
	)
 | 
			
		||||
	//_ = a.AddHandler("getNodeInfo", []string{"key"}, t.proto.nodeinfo.nodeInfoAdminHandler)
 | 
			
		||||
	//_ = a.AddHandler("debug_remoteGetSelf", []string{"key"}, t.proto.getSelfHandler)
 | 
			
		||||
	//_ = a.AddHandler("debug_remoteGetPeers", []string{"key"}, t.proto.getPeersHandler)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										12
									
								
								src/admin/removepeer.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/admin/removepeer.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
package admin
 | 
			
		||||
 | 
			
		||||
type RemovePeerRequest struct {
 | 
			
		||||
	Uri   string `json:"uri"`
 | 
			
		||||
	Sintf string `json:"interface,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type RemovePeerResponse struct{}
 | 
			
		||||
 | 
			
		||||
func (a *AdminSocket) removePeerHandler(req *RemovePeerRequest, res *RemovePeerResponse) error {
 | 
			
		||||
	return a.core.RemovePeer(req.Uri, req.Sintf)
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue