Reconnect to discoverd when the connection drops

This lock/temp/unlock does nothing since maps are reference values in Go (essentially a pointer). Since this loop is the only thing that mutates the map, you can just access it directly.