mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-23 03:18:59 +00:00
Provide discovery hint from the outside (ref #192)
This commit is contained in:
parent
e8a9abaf40
commit
dd1197236d
@ -56,6 +56,7 @@ func startGUI(cfg GUIConfiguration, m *Model) error {
|
||||
router.Post("/rest/shutdown", restPostShutdown)
|
||||
router.Post("/rest/error", restPostError)
|
||||
router.Post("/rest/error/clear", restClearErrors)
|
||||
router.Post("/rest/discovery/hint", restPostDiscoveryHint)
|
||||
|
||||
mr := martini.New()
|
||||
if len(cfg.User) > 0 && len(cfg.Password) > 0 {
|
||||
@ -233,6 +234,15 @@ func showGuiError(err string) {
|
||||
guiErrorsMut.Unlock()
|
||||
}
|
||||
|
||||
func restPostDiscoveryHint(r *http.Request) {
|
||||
var qs = r.URL.Query()
|
||||
var node = qs.Get("node")
|
||||
var addr = qs.Get("addr")
|
||||
if len(node) != 0 && len(addr) != 0 && discoverer != nil {
|
||||
discoverer.Hint(node, []string{addr})
|
||||
}
|
||||
}
|
||||
|
||||
func basic(username string, passhash string) http.HandlerFunc {
|
||||
return func(res http.ResponseWriter, req *http.Request) {
|
||||
error := func() {
|
||||
|
@ -90,6 +90,14 @@ func (d *Discoverer) Lookup(node string) []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Discoverer) Hint(node string, addrs []string) {
|
||||
resAddrs := resolveAddrs(addrs)
|
||||
d.registerNode(nil, Node{
|
||||
ID: node,
|
||||
Addresses: resAddrs,
|
||||
})
|
||||
}
|
||||
|
||||
func (d *Discoverer) announcementPkt() []byte {
|
||||
var addrs []Address
|
||||
for _, astr := range d.listenAddrs {
|
||||
|
Loading…
Reference in New Issue
Block a user