|
@@ -512,40 +512,28 @@ func signalPeer(w http.ResponseWriter, r *http.Request) {
|
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
|
|
return
|
|
|
}
|
|
|
- if signal.ToHostPubKey == "" || (!servercfg.IsPro && signal.TurnRelayEndpoint == "") {
|
|
|
+ if signal.ToHostID == "" || (!servercfg.IsPro && signal.TurnRelayEndpoint == "") {
|
|
|
msg := "insufficient data to signal peer"
|
|
|
logger.Log(0, r.Header.Get("user"), msg)
|
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New(msg), "badrequest"))
|
|
|
return
|
|
|
}
|
|
|
signal.IsPro = servercfg.IsPro
|
|
|
- hosts, err := logic.GetAllHosts()
|
|
|
+ host, err := logic.GetHost(signal.ToHostID)
|
|
|
if err != nil {
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("failed to signal, peer not found"), "badrequest"))
|
|
|
return
|
|
|
}
|
|
|
- // push the signal to host through mq
|
|
|
- found := false
|
|
|
- for _, hostI := range hosts {
|
|
|
- if hostI.PublicKey.String() == signal.ToHostPubKey {
|
|
|
- // found host publish message and break
|
|
|
- found = true
|
|
|
- err = mq.HostUpdate(&models.HostUpdate{
|
|
|
- Action: models.SignalHost,
|
|
|
- Host: hostI,
|
|
|
- Signal: signal,
|
|
|
- })
|
|
|
- if err != nil {
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("failed to publish signal to peer: "+err.Error()), "badrequest"))
|
|
|
- return
|
|
|
- }
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- if !found {
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("failed to signal, peer not found"), "badrequest"))
|
|
|
+ err = mq.HostUpdate(&models.HostUpdate{
|
|
|
+ Action: models.SignalHost,
|
|
|
+ Host: *host,
|
|
|
+ Signal: signal,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("failed to publish signal to peer: "+err.Error()), "badrequest"))
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
w.WriteHeader(http.StatusOK)
|
|
|
json.NewEncoder(w).Encode(signal)
|
|
|
}
|