Browse Source

Fixed missing chat envelope which got lost in 56aa603293.

pull/193/head
Simon Eisenmann 10 years ago
parent
commit
1d031b71ca
  1. 23
      src/app/spreed-webrtc-server/channelling_api.go

23
src/app/spreed-webrtc-server/channelling_api.go

@ -133,7 +133,7 @@ func (api *channellingAPI) OnIncoming(sender Sender, session *Session, msg *Data
break break
} }
api.HandleChat(session, msg.Chat.To, msg.Chat.Chat) api.HandleChat(session, msg.Chat)
case "Conference": case "Conference":
if msg.Conference == nil { if msg.Conference == nil {
log.Println("Received invalid conference message.", msg) log.Println("Received invalid conference message.", msg)
@ -224,12 +224,15 @@ func (api *channellingAPI) HandleAuthentication(session *Session, st *SessionTok
return self, err return self, err
} }
func (api *channellingAPI) HandleChat(session *Session, to string, chat *DataChatMessage) { func (api *channellingAPI) HandleChat(session *Session, chat *DataChat) {
// TODO(longsleep): Limit sent chat messages per incoming connection. // TODO(longsleep): Limit sent chat messages per incoming connection.
if !chat.NoEcho { msg := chat.Chat
to := chat.To
if !msg.NoEcho {
session.Unicast(session.Id, chat) session.Unicast(session.Id, chat)
} }
chat.Time = time.Now().Format(time.RFC3339) msg.Time = time.Now().Format(time.RFC3339)
if to == "" { if to == "" {
// TODO(longsleep): Check if chat broadcast is allowed. // TODO(longsleep): Check if chat broadcast is allowed.
if session.Hello { if session.Hello {
@ -237,25 +240,25 @@ func (api *channellingAPI) HandleChat(session *Session, to string, chat *DataCha
session.Broadcast(chat) session.Broadcast(chat)
} }
} else { } else {
if chat.Status != nil { if msg.Status != nil {
if chat.Status.ContactRequest != nil { if msg.Status.ContactRequest != nil {
if !api.Config.WithModule("contacts") { if !api.Config.WithModule("contacts") {
return return
} }
if err := api.contactrequestHandler(session, to, chat.Status.ContactRequest); err != nil { if err := api.contactrequestHandler(session, to, msg.Status.ContactRequest); err != nil {
log.Println("Ignoring invalid contact request.", err) log.Println("Ignoring invalid contact request.", err)
return return
} }
chat.Status.ContactRequest.Userid = session.Userid() msg.Status.ContactRequest.Userid = session.Userid()
} }
} else { } else {
api.CountUnicastChat() api.CountUnicastChat()
} }
session.Unicast(to, chat) session.Unicast(to, chat)
if chat.Mid != "" { if msg.Mid != "" {
// Send out delivery confirmation status chat message. // Send out delivery confirmation status chat message.
session.Unicast(session.Id, &DataChat{To: to, Type: "Chat", Chat: &DataChatMessage{Mid: chat.Mid, Status: &DataChatStatus{State: "sent"}}}) session.Unicast(session.Id, &DataChat{To: to, Type: "Chat", Chat: &DataChatMessage{Mid: msg.Mid, Status: &DataChatStatus{State: "sent"}}})
} }
} }
} }

Loading…
Cancel
Save