fix video bug in zone with update
@ -146,7 +146,7 @@ func (cm *ChatGrpcMiddleware) Process(ctx context.Context, req *SignalingMessage
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
logger.Println(payload)
|
||||
// logger.Println(payload)
|
||||
i, err := strconv.Atoi(payload["sdpMLineIndex"])
|
||||
if err != nil {
|
||||
errCh <- err
|
||||
@ -154,7 +154,7 @@ func (cm *ChatGrpcMiddleware) Process(ctx context.Context, req *SignalingMessage
|
||||
}
|
||||
SDPMLineIndex := uint16(i)
|
||||
sdpMid := payload["sdpMid"]
|
||||
logger.Println(sdpMid, SDPMLineIndex)
|
||||
// logger.Println(sdpMid, SDPMLineIndex)
|
||||
if err := cm.Manager.AddCandidate(&webrtc.ICECandidateInit{
|
||||
Candidate: payload["candidate"],
|
||||
SDPMid: &sdpMid,
|
||||
@ -167,9 +167,9 @@ func (cm *ChatGrpcMiddleware) Process(ctx context.Context, req *SignalingMessage
|
||||
fmt.Println("no request for chat grpc middleware")
|
||||
fmt.Println(req.Type)
|
||||
fmt.Println(req.Payload)
|
||||
logger.Println("no request for chats grpc middleware")
|
||||
logger.Println(payload)
|
||||
logger.Println(req.Type)
|
||||
// logger.Println("no request for chats grpc middleware")
|
||||
// logger.Println(payload)
|
||||
// logger.Println(req.Type)
|
||||
}
|
||||
done <- struct{}{}
|
||||
}()
|
||||
|
||||
100
chatManager.go
@ -63,8 +63,8 @@ func NewNodeChat(id, name, initiator, target, initiatorHost, targetHost string,
|
||||
}
|
||||
chatScheduler, e := NewChatRequestScheduler(initiator, target, initiatorHost, targetHost, nodeChatMessageHandler, nodeChatNotificationsHandler)
|
||||
go func() {
|
||||
for schedErr := range e {
|
||||
logger.Println("chat error:", schedErr)
|
||||
for range e {
|
||||
|
||||
}
|
||||
}()
|
||||
chat = &NodeChat{
|
||||
@ -128,7 +128,7 @@ func NewChatManager(id, token string) (chatManager *ChatsManager, err error) {
|
||||
}
|
||||
for _, c := range chatsFolder {
|
||||
if _, ok := chatsMap[c.Name()]; !ok {
|
||||
logger.Println(chatManager.DeleteChat(c.Name()))
|
||||
// logger.Println(chatManager.DeleteChat(c.Name()))
|
||||
}
|
||||
}
|
||||
return
|
||||
@ -152,7 +152,7 @@ func (cm *ChatsManager) fetchChats(nodeId string, token string) (chats []*NodeCh
|
||||
}
|
||||
res, err := HTTPClient.Post("https://dev.zippytal.com/req", "application/json", bytes.NewReader(body))
|
||||
if err != nil {
|
||||
logger.Println("error come from there inn chat manager")
|
||||
// logger.Println("error come from there inn chat manager")
|
||||
return
|
||||
}
|
||||
bs, err := io.ReadAll(res.Body)
|
||||
@ -196,7 +196,7 @@ func (cm *ChatsManager) CreateOffer(ctx context.Context, target string, from str
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
logger.Println("connection created")
|
||||
// logger.Println("connection created")
|
||||
rawOffer, err := peerConnection.CreateOffer(nil)
|
||||
if err != nil {
|
||||
return
|
||||
@ -206,7 +206,7 @@ func (cm *ChatsManager) CreateOffer(ctx context.Context, target string, from str
|
||||
}
|
||||
_ = atomicallyExecute(cm.peerConnectionFlag, func() (err error) {
|
||||
id := uuid.New().String()
|
||||
logger.Println("adding for target", target)
|
||||
// logger.Println("adding for target", target)
|
||||
cm.RTCPeerConnections[target] = &RTCPeerConnection{
|
||||
id: id,
|
||||
PeerConnection: peerConnection,
|
||||
@ -236,13 +236,13 @@ func (cm *ChatsManager) HandleOffer(ctx context.Context, from string, to string,
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
logger.Println("handling chat offer")
|
||||
// logger.Println("handling chat offer")
|
||||
_ = atomicallyExecute(cm.chatsFlag, func() (err error) {
|
||||
return
|
||||
})
|
||||
if _, ok := cm.RTCPeerConnections[from]; ok {
|
||||
if e := cm.HandleLeavingMember(from, req["chatId"], false); e != nil {
|
||||
logger.Println(e)
|
||||
// logger.Println(e)
|
||||
}
|
||||
}
|
||||
peerConnection, err := cm.createPeerConnection(from, to, req["chatId"], webrtc.SDPTypeAnswer, cb)
|
||||
@ -250,7 +250,7 @@ func (cm *ChatsManager) HandleOffer(ctx context.Context, from string, to string,
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
logger.Println("peer connection created")
|
||||
// logger.Println("peer connection created")
|
||||
_ = atomicallyExecute(cm.peerConnectionFlag, func() (err error) {
|
||||
id := uuid.New().String()
|
||||
cm.RTCPeerConnections[from] = &RTCPeerConnection{
|
||||
@ -261,7 +261,7 @@ func (cm *ChatsManager) HandleOffer(ctx context.Context, from string, to string,
|
||||
negotiate: cm.negotiate,
|
||||
}
|
||||
|
||||
logger.Println("peer connection added to map")
|
||||
// logger.Println("peer connection added to map")
|
||||
offer := webrtc.SessionDescription{
|
||||
Type: webrtc.SDPTypeOffer,
|
||||
SDP: req[SDP],
|
||||
@ -318,14 +318,14 @@ func (cm *ChatsManager) HandleAnswer(ctx context.Context, from string, to string
|
||||
return
|
||||
}
|
||||
peerConnnection := cm.RTCPeerConnections[from]
|
||||
logger.Println("---------------------")
|
||||
logger.Println(req[SDP])
|
||||
logger.Println("---------------------")
|
||||
// logger.Println("---------------------")
|
||||
// logger.Println(req[SDP])
|
||||
// logger.Println("---------------------")
|
||||
if err = peerConnnection.SetRemoteDescription(webrtc.SessionDescription{
|
||||
Type: webrtc.SDPTypeAnswer,
|
||||
SDP: req[SDP],
|
||||
}); err != nil {
|
||||
logger.Println("error occured while setting remote description in handle answer")
|
||||
// logger.Println("error occured while setting remote description in handle answer")
|
||||
return
|
||||
}
|
||||
return
|
||||
@ -340,7 +340,7 @@ func (cm *ChatsManager) HandleAnswer(ctx context.Context, from string, to string
|
||||
}
|
||||
_ = atomicallyExecute(cm.candidateFlag, func() (err error) {
|
||||
for _, candidate := range cm.PendingCandidates[from] {
|
||||
logger.Println("sending candidate from answer to", from)
|
||||
// logger.Println("sending candidate from answer to", from)
|
||||
if err = cm.sendSignalingMessage(string(CHAT_WEBRTC_CANDIDATE), cm.ID, from, map[string]any{
|
||||
"from": cm.ID,
|
||||
"to": from,
|
||||
@ -348,7 +348,7 @@ func (cm *ChatsManager) HandleAnswer(ctx context.Context, from string, to string
|
||||
"sdpMid": *candidate.ToJSON().SDPMid,
|
||||
"sdpMLineIndex": strconv.Itoa(int(*candidate.ToJSON().SDPMLineIndex)),
|
||||
}); err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
continue
|
||||
}
|
||||
}
|
||||
@ -365,7 +365,7 @@ func (cm *ChatsManager) HandleAnswer(ctx context.Context, from string, to string
|
||||
func (cm *ChatsManager) HandleCounterOffer(ctx context.Context, from string, to string, req map[string]string) (err error) {
|
||||
_ = atomicallyExecute(cm.candidateFlag, func() (err error) {
|
||||
for _, candidate := range cm.PendingCandidates[from] {
|
||||
logger.Println("sending candidate to", from)
|
||||
// logger.Println("sending candidate to", from)
|
||||
if err = cm.sendSignalingMessage(string(CHAT_WEBRTC_CANDIDATE), cm.ID, from, map[string]any{
|
||||
"from": cm.ID,
|
||||
"to": from,
|
||||
@ -405,7 +405,7 @@ func (cm *ChatsManager) createPeerConnection(target string, from string, chatId
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
logger.Println("---------------------------------------------------")
|
||||
// logger.Println("---------------------------------------------------")
|
||||
if peerType == webrtc.SDPTypeOffer {
|
||||
channel, err := peerConnection.CreateDataChannel("data", &webrtc.DataChannelInit{})
|
||||
if err != nil {
|
||||
@ -413,9 +413,9 @@ func (cm *ChatsManager) createPeerConnection(target string, from string, chatId
|
||||
}
|
||||
reqChan := make(chan *ChatRequest)
|
||||
channel.OnOpen(func() {
|
||||
logger.Println(chatId)
|
||||
// logger.Println(chatId)
|
||||
if _, ok := cm.Chats[chatId]; ok {
|
||||
logger.Println("this chat exist")
|
||||
// logger.Println("this chat exist")
|
||||
_ = atomicallyExecute(cm.Chats[chatId].DataChannelsFlag, func() (err error) {
|
||||
x := uint32(0)
|
||||
cm.Chats[chatId].DataChannels[target] = &DataChannel{DataChannel: channel, bufferedAmountLowThresholdReached: make(<-chan struct{}), l: &x}
|
||||
@ -433,11 +433,11 @@ func (cm *ChatsManager) createPeerConnection(target string, from string, chatId
|
||||
Payload: map[string]interface{}{},
|
||||
})
|
||||
if jsonErr != nil {
|
||||
logger.Println("error in open channel", jsonErr)
|
||||
// logger.Println("error in open channel", jsonErr)
|
||||
return
|
||||
}
|
||||
if sendErr := channel.SendText(string(bs)); sendErr != nil {
|
||||
logger.Println("error in open channel send", sendErr)
|
||||
// logger.Println("error in open channel send", sendErr)
|
||||
return
|
||||
}
|
||||
go func() {
|
||||
@ -445,32 +445,36 @@ func (cm *ChatsManager) createPeerConnection(target string, from string, chatId
|
||||
select {
|
||||
case <-done:
|
||||
return
|
||||
case e := <-err:
|
||||
logger.Println("----- error from scheduler:", e)
|
||||
case <-err:
|
||||
// logger.Println("----- error from scheduler:", e)
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
})
|
||||
channel.OnClose(func() {
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
//_ = cm.HandleLeavingMember(target, chatId, true)
|
||||
})
|
||||
channel.OnError(func(err error) {
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
//_ = cm.HandleLeavingMember(target, chatId, true)
|
||||
})
|
||||
channel.OnMessage(func(msg webrtc.DataChannelMessage) {
|
||||
var req ChatRequest
|
||||
if err := json.Unmarshal(msg.Data, &req); err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
return
|
||||
}
|
||||
logger.Println("incoming request", req)
|
||||
// logger.Println("incoming request", req)
|
||||
reqChan <- &req
|
||||
})
|
||||
logger.Println("new channel for target : ", target)
|
||||
logger.Println(target)
|
||||
// logger.Println("new channel for target : ", target)
|
||||
// logger.Println(target)
|
||||
_ = atomicallyExecute(cm.dataChannelFlag, func() (err error) {
|
||||
l := uint32(0)
|
||||
cm.DataChannels[target] = &DataChannel{
|
||||
@ -493,11 +497,11 @@ func (cm *ChatsManager) createPeerConnection(target string, from string, chatId
|
||||
reqChan := make(chan *ChatRequest, 100)
|
||||
if dc.Label() == "data" {
|
||||
dc.OnOpen(func() {
|
||||
logger.Println(chatId)
|
||||
// logger.Println(chatId)
|
||||
if _, ok := cm.Chats[chatId]; ok {
|
||||
logger.Println("this chat exist")
|
||||
// logger.Println("this chat exist")
|
||||
_ = atomicallyExecute(cm.Chats[chatId].DataChannelsFlag, func() (err error) {
|
||||
logger.Println("adding dc to dc map")
|
||||
// logger.Println("adding dc to dc map")
|
||||
x := uint32(0)
|
||||
cm.Chats[chatId].DataChannels[target] = &DataChannel{DataChannel: dc, bufferedAmountLowThresholdReached: make(<-chan struct{}), l: &x}
|
||||
return
|
||||
@ -523,17 +527,17 @@ func (cm *ChatsManager) createPeerConnection(target string, from string, chatId
|
||||
close(reqChan)
|
||||
})
|
||||
dc.OnError(func(err error) {
|
||||
logger.Println("--------------- error in dc:", err)
|
||||
// logger.Println("--------------- error in dc:", err)
|
||||
close(reqChan)
|
||||
})
|
||||
dc.OnMessage(func(msg webrtc.DataChannelMessage) {
|
||||
var req ChatRequest
|
||||
if err := json.Unmarshal(msg.Data, &req); err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println("incoming req", req)
|
||||
logger.Println("incoming request", req)
|
||||
// logger.Println("incoming request", req)
|
||||
go func() {
|
||||
reqChan <- &req
|
||||
}()
|
||||
@ -561,7 +565,7 @@ func (cm *ChatsManager) createPeerConnection(target string, from string, chatId
|
||||
catched := scheduler.DispatchDataChannel(context.Background(), datachannel)
|
||||
if !catched {
|
||||
if closeErr := datachannel.DataChannel.Close(); closeErr != nil {
|
||||
logger.Println(closeErr)
|
||||
// logger.Println(closeErr)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -570,14 +574,14 @@ func (cm *ChatsManager) createPeerConnection(target string, from string, chatId
|
||||
}
|
||||
peerConnection.OnConnectionStateChange(func(pcs webrtc.PeerConnectionState) {
|
||||
if pcs == webrtc.PeerConnectionStateDisconnected || pcs == webrtc.PeerConnectionStateFailed {
|
||||
logger.Println(pcs)
|
||||
// logger.Println(pcs)
|
||||
if err = cm.HandleLeavingMember(target, chatId, true); err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
}
|
||||
}
|
||||
})
|
||||
peerConnection.OnICEConnectionStateChange(func(is webrtc.ICEConnectionState) {
|
||||
logger.Printf("ICE connection state has changed %s\n", is.String())
|
||||
// logger.Printf("ICE connection state has changed %s\n", is.String())
|
||||
})
|
||||
peerConnection.OnICECandidate(func(i *webrtc.ICECandidate) {
|
||||
if i == nil {
|
||||
@ -586,12 +590,12 @@ func (cm *ChatsManager) createPeerConnection(target string, from string, chatId
|
||||
_ = atomicallyExecute(cm.candidateFlag, func() (err error) {
|
||||
desc := peerConnection.RemoteDescription()
|
||||
if desc == nil {
|
||||
logger.Println("generated candidate appended to list : ", i)
|
||||
// logger.Println("generated candidate appended to list : ", i)
|
||||
cm.PendingCandidates[target] = append(cm.PendingCandidates[target], i)
|
||||
} else {
|
||||
logger.Println("generated candidate : ", i)
|
||||
// logger.Println("generated candidate : ", i)
|
||||
if iceCandidateErr := cb(target, i); iceCandidateErr != nil {
|
||||
logger.Println(iceCandidateErr)
|
||||
// logger.Println(iceCandidateErr)
|
||||
}
|
||||
}
|
||||
return
|
||||
@ -620,7 +624,7 @@ func (cm *ChatsManager) HandleRennegotiationOffer(from, sdp string) (err error)
|
||||
"to": from,
|
||||
"sdp": localSd.SDP,
|
||||
}); err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
return
|
||||
}
|
||||
return
|
||||
@ -653,7 +657,7 @@ func (cm *ChatsManager) AddCandidate(candidate *webrtc.ICECandidateInit, from st
|
||||
}
|
||||
|
||||
func (cm *ChatsManager) HandleLeavingMember(id, chatId string, signalLeaving bool) (err error) {
|
||||
logger.Println("---------------- handling leaving member", id)
|
||||
// logger.Println("---------------- handling leaving member", id)
|
||||
if err = atomicallyExecute(cm.peerConnectionFlag, func() (err error) {
|
||||
if _, ok := cm.RTCPeerConnections[id]; !ok {
|
||||
err = fmt.Errorf("no correponding peerconnection for id %s", id)
|
||||
@ -668,8 +672,8 @@ func (cm *ChatsManager) HandleLeavingMember(id, chatId string, signalLeaving boo
|
||||
fmt.Println(nerr)
|
||||
}
|
||||
err = atomicallyExecute(cm.chatsFlag, func() (err error) {
|
||||
logger.Println(err)
|
||||
logger.Println("---------------- cleaning chat handlers", id)
|
||||
// logger.Println(err)
|
||||
// logger.Println("---------------- cleaning chat handlers", id)
|
||||
if chat, ok := cm.Chats[chatId]; ok {
|
||||
for _, handlersPublishers := range chat.ChatRequestScheduler.handlersPublishers {
|
||||
go func(hp chan<- *ChatRequest) {
|
||||
@ -693,11 +697,11 @@ func (cm *ChatsManager) HandleLeavingMember(id, chatId string, signalLeaving boo
|
||||
}); err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
logger.Println("datachannels cleaned", id)
|
||||
// logger.Println("datachannels cleaned", id)
|
||||
} else {
|
||||
err = fmt.Errorf("no corresponding chat for chatId %s", chatId)
|
||||
}
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
err = atomicallyExecute(cm.peerConnectionFlag, func() (err error) {
|
||||
if _, ok := cm.RTCPeerConnections[id]; ok {
|
||||
defer delete(cm.RTCPeerConnections, id)
|
||||
@ -735,7 +739,7 @@ func (cm *ChatsManager) notifyLeavingMember(userId, chatId, hostId string) (err
|
||||
}
|
||||
_, err = HTTPClient.Post("https://dev.zippytal.com/req", "application/json", bytes.NewReader(body))
|
||||
if err != nil {
|
||||
logger.Println("error come from there in chat manager")
|
||||
// logger.Println("error come from there in chat manager")
|
||||
return
|
||||
}
|
||||
return
|
||||
|
||||
@ -41,7 +41,7 @@ func (fs *NodeChatFSInstance) SetupFileUpload(chatId, filename, userId string, d
|
||||
return nil, rErr
|
||||
}
|
||||
if err = os.Remove(concretePath); err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
}
|
||||
file, err := os.OpenFile(concretePath, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0755)
|
||||
if err != nil {
|
||||
@ -86,22 +86,22 @@ func (fs *NodeChatFSInstance) SetupFileDownload(chatId, filename, userId string,
|
||||
buf := make([]byte, 0, 50000)
|
||||
sendingLoop:
|
||||
for {
|
||||
n, readErr := r.Read(buf[:cap(buf)])
|
||||
n, _ := r.Read(buf[:cap(buf)])
|
||||
buf = buf[:n]
|
||||
if n == 0 {
|
||||
if err == nil {
|
||||
logger.Println("n is 0 weird")
|
||||
// logger.Println("n is 0 weird")
|
||||
break sendingLoop
|
||||
}
|
||||
if err == io.EOF {
|
||||
break sendingLoop
|
||||
}
|
||||
logger.Println(readErr)
|
||||
// logger.Println(readErr)
|
||||
return
|
||||
}
|
||||
if err = dc.Send(buf); err != nil {
|
||||
dc.Close()
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
break sendingLoop
|
||||
}
|
||||
if dc.BufferedAmount() > dc.
|
||||
@ -109,9 +109,9 @@ func (fs *NodeChatFSInstance) SetupFileDownload(chatId, filename, userId string,
|
||||
<-bufferedAmountLock
|
||||
}
|
||||
}
|
||||
logger.Println("done")
|
||||
// logger.Println("done")
|
||||
if err = dc.SendText("download_done"); err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
}
|
||||
}(file)
|
||||
dc.OnBufferedAmountLow(func() {
|
||||
|
||||
@ -6,6 +6,7 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@ -56,7 +57,7 @@ func NewNodeChatChannelsHandler(chatID, chatName, initiator, target, initiatorHo
|
||||
_, err = os.ReadDir(filepath.Join(dataPath, "data", "chats", chatID))
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
logger.Printf("creating chat directory for chat %s...\n", chatID)
|
||||
// logger.Printf("creating chat directory for chat %s...\n", chatID)
|
||||
mkdirErr := os.MkdirAll(filepath.Join(dataPath, "data", "chats", chatID), 0700)
|
||||
if mkdirErr != nil {
|
||||
return nil, mkdirErr
|
||||
@ -100,7 +101,7 @@ func NewNodeChatChannelsHandler(chatID, chatName, initiator, target, initiatorHo
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
logger.Println(string(bs))
|
||||
// logger.Println(string(bs))
|
||||
var c NodeChatChannel
|
||||
if err = json.Unmarshal(bs, &c); err != nil {
|
||||
return nil, err
|
||||
@ -109,7 +110,7 @@ func NewNodeChatChannelsHandler(chatID, chatName, initiator, target, initiatorHo
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
logger.Println("chats data :", c.ID, c.Initiator, c.InitiatorHost, c.Target)
|
||||
// logger.Println("chats data :", c.ID, c.Initiator, c.InitiatorHost, c.Target)
|
||||
c.DB = nodeChatDBHandler
|
||||
c.Tracking = nodeChatTracking
|
||||
chats[c.ID] = &c
|
||||
@ -175,7 +176,7 @@ func (zch *NodeChatChannelsHandler[T]) sendDataChannelMessage(reqType string, fr
|
||||
func (zch *NodeChatChannelsHandler[T]) Init(ctx context.Context, initiator, target, initiatorNodeID, targetNodeID string) (err error) {
|
||||
// for _, member := range authorizedMembers {
|
||||
// if serr := zch.SetAllPublicChatForUser(member); serr != nil {
|
||||
// logger.Println(serr)
|
||||
// // logger.Println(serr)
|
||||
// }
|
||||
// }
|
||||
zch.init = true
|
||||
@ -471,11 +472,6 @@ func (zch *NodeChatChannelsHandler[T]) AddChatMessage(userId, chatID, content st
|
||||
}
|
||||
}()
|
||||
fmt.Println("done without error 1")
|
||||
go func() {
|
||||
if e := zch.signalLastInteractionTime(context.Background(), dateTime); e != nil {
|
||||
fmt.Println(e)
|
||||
}
|
||||
}()
|
||||
fmt.Println("done without error 2")
|
||||
|
||||
fmt.Println("sending notification")
|
||||
@ -492,6 +488,11 @@ func (zch *NodeChatChannelsHandler[T]) AddChatMessage(userId, chatID, content st
|
||||
"chatMessage": chatMessage,
|
||||
"chatId": chatID,
|
||||
})
|
||||
go func() {
|
||||
if e := zch.signalLastInteractionTime(context.Background(), dateTime); e != nil {
|
||||
fmt.Println(e)
|
||||
}
|
||||
}()
|
||||
if userId == chat.Target {
|
||||
go notifyActivity(d2, e2, chat.Initiator)
|
||||
} else {
|
||||
@ -508,9 +509,9 @@ func (zch *NodeChatChannelsHandler[T]) RemoveAllUserChat(userId string) (err err
|
||||
for _, chat := range chats {
|
||||
if chat.Initiator == userId || chat.Target == userId {
|
||||
if derr := zch.DeleteChat(chat.ID); derr != nil {
|
||||
logger.Println("**************", derr)
|
||||
// logger.Println("**************", derr)
|
||||
}
|
||||
logger.Println("deleted chat", chat.ID)
|
||||
// logger.Println("deleted chat", chat.ID)
|
||||
}
|
||||
}
|
||||
return
|
||||
@ -533,8 +534,8 @@ func (zch *NodeChatChannelsHandler[T]) DeleteChatMessage(key uint64, chatID stri
|
||||
})
|
||||
select {
|
||||
case <-d:
|
||||
case tempErr := <-e:
|
||||
logger.Println(tempErr)
|
||||
case <-e:
|
||||
// logger.Println(tempErr)
|
||||
}
|
||||
}
|
||||
|
||||
@ -574,8 +575,8 @@ func (zch *NodeChatChannelsHandler[T]) UpdateChatMessage(key uint64, chatID, new
|
||||
})
|
||||
select {
|
||||
case <-d:
|
||||
case tempErr := <-e:
|
||||
logger.Println(tempErr)
|
||||
case <-e:
|
||||
// logger.Println(tempErr)
|
||||
}
|
||||
}
|
||||
|
||||
@ -602,8 +603,8 @@ func (zch *NodeChatChannelsHandler[T]) DeleteChatFile(key uint64, fileName, chat
|
||||
})
|
||||
select {
|
||||
case <-d:
|
||||
case tempErr := <-e:
|
||||
logger.Println(tempErr)
|
||||
case <-e:
|
||||
// logger.Println(tempErr)
|
||||
}
|
||||
}
|
||||
|
||||
@ -623,37 +624,37 @@ func (zch *NodeChatChannelsHandler[T]) chatFileUpload(chatID string, filename st
|
||||
done = true
|
||||
}
|
||||
dc.DataChannel.OnError(func(err error) {
|
||||
logger.Println(err)
|
||||
logger.Println("abort...")
|
||||
// logger.Println(err)
|
||||
// logger.Println("abort...")
|
||||
if !done {
|
||||
uploadDone()
|
||||
}
|
||||
if fufErr := zch.ChatFSInstance.FileUploadFailed(chatID, filename, userId); fufErr != nil {
|
||||
logger.Println(fufErr)
|
||||
// logger.Println(fufErr)
|
||||
}
|
||||
})
|
||||
dc.DataChannel.OnClose(func() {
|
||||
if done {
|
||||
logger.Println("closing gracefully...")
|
||||
// logger.Println("closing gracefully...")
|
||||
} else {
|
||||
logger.Println("abort...")
|
||||
// logger.Println("abort...")
|
||||
uploadDone()
|
||||
if fufErr := zch.ChatFSInstance.FileUploadFailed(chatID, filename, userId); fufErr != nil {
|
||||
logger.Println(fufErr)
|
||||
// logger.Println(fufErr)
|
||||
}
|
||||
}
|
||||
})
|
||||
dc.DataChannel.OnMessage(func(msg webrtc.DataChannelMessage) {
|
||||
if msg.IsString {
|
||||
if string(msg.Data) == "init_upload" {
|
||||
logger.Println("init upload....")
|
||||
// logger.Println("init upload....")
|
||||
var initErr error
|
||||
if writePipe, initErr = zch.ChatFSInstance.SetupFileUpload(chatID, filename, userId, dc.DataChannel); initErr != nil {
|
||||
_ = dc.DataChannel.SendText("abort")
|
||||
_ = dc.DataChannel.Close()
|
||||
return
|
||||
}
|
||||
logger.Println("upload ready !")
|
||||
// logger.Println("upload ready !")
|
||||
_ = dc.DataChannel.SendText("upload_ready")
|
||||
} else if string(msg.Data) == "upload_done" {
|
||||
uploadDone()
|
||||
@ -671,31 +672,31 @@ func (zch *NodeChatChannelsHandler[T]) chatFileDownload(chatID string, filename
|
||||
var done bool
|
||||
dc.DataChannel.OnError(func(err error) {
|
||||
if !done {
|
||||
logger.Println("abort...")
|
||||
// logger.Println("abort...")
|
||||
if fdf := zch.ChatFSInstance.FileDownloadFailed(chatID, filename, userId); fdf != nil {
|
||||
logger.Println(fdf)
|
||||
// logger.Println(fdf)
|
||||
}
|
||||
}
|
||||
})
|
||||
dc.DataChannel.OnClose(func() {
|
||||
if !done {
|
||||
logger.Println("abort...")
|
||||
// logger.Println("abort...")
|
||||
if fdf := zch.ChatFSInstance.FileDownloadFailed(chatID, filename, userId); fdf != nil {
|
||||
logger.Println(fdf)
|
||||
// logger.Println(fdf)
|
||||
}
|
||||
}
|
||||
})
|
||||
dc.DataChannel.OnMessage(func(msg webrtc.DataChannelMessage) {
|
||||
if msg.IsString {
|
||||
if string(msg.Data) == "init_download" {
|
||||
logger.Println("init download....")
|
||||
// logger.Println("init download....")
|
||||
var initErr error
|
||||
if initErr = zch.ChatFSInstance.SetupFileDownload(chatID, filename, userId, dc.DataChannel); initErr != nil {
|
||||
_ = dc.DataChannel.SendText("abort")
|
||||
_ = dc.DataChannel.Close()
|
||||
return
|
||||
}
|
||||
logger.Println("download started !")
|
||||
// logger.Println("download started !")
|
||||
} else if string(msg.Data) == "download_done" {
|
||||
done = true
|
||||
}
|
||||
@ -718,12 +719,12 @@ func (zch *NodeChatChannelsHandler[T]) handleDataChannel(ctx context.Context, dc
|
||||
catched = true
|
||||
go zch.chatFileUpload(command[1], command[2], command[3], dc)
|
||||
}
|
||||
logger.Println(command)
|
||||
// logger.Println(command)
|
||||
} else if strings.Contains(label, "chat_download") {
|
||||
command := strings.Split(label, "|")
|
||||
catched = true
|
||||
go zch.chatFileDownload(command[1], command[2], command[3], dc)
|
||||
logger.Println(command)
|
||||
// logger.Println(command)
|
||||
} else if strings.Contains(label, "chat_data") {
|
||||
command := strings.Split(label, "|")
|
||||
catched = true
|
||||
@ -785,9 +786,9 @@ func (zch *NodeChatChannelsHandler[T]) signalUnreadCount(ctx context.Context, us
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
_, err = HTTPClient.Post("https://dev.zippytal.com/req", "application/json", bytes.NewReader(body))
|
||||
_, err = http.Post("https://dev.zippytal.com/req", "application/json", bytes.NewReader(body))
|
||||
if err != nil {
|
||||
logger.Println("error come from there inn chat manager")
|
||||
// logger.Println("error come from there inn chat manager")
|
||||
return
|
||||
}
|
||||
return
|
||||
@ -810,9 +811,9 @@ func (zch *NodeChatChannelsHandler[T]) signalLastInteractionTime(ctx context.Con
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
res, err := HTTPClient.Post("https://dev.zippytal.com/req", "application/json", bytes.NewReader(body))
|
||||
res, err := http.Post("https://dev.zippytal.com/req", "application/json", bytes.NewReader(body))
|
||||
if err != nil {
|
||||
logger.Println("error come from there inn chat manager")
|
||||
// logger.Println("error come from there inn chat manager")
|
||||
return
|
||||
}
|
||||
_, err = io.ReadAll(res.Body)
|
||||
@ -823,7 +824,7 @@ func (zch *NodeChatChannelsHandler[T]) signalLastInteractionTime(ctx context.Con
|
||||
}
|
||||
|
||||
func (zch *NodeChatChannelsHandler[T]) handleChatRequest(ctx context.Context, req *ChatRequest) (err error) {
|
||||
logger.Println("got request in zone chat handler", req)
|
||||
// logger.Println("got request in zone chat handler", req)
|
||||
|
||||
fmt.Println(req)
|
||||
switch req.ReqType {
|
||||
@ -871,7 +872,7 @@ func (zch *NodeChatChannelsHandler[T]) handleChatRequest(ctx context.Context, re
|
||||
}
|
||||
err = zch.ReadLastMessage(req.From, req.Payload["chatId"].(string))
|
||||
case ADD_CHAT_MESSAGE:
|
||||
logger.Println("got request in zone chat handler", req)
|
||||
// logger.Println("got request in zone chat handler", req)
|
||||
if err = VerifyFieldsString(req.Payload, "chatId", "content"); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ func (znh *ChatNotificationsHandler) PushNotification(notificationType, title, b
|
||||
_, err = http.Post("https://dev.zippytal.com/req", "application/json", bytes.NewReader(b))
|
||||
if err != nil {
|
||||
fmt.Println("error inn notification sender", err)
|
||||
logger.Println("error come from there in zone manager")
|
||||
// logger.Println("error come from there in zone manager")
|
||||
return
|
||||
}
|
||||
return
|
||||
|
||||
@ -63,15 +63,15 @@ func NewChatRequestScheduler(initiator, target, initiatorNodeID, targetNodeID st
|
||||
select {
|
||||
case <-done:
|
||||
return
|
||||
case e := <-errCh:
|
||||
logger.Println(e)
|
||||
case <-errCh:
|
||||
// logger.Println(e)
|
||||
}
|
||||
}
|
||||
}(reqChan)
|
||||
}
|
||||
for _, handler := range handlers {
|
||||
if ierr := handler.Init(context.Background(), initiator, target, initiatorNodeID, targetNodeID); ierr != nil {
|
||||
logger.Println(ierr)
|
||||
// logger.Println(ierr)
|
||||
}
|
||||
}
|
||||
return
|
||||
|
||||
@ -1,32 +1,32 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFJTCCBA2gAwIBAgISA3dQ2zpBeZnE7w8niLNHfyCoMA0GCSqGSIb3DQEBCwUA
|
||||
MIIFJTCCBA2gAwIBAgISBPadBO03QkICD+vXyXyTn/keMA0GCSqGSIb3DQEBCwUA
|
||||
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
|
||||
EwJSMzAeFw0yMjAxMDcxMzI1NDdaFw0yMjA0MDcxMzI1NDZaMBsxGTAXBgNVBAMT
|
||||
EwJSMzAeFw0yMzAyMTQxMTUyMzVaFw0yMzA1MTUxMTUyMzRaMBsxGTAXBgNVBAMT
|
||||
EGRldi56aXBweXRhbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||
AQCyC2CiD7Gfog06nKiibkStV5VJDGAMLTj7G3GxS2OUWqY9FtjyvMxUNQZ7xHA4
|
||||
/QXbn/TUPcZxlKJymUgE0pqueAxlxnHvft80Bz35g1G5kJMNp349uBHKUArlDwqm
|
||||
/B4BrUrKzMj5O4YJTrPdyAMx3aRquWNysh8deqyZLXKvpT1f33WopyWwbC6AySMb
|
||||
tkZaq0NycMc2kszr0eqcJU9+ZDrkAYwLIeIOp4DLL+N5N/YEEPNGyKyth1DtNV6z
|
||||
VPv0yLKY6nTEJWnp2GaQCvMs0g8ImrSEWeoz+QBQ0w79Pll78ldrVPoPBtlGSP/N
|
||||
6q6FuFF2IiXlbCvgZxJ5hKKxAgMBAAGjggJKMIICRjAOBgNVHQ8BAf8EBAMCBaAw
|
||||
AQDZvlYAoMicvfR0AUVzlh0ESPlH0BmDxbaotJiAA4Oi2jQtH0oMDOrz8i0BxRFd
|
||||
378R8Tu33wCF116SDJqMD0B0ZiwIepSzYyuueZ6sbcvp2/Sj85Sphu3PA42JFTBp
|
||||
7usemWDYsKc/Cy5yWLRHpwMK75VZXrwQ7zlBftolQqIS9qwqjhz9qvLSfwLl0Jhf
|
||||
Tr7U5xKSpt+1Pq1/e/2CiB3IDxKN3oIW9oCl8oVMeWgtwafu8hmJTgO29nJeSJLA
|
||||
75yebpCecc19aTQTXt268TgNyuS/vRS0HE+uPIYLUzhWE84vfoAXM+EHSIYGLTlU
|
||||
FPVzZ441BAflsiCPwG2Xdg6TAgMBAAGjggJKMIICRjAOBgNVHQ8BAf8EBAMCBaAw
|
||||
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYD
|
||||
VR0OBBYEFCcpVUqr+wzOcbciHnVozpCHq3+4MB8GA1UdIwQYMBaAFBQusxe3WFbL
|
||||
VR0OBBYEFDCknZOFSUJBeihtZ9rLqf/ImyqGMB8GA1UdIwQYMBaAFBQusxe3WFbL
|
||||
rlAJQOYfr52LFMLGMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDov
|
||||
L3IzLm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vcjMuaS5sZW5jci5v
|
||||
cmcvMBsGA1UdEQQUMBKCEGRldi56aXBweXRhbC5jb20wTAYDVR0gBEUwQzAIBgZn
|
||||
gQwBAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5s
|
||||
ZXRzZW5jcnlwdC5vcmcwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AdQBGpVXrdfqR
|
||||
IDC1oolp9PN9ESxBdL79SbiFq/L8cP5tRwAAAX407m0nAAAEAwBGMEQCIDq4+2nG
|
||||
dTMFrcMHhn5yPUTtJM/dL2HG235w1oMjyCOvAiAu7MDKRTXhmt3+8l1m/sAxghlf
|
||||
c89zbySAiLAuOgQIaQB2AG9Tdqwx8DEZ2JkApFEV/3cVHBHZAsEAKQaNsgiaN9kT
|
||||
AAABfjTubfcAAAQDAEcwRQIhAMcjPDuJA/RuNGBgY7kdjyucSnRzE7VPvqWfOmyy
|
||||
xQyxAiBobnPO5S/YU2ug0gnvls2WHI0U/vYz79UrQXVexKLDQTANBgkqhkiG9w0B
|
||||
AQsFAAOCAQEALPoLXardrWCT9kVAc+uM9mwrwmwNHb1NXp1HPzasZphd9HM0tTIt
|
||||
5jWSWwPPO1JJROiwSjepjls/auDuujhooYjQ00cG8Et4IWMpkd2gb4kqvDdsGEr/
|
||||
yLreBgEa04oSMKdauSHy5Wb9OOfYEMLYqZsPu46ILAwebsxCjfkTWMi8zh1O5ePf
|
||||
AZhrZiiTTYKeuIihoTdYYGpc8vUC9iksPeY3U6g6O/6mCdbr8PN7EVaCfXd6Z7H8
|
||||
LMq1P/BaotdHwJovKghtkOa2hwvEjdnw+jAj7YysNs3kX8L6nH2eIgzicNK41khV
|
||||
mk7aUfZCfc1r/fqHHTYmNb5cUa9MMcEUyQ==
|
||||
ZXRzZW5jcnlwdC5vcmcwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AdQC3Pvsk35xN
|
||||
unXyOcW6WPRsXfxCz3qfNcSeHQmBJe20mQAAAYZP++yrAAAEAwBGMEQCIEYNligg
|
||||
JBY2b1Gw+ksj6Q0nFgBvIy+z4+EGruX27clMAiBvoR58IOBYkxJyy2HeBM7V05uQ
|
||||
vq6wgijT/ICV+syyvwB2AHoyjFTYty22IOo44FIe6YQWcDIThU070ivBOlejUutS
|
||||
AAABhk/77MoAAAQDAEcwRQIhAN3/uLBljNpjenO2Xujt1R22C8UUYs/YN6MuNyj+
|
||||
KPocAiAGEEAPdZcBLulJygmak0hBVi1mIuTg9zDfGTzlE+22wzANBgkqhkiG9w0B
|
||||
AQsFAAOCAQEAkfYqlMvFxFpOOMxQc3bthaqV/p6nBuSzgcGswoO8BTsHgc7I25Ir
|
||||
fCFcASPoK5wBvbnMhr4BSGpepvwx15EbO6J3nSLWAAycVCGj/Pclc4ueAtUR5Z3O
|
||||
0e48nLtRdgpX87dHTDxv7w4gvcR9/YOBqI04EAIyg/TnEGcCh+l87Vcfu28KXY6a
|
||||
jVEbPzAG9Q5FcdPoCKIxcAxk/XalkRk1Y+Sv13MFXkUC4LoT5B5e+otOr8XruBQI
|
||||
oBOrubQJE4eFHBp24gwtvQ+n0GP+NqlFcJZPjLLEniyNNbGDseuzYvOXt+Xzqq7Y
|
||||
c1dHBpAYQSU3DjoDJELW9mJOAUAGEK+9fw==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
|
||||
|
||||
@ -1 +0,0 @@
|
||||
P^í·ŒTÖã# çHello Badger
|
||||
|
Before Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 198 KiB |
|
Before Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 420 KiB |
|
Before Width: | Height: | Size: 3.4 MiB |
|
Before Width: | Height: | Size: 872 KiB |
|
Before Width: | Height: | Size: 370 KiB |
@ -1 +0,0 @@
|
||||
{"chatId":"general 💬","chatType":"public","owner":"Dev","members":["Dev","Loïs","Pascal","Dev2"]}
|
||||
@ -1 +0,0 @@
|
||||
Y(2ë…0ïÆD]ÞbHello Badger
|
||||
@ -1 +0,0 @@
|
||||
§ŠM}ïÇF¸ŸýíÔáSoHello Badger
|
||||
@ -1,8 +0,0 @@
|
||||
{
|
||||
"chatId": "test",
|
||||
"chatType": "private",
|
||||
"owner": "Dev2",
|
||||
"members": [
|
||||
"Dev2"
|
||||
]
|
||||
}
|
||||
@ -1 +0,0 @@
|
||||
•‡Ì\³
ƯªŽWœ0xHello Badger
|
||||
@ -1,27 +0,0 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEogIBAAKCAQEA21eYnSK/8vlKju2JskviAmf4RjMH/hhDmcA2nIWXn17Sh3re
|
||||
L7dcL0p3OO9Up/iQ9tDpL63UMPkX3JW7SC8JxAtbhpPLOtqDbAxrtLnth3m+t8e9
|
||||
pdVQVVor7UdDg8VRJotN9OYIe4/9k/Fv9w3qFnLpSLh6VSHGb8MsrcJH7RoHL5F9
|
||||
LBb5m6iYjq6SfhPFbSgMJ86CPXtOMFtY0uXmaWaG9yGLrCYa8ZKoXCXkrTBYok5g
|
||||
Z//sR/py8KqeS7q1FUSPRyp9JoA8Kyy+7Oqgb7Ehw4/9FASeAN808cn2+C19Jl3T
|
||||
QBw/CshFwSVJmE3DzTvNfpIaGLSChKA54Jh4YwIDAQABAoIBACpkIZCs+KAC4hAB
|
||||
hI068TE52tfmYPMQyW/boDJb91PLxbB9ZJegPma9Y5FTX+8esRWiho66b7oPSjdN
|
||||
kOaAgMis0UGPKsXzGVc2h1JkZK28L8nhBpwYP/Be/wJatYewCOEEJ0rfcmA/EekX
|
||||
zmXXAJjaGI//Z1Uws+NBu07Rr4j5FRYczV2nFMSWAlo4k8/beaIFACNnpnYnx+tL
|
||||
BREgA7x9PMRhFXt1POJ+fTN0YZrp7i2QYT5y1fYCT6BvJpQeAGm/uaXGUTvHjQOo
|
||||
N8ztLjVphgopR/Zg7Zg0gLovfthXh3C4qBPcIHmRGNDErxJEf6oTlQZNGpW0cF4B
|
||||
9YB9KmECgYEA+a+/IDL9WCk55v1eJPlVUzW8qVRq3mG6JZMeklLGWs6nz/wNkUA3
|
||||
YM9ljWSgjSjY0OMSwdAel1Hrgj6obWUSM5pV0sRVT/xnzSmy8syHmqKsD0eT7G4d
|
||||
3aQlQ0Hs/370OVVykuGZ3sl5gG/NL5hvY4KTri4MlgP9RgKl1ex5MRsCgYEA4ONt
|
||||
PCPmNDCblbYe8vyxpG6qSARYkRsiF4iu9q6WiKS1tyZ0gvXNKz4zvavba/w/F7RE
|
||||
Vacy8CDxHYJ0hxkYOYgwRkiLD3ORpY16DQXjybhUHFBCroxBTMT5yzsJIN7CWCTV
|
||||
5FCuMB4G5ABtU7Rd6aNR6vgIWQ3na1li+aGvklkCgYB5RIhZRSqSpQNAUxJkdsyg
|
||||
K1tECoIVG/Xixf91Jcq8093hQBP+1eePl2tFLvhjVtFnMsIra79P0zPFAFWhPBOJ
|
||||
CI5iXYTp4jcwB+6nyfqaeiODEEqh7CGJQm3uqphGxwwqxHtvJy8qa0Qdwy8uzKRc
|
||||
+lBrqmXmfm2GkUamDcIWvQKBgEZ/BH8VwdQaaKtFq+3/yLADAN4SfrD+EHHQJwit
|
||||
MgMjntMK+vsSkn47wXxzoxT2vdBwcftnrlAYA318p4qyEyX1yyw9EVqGn+GFt/zd
|
||||
G8rgPX2iq0SMMuwd0zAiEXp8We/HnEU2BWSQBRj0CVFz+PyEdelyVyuTcDf2jVAz
|
||||
nxYBAoGACqeABt+gN/7TwSNPVveFVx5ms67pAVYqe6Pamk+ECbJDWHajrANGu5GM
|
||||
Ib5f1Y3VExMiUT/jRo1mbyKO1tWff4I252v1xwZFgcfF/YfoqNQr7VomfizyyYx2
|
||||
oyS7VhWDP25Q7/ofhbJKvhd899nVDOQ8gHLiQNycpwWv0ieIwgQ=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
Before Width: | Height: | Size: 872 KiB |
@ -1 +0,0 @@
|
||||
½XñÔ
LPENQ‡ˆHello Badger
|
||||
@ -1 +1 @@
|
||||
C<EFBFBD>Ü ÜÌxžðµYª¿PHello Badger
|
||||
uäe>Š}G˜í=ôµìHello Badger
|
||||
@ -1 +1 @@
|
||||
ûcŸçª1[
:>õªžHello Badger
|
||||
íÙ3à–÷'ÂêSÀ°5@Hello Badger
|
||||
47207
cmd/local_server.log
BIN
cmd/node.linux
16
config.go
@ -29,9 +29,8 @@ type LocalServerConfig struct {
|
||||
}
|
||||
|
||||
var configPath = ""
|
||||
var certificatePath = ""
|
||||
|
||||
func NewLocalServerConfig(appCertificatePath, appConfigPath string) (localServerConfig *LocalServerConfig, err error) {
|
||||
func NewLocalServerConfig(appConfigPath string) (localServerConfig *LocalServerConfig, err error) {
|
||||
HTTPClient = &http.Client{
|
||||
Transport: &http.Transport{
|
||||
DisableKeepAlives: true,
|
||||
@ -42,7 +41,6 @@ func NewLocalServerConfig(appCertificatePath, appConfigPath string) (localServer
|
||||
Timeout: 10 * time.Second,
|
||||
}
|
||||
configPath = appConfigPath
|
||||
certificatePath = appCertificatePath
|
||||
logFile, err := os.OpenFile(filepath.Join(configPath, "local_server.log"), os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0755)
|
||||
if err != nil {
|
||||
return
|
||||
@ -99,7 +97,7 @@ func (l *LocalServerConfig) startup() (err error) {
|
||||
Type: "RSA PUBLIC KEY",
|
||||
Bytes: key_bytes,
|
||||
})
|
||||
logger.Println(string(key))
|
||||
// logger.Println(string(key))
|
||||
l.NodeId = id
|
||||
l.PrivateKeyPath = ""
|
||||
l.Token = ""
|
||||
@ -120,10 +118,12 @@ func (l *LocalServerConfig) startup() (err error) {
|
||||
}
|
||||
res, postErr := HTTPClient.Post("https://dev.zippytal.com/req", "application/json", bytes.NewBuffer(bss))
|
||||
if postErr != nil {
|
||||
logger.Println("e")
|
||||
// logger.Println("e")
|
||||
fmt.Println("error is from there")
|
||||
return postErr
|
||||
}
|
||||
logger.Println(res)
|
||||
// logger.Println(res)
|
||||
fmt.Println(res)
|
||||
if err = file.Close(); err != nil {
|
||||
return
|
||||
}
|
||||
@ -140,7 +140,7 @@ func (l *LocalServerConfig) startup() (err error) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
logger.Println(config)
|
||||
// logger.Println(config)
|
||||
NodeID = l.NodeId
|
||||
l.NodeId = config["nodeId"]
|
||||
l.PrivateKeyPath = config["privKeyPath"]
|
||||
@ -160,6 +160,7 @@ func (l *LocalServerConfig) authenticate() (err error) {
|
||||
return
|
||||
}
|
||||
em := NewEncryptionManager()
|
||||
fmt.Println("-----------", l.NodeId)
|
||||
sig, err := em.SignRequest(string(buff), l.NodeId)
|
||||
if err != nil {
|
||||
return
|
||||
@ -194,6 +195,7 @@ func (l *LocalServerConfig) authenticate() (err error) {
|
||||
}
|
||||
|
||||
func (l *LocalServerConfig) handleLoginResponse(res map[string]any) (err error) {
|
||||
fmt.Println("----------", res)
|
||||
if _, ok := res["token"]; !ok {
|
||||
err = fmt.Errorf("no field token in res")
|
||||
return
|
||||
|
||||
@ -84,7 +84,7 @@ func (em *EncryptionManager) LoadPrivKey(privKeyPath string, password string) (e
|
||||
privPem, _ := pem.Decode(buff)
|
||||
var privePemBytes []byte
|
||||
if privPem.Type != PEM_PRIVATE_KEY && privPem.Type != OPENSSH_PRIVATE_KEY {
|
||||
logger.Println(privPem.Type)
|
||||
// logger.Println(privPem.Type)
|
||||
err = fmt.Errorf("RSA Private key is of wrong type")
|
||||
return
|
||||
}
|
||||
@ -98,9 +98,9 @@ func (em *EncryptionManager) LoadPrivKey(privKeyPath string, password string) (e
|
||||
}
|
||||
var parsedKey interface{}
|
||||
if parsedKey, err = x509.ParsePKCS1PrivateKey(privePemBytes); err != nil {
|
||||
logger.Printf("error one %v\n", err)
|
||||
// logger.Printf("error one %v\n", err)
|
||||
if parsedKey, err = x509.ParsePKCS8PrivateKey(privePemBytes); err != nil {
|
||||
logger.Printf("error on parsing %v\n", err)
|
||||
// logger.Printf("error on parsing %v\n", err)
|
||||
if parsedKey, err = x509.ParseECPrivateKey(privePemBytes); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
19
go.mod
@ -16,17 +16,13 @@ require (
|
||||
github.com/cespare/xxhash/v2 v2.1.1 // indirect
|
||||
github.com/dgraph-io/ristretto v0.1.0 // indirect
|
||||
github.com/dustin/go-humanize v1.0.0 // indirect
|
||||
github.com/fogleman/gg v1.3.0 // indirect
|
||||
github.com/goccy/go-graphviz v0.0.9 // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect
|
||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 // indirect
|
||||
github.com/golang/protobuf v1.5.2 // indirect
|
||||
github.com/golang/snappy v0.0.3 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/google/flatbuffers v1.12.1 // indirect
|
||||
github.com/klauspost/compress v1.12.3 // indirect
|
||||
github.com/ofabry/go-callvis v0.6.1 // indirect
|
||||
github.com/pion/datachannel v1.5.2 // indirect
|
||||
github.com/pion/dtls/v2 v2.0.10 // indirect
|
||||
github.com/pion/ice/v2 v2.1.14 // indirect
|
||||
@ -42,16 +38,13 @@ require (
|
||||
github.com/pion/transport v0.12.3 // indirect
|
||||
github.com/pion/turn/v2 v2.0.5 // indirect
|
||||
github.com/pion/udp v0.1.1 // indirect
|
||||
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/stretchr/testify v1.8.0 // indirect
|
||||
go.opencensus.io v0.22.5 // indirect
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect
|
||||
golang.org/x/image v0.1.0 // indirect
|
||||
golang.org/x/mod v0.7.0 // indirect
|
||||
golang.org/x/net v0.2.0 // indirect
|
||||
golang.org/x/sys v0.2.0 // indirect
|
||||
golang.org/x/text v0.4.0 // indirect
|
||||
golang.org/x/tools v0.3.0 // indirect
|
||||
golang.org/x/crypto v0.5.0 // indirect
|
||||
golang.org/x/net v0.5.0 // indirect
|
||||
golang.org/x/sys v0.4.0 // indirect
|
||||
golang.org/x/text v0.6.0 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
|
||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect
|
||||
)
|
||||
|
||||
64
go.sum
@ -20,7 +20,6 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH
|
||||
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||
github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
|
||||
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||
github.com/corona10/goimagehash v1.0.2/go.mod h1:/l9umBhvcHQXVtQO1V6Gp1yD20STawkhRnnX0D1bvVI=
|
||||
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
@ -39,19 +38,12 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8=
|
||||
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
||||
github.com/goccy/go-graphviz v0.0.6/go.mod h1:wXVsXxmyMQU6TN3zGRttjNn3h+iCAS7xQFC6TlNvLhk=
|
||||
github.com/goccy/go-graphviz v0.0.9 h1:s/FMMJ1Joj6La3S5ApO3Jk2cwM4LpXECC2muFx3IPQQ=
|
||||
github.com/goccy/go-graphviz v0.0.9/go.mod h1:wXVsXxmyMQU6TN3zGRttjNn3h+iCAS7xQFC6TlNvLhk=
|
||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 h1:ZgQEtGgCBiWRM39fZuwSd1LwSqqSW0hOdXCYYDX0R3I=
|
||||
@ -72,8 +64,9 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
|
||||
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
||||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/google/flatbuffers v1.12.1 h1:MVlul7pQNoDzWRLTw5imwYsl+usrS1TXG2H4jg6ImGw=
|
||||
github.com/google/flatbuffers v1.12.1/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
@ -91,7 +84,6 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFb
|
||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/compress v1.12.3 h1:G5AfA94pHPysR56qqrkO2pxEexdDzrpFJ6yt/VqWxVU=
|
||||
@ -102,11 +94,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||
github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
|
||||
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
||||
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
|
||||
github.com/ofabry/go-callvis v0.6.1 h1:JSVl4QdS5+997C38Bu0lMPXOs5NLOoKaY32sgKcgdUI=
|
||||
github.com/ofabry/go-callvis v0.6.1/go.mod h1:0rRJ5J4UM3gOuKEWcoSng8RJmDUGJCJRAd+nY+zT2KE=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||
github.com/onsi/ginkgo v1.16.1/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E=
|
||||
@ -153,9 +142,6 @@ github.com/pion/udp v0.1.1 h1:8UAPvyqmsxK8oOjloDk4wUt63TzFe9WEJkg5lChlj7o=
|
||||
github.com/pion/udp v0.1.1/go.mod h1:6AFo+CMdKQm7UiA0eUPA8/eVCTx8jBIITLZHc9DWX5M=
|
||||
github.com/pion/webrtc/v3 v3.1.11 h1:8Q5BEsxvlDn3botM8U8n/Haln745FBa5TWgm8v2c2FA=
|
||||
github.com/pion/webrtc/v3 v3.1.11/go.mod h1:h9pbP+CADYb/99s5rfjflEcBLgdVKm55Rm7heQ/gIvY=
|
||||
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA=
|
||||
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU=
|
||||
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
@ -174,40 +160,36 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6
|
||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
|
||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0=
|
||||
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
|
||||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE=
|
||||
golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/image v0.1.0 h1:r8Oj8ZA2Xy12/b5KZYj3tuv7NG/fBz3TwQVvpJ9l8Rk=
|
||||
golang.org/x/image v0.1.0/go.mod h1:iyPr49SD/G/TBxYVB/9RRtGUT5eNbo2u4NamWeQcD5c=
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA=
|
||||
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
@ -228,11 +210,9 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
|
||||
golang.org/x/net v0.0.0-20210331212208-0fccb6fa2b5c/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211005001312-d4b1ae081e3b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211020060615-d418f374d309 h1:A0lJIi+hcTR6aajJH4YqKWwohY4aW9RO7oRMcdv+HKI=
|
||||
golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU=
|
||||
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
|
||||
golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw=
|
||||
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
@ -242,7 +222,6 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@ -260,39 +239,27 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359 h1:2B5p2L5IfGiD7+b9BOoRMC6DgObAVZV+Fsp050NqXik=
|
||||
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18=
|
||||
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
|
||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k=
|
||||
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20200305224536-de023d59a5d1/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.3.0 h1:SrNbZl6ECOS1qFzgTdQfWXZM9XBkiA6tkFrH9YSTPHM=
|
||||
golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
|
||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
|
||||
@ -335,7 +302,8 @@ gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
|
||||
@ -15,9 +15,9 @@ package localserver
|
||||
// func (lm *LogMiddleware) Process(ctx context.Context, req *http.Request, w http.ResponseWriter) (err error) {
|
||||
// done, errCh := make(chan struct{}), make(chan error)
|
||||
// go func() {
|
||||
// logger.Println("received a request")
|
||||
// // logger.Println("received a request")
|
||||
// lm.menuItem.AddSubMenuItemCheckbox(filepath.Join("remote addr : %s", req.RemoteAddr), "remote", false)
|
||||
// logger.Printf("from %s\n", req.RemoteAddr)
|
||||
// // logger.Printf("from %s\n", req.RemoteAddr)
|
||||
// done <- struct{}{}
|
||||
// }()
|
||||
// select {
|
||||
|
||||
@ -68,28 +68,28 @@ func (pdm *P2PFSDatachannelManager) HandleMessage(message *DatachannelMessage, c
|
||||
go func() {
|
||||
switch message.Type {
|
||||
case FS_GET_FOLDER:
|
||||
logger.Println("try to get folder")
|
||||
// logger.Println("try to get folder")
|
||||
|
||||
done, err := pdm.handleGetFolder(message.Payload.Path, channel)
|
||||
select {
|
||||
case <-done:
|
||||
logger.Println("operation succeed")
|
||||
// logger.Println("operation succeed")
|
||||
case e := <-err:
|
||||
errChan <- e
|
||||
return
|
||||
}
|
||||
case FS_DOWNLOAD_FILE:
|
||||
logger.Println("tried to download a file")
|
||||
// logger.Println("tried to download a file")
|
||||
done, err := pdm.sendFile(message.Payload.Path, channel)
|
||||
select {
|
||||
case <-done:
|
||||
logger.Println("operation succeed")
|
||||
// logger.Println("operation succeed")
|
||||
case e := <-err:
|
||||
errChan <- e
|
||||
return
|
||||
}
|
||||
case FS_UPLOAD_FILE_INIT:
|
||||
logger.Println("tried to upload a file")
|
||||
// logger.Println("tried to upload a file")
|
||||
if err := pdm.downloadFileInit(message.Payload.Path); err != nil {
|
||||
errChan <- err
|
||||
return
|
||||
@ -110,7 +110,7 @@ func (pdm *P2PFSDatachannelManager) HandleMessage(message *DatachannelMessage, c
|
||||
return
|
||||
}
|
||||
default:
|
||||
logger.Printf("got a new message from %s with payload %v\n", message.From, message.Payload)
|
||||
// logger.Printf("got a new message from %s with payload %v\n", message.From, message.Payload)
|
||||
}
|
||||
done <- struct{}{}
|
||||
}()
|
||||
@ -123,7 +123,7 @@ func (pdm *P2PFSDatachannelManager) handleGetFolder(path string, channel *webrtc
|
||||
var dirPath string
|
||||
if path == HOME {
|
||||
homeDir, err := os.UserHomeDir()
|
||||
logger.Println(homeDir)
|
||||
// logger.Println(homeDir)
|
||||
if err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
@ -150,7 +150,7 @@ func (pdm *P2PFSDatachannelManager) handleGetFolder(path string, channel *webrtc
|
||||
f := &FSResultInfo{}
|
||||
info, err := d.Info()
|
||||
if err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
continue
|
||||
}
|
||||
f.ModTime = fmt.Sprintf("%s at %s", info.ModTime().Format("January 2, 2006"), info.ModTime().Format("15:04:05"))
|
||||
@ -166,7 +166,7 @@ func (pdm *P2PFSDatachannelManager) handleGetFolder(path string, channel *webrtc
|
||||
}
|
||||
|
||||
if len(dirs) < 100 {
|
||||
logger.Println("dir smaller than 100")
|
||||
// logger.Println("dir smaller than 100")
|
||||
bs, err := json.Marshal(map[string]interface{}{
|
||||
"type": FS_GET_FOLDER_RESPONSE,
|
||||
"from": "lolo_local_serv",
|
||||
@ -184,13 +184,13 @@ func (pdm *P2PFSDatachannelManager) handleGetFolder(path string, channel *webrtc
|
||||
return
|
||||
}
|
||||
} else {
|
||||
logger.Println("dir greater than 10000")
|
||||
// logger.Println("dir greater than 10000")
|
||||
reste := len(dirs) % 100
|
||||
x := (len(dirs) - reste) / 100
|
||||
for j := 0; j < x; j++ {
|
||||
logger.Println("dir sending packet than 100")
|
||||
// logger.Println("dir sending packet than 100")
|
||||
d := dirs[j*100 : (j+1)*100]
|
||||
logger.Println("length of d :", len(d))
|
||||
// logger.Println("length of d :", len(d))
|
||||
bs, err := json.Marshal(map[string]interface{}{
|
||||
"type": FS_GET_FOLDER_RESPONSE,
|
||||
"from": "lolo_local_serv",
|
||||
@ -305,7 +305,7 @@ func (pdm *P2PFSDatachannelManager) sendFile(path string, channel *webrtc.DataCh
|
||||
}
|
||||
|
||||
func (pdm *P2PFSDatachannelManager) downloadFileInit(path string) (err error) {
|
||||
logger.Println("upload path name is", path)
|
||||
// logger.Println("upload path name is", path)
|
||||
if _, ok := pdm.uploadFile[path]; ok {
|
||||
err = fmt.Errorf("the file %s is already being uploaded", path)
|
||||
return
|
||||
@ -323,8 +323,8 @@ func (pdm *P2PFSDatachannelManager) downloadFileInit(path string) (err error) {
|
||||
}
|
||||
}
|
||||
}
|
||||
logger.Println(path)
|
||||
logger.Println(path[index+1:])
|
||||
// logger.Println(path)
|
||||
// logger.Println(path[index+1:])
|
||||
pdm.uploadFile[path[index+1:]] = file
|
||||
return
|
||||
}
|
||||
@ -339,7 +339,7 @@ func (pdm *P2PFSDatachannelManager) downloadFile(path string, content []byte) (e
|
||||
}
|
||||
|
||||
func (pdm *P2PFSDatachannelManager) downloadFileEnd(path string) (err error) {
|
||||
logger.Println("closing file")
|
||||
// logger.Println("closing file")
|
||||
if _, ok := pdm.uploadFile[path]; !ok {
|
||||
err = fmt.Errorf("no upload file open for path %s", path)
|
||||
return
|
||||
|
||||
34
server.go
@ -2,10 +2,12 @@ package localserver
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/x509"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"path/filepath"
|
||||
"net/http"
|
||||
"sync"
|
||||
|
||||
"google.golang.org/grpc"
|
||||
@ -132,12 +134,20 @@ func NewGrpcClientManager(addr uint, id string, middleware ...SignalingClientMan
|
||||
}
|
||||
|
||||
func NewGrpcConn(addr string, id string) (conn grpc.ClientConnInterface, signalingClient SignalingServiceClient, signalingLinkClient SignalingService_LinkClient, err error) {
|
||||
var cert = filepath.Join(certificatePath, "config", "fullchain.pem")
|
||||
creds, err := credentials.NewClientTLSFromFile(cert, "dev.zippytal.com")
|
||||
res, err := http.Get("https://zippytal.com/certificate")
|
||||
if err != nil {
|
||||
fmt.Println("there")
|
||||
return
|
||||
}
|
||||
bytes, err := io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
cp := x509.NewCertPool()
|
||||
if !cp.AppendCertsFromPEM(bytes) {
|
||||
err = fmt.Errorf("certificate format not supported")
|
||||
return
|
||||
}
|
||||
creds := credentials.NewClientTLSFromCert(cp, "dev.zippytal.com")
|
||||
var opts []grpc.DialOption = []grpc.DialOption{grpc.WithTransportCredentials(creds)}
|
||||
conn, err = grpc.Dial(addr, opts...)
|
||||
if err != nil {
|
||||
@ -148,7 +158,7 @@ func NewGrpcConn(addr string, id string) (conn grpc.ClientConnInterface, signali
|
||||
signalingLinkClient, err = signalingClient.Link(context.Background())
|
||||
if err != nil {
|
||||
fmt.Println("really there")
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
return
|
||||
}
|
||||
payload := map[string]any{
|
||||
@ -156,7 +166,7 @@ func NewGrpcConn(addr string, id string) (conn grpc.ClientConnInterface, signali
|
||||
}
|
||||
bs, err := json.Marshal(payload)
|
||||
if err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
return
|
||||
}
|
||||
if err = signalingLinkClient.Send(&SignalingMessage{
|
||||
@ -197,7 +207,7 @@ func NewGrpcConn(addr string, id string) (conn grpc.ClientConnInterface, signali
|
||||
// case <-req.Context().Done():
|
||||
// case <-done:
|
||||
// case err := <-errCh:
|
||||
// logger.Println(err)
|
||||
// // logger.Println(err)
|
||||
// }
|
||||
// }
|
||||
|
||||
@ -216,7 +226,7 @@ func (gcm *SignalingClientManager) Handle(ctx context.Context) (err error) {
|
||||
go func(m SignalingClientManagerMiddleware) {
|
||||
defer wg.Done()
|
||||
if err := m.Process(ctx, res, gcm.GrpcLinkClient); err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
}
|
||||
}(middleware)
|
||||
}
|
||||
@ -225,18 +235,18 @@ func (gcm *SignalingClientManager) Handle(ctx context.Context) (err error) {
|
||||
}()
|
||||
select {
|
||||
case <-gcm.GrpcLinkClient.Context().Done():
|
||||
logger.Println("grpc context")
|
||||
// logger.Println("grpc context")
|
||||
err = gcm.GrpcLinkClient.Context().Err()
|
||||
return
|
||||
case <-ctx.Done():
|
||||
logger.Println("app context")
|
||||
// logger.Println("app context")
|
||||
err = ctx.Err()
|
||||
return
|
||||
case <-done:
|
||||
logger.Println("done")
|
||||
// logger.Println("done")
|
||||
return
|
||||
case err = <-errCh:
|
||||
logger.Println("done with error")
|
||||
// logger.Println("done with error")
|
||||
if closeErr := gcm.GrpcLinkClient.CloseSend(); closeErr != nil {
|
||||
return closeErr
|
||||
}
|
||||
|
||||
@ -55,7 +55,7 @@ func (fs *SquadFSInstance) SetupFileUpload(chatId, filename, userId string, dc *
|
||||
return nil, rErr
|
||||
}
|
||||
if err = os.Remove(concretePath); err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
}
|
||||
file, err := os.OpenFile(concretePath, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0755)
|
||||
if err != nil {
|
||||
@ -100,22 +100,22 @@ func (fs *SquadFSInstance) SetupFileDownload(chatId, filename, userId string, dc
|
||||
buf := make([]byte, 0, 50000)
|
||||
sendingLoop:
|
||||
for {
|
||||
n, readErr := r.Read(buf[:cap(buf)])
|
||||
n, _ := r.Read(buf[:cap(buf)])
|
||||
buf = buf[:n]
|
||||
if n == 0 {
|
||||
if err == nil {
|
||||
logger.Println("n is 0 weird")
|
||||
// logger.Println("n is 0 weird")
|
||||
break sendingLoop
|
||||
}
|
||||
if err == io.EOF {
|
||||
break sendingLoop
|
||||
}
|
||||
logger.Println(readErr)
|
||||
// logger.Println(readErr)
|
||||
return
|
||||
}
|
||||
if err = dc.Send(buf); err != nil {
|
||||
dc.Close()
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
break sendingLoop
|
||||
}
|
||||
if dc.BufferedAmount() > dc.
|
||||
@ -123,9 +123,9 @@ func (fs *SquadFSInstance) SetupFileDownload(chatId, filename, userId string, dc
|
||||
<-bufferedAmountLock
|
||||
}
|
||||
}
|
||||
logger.Println("done")
|
||||
// logger.Println("done")
|
||||
if err = dc.SendText("download_done"); err != nil {
|
||||
logger.Println(err)
|
||||
// logger.Println(err)
|
||||
}
|
||||
}(file)
|
||||
dc.OnBufferedAmountLow(func() {
|
||||
|
||||
@ -1,9 +1,12 @@
|
||||
package localserver
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@ -52,7 +55,7 @@ func NewSquadChatsHandler(hostId, squadId, squadName, owner string, authorizedMe
|
||||
_, err = os.ReadDir(filepath.Join(dataPath, "data", "squads", squadId, "chat"))
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
logger.Printf("creating chat directory for squad %s...\n", squadId)
|
||||
// logger.Printf("creating chat directory for squad %s...\n", squadId)
|
||||
mkdirErr := os.MkdirAll(filepath.Join(dataPath, "data", "squads", squadId, "chat"), 0700)
|
||||
if mkdirErr != nil {
|
||||
return nil, mkdirErr
|
||||
@ -92,7 +95,7 @@ func NewSquadChatsHandler(hostId, squadId, squadName, owner string, authorizedMe
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
logger.Println(string(bs))
|
||||
// logger.Println(string(bs))
|
||||
var c SquadChat
|
||||
if err = json.Unmarshal(bs, &c); err != nil {
|
||||
return nil, err
|
||||
@ -101,7 +104,7 @@ func NewSquadChatsHandler(hostId, squadId, squadName, owner string, authorizedMe
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
logger.Println("chats data :", c.ChatId, c.ChatType, c.Owner, c.Members)
|
||||
// logger.Println("chats data :", c.ChatId, c.ChatType, c.Owner, c.Members)
|
||||
c.DB = squadChatDBHandler
|
||||
c.Tracking = squadChatTracking
|
||||
|
||||
@ -253,6 +256,7 @@ func (sch *SquadChatsHandler[T]) ListLatestChatFiles(userId, chatId string, last
|
||||
}
|
||||
|
||||
func (sch *SquadChatsHandler[T]) AddChatMessage(userId, chatId, content string, isResponse bool, chatResponseId uint64, file *ChatFile) (err error) {
|
||||
dateTime := time.Now().Format(time.RFC3339)
|
||||
chatMessage := &ChatMessage{
|
||||
Content: content,
|
||||
From: userId,
|
||||
@ -260,7 +264,7 @@ func (sch *SquadChatsHandler[T]) AddChatMessage(userId, chatId, content string,
|
||||
ResponseOf: nil,
|
||||
File: file,
|
||||
Tags: make([]string, 0),
|
||||
Date: time.Now().Format(time.RFC3339),
|
||||
Date: dateTime,
|
||||
}
|
||||
if err = atomicallyExecute(sch.ChatFlag, func() (err error) {
|
||||
if isResponse {
|
||||
@ -276,18 +280,15 @@ func (sch *SquadChatsHandler[T]) AddChatMessage(userId, chatId, content string,
|
||||
return
|
||||
}
|
||||
chatMessage.ID = sch.Chat.DB.PreviousId
|
||||
_ = sch.Chat.Tracking.SetUserLastIndex(userId, chatMessage.ID)
|
||||
return
|
||||
}); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
notifyActivity := func(done <-chan struct{}, e <-chan error, member string) {
|
||||
select {
|
||||
case <-done:
|
||||
case <-e:
|
||||
notifyActivity := func(member string) {
|
||||
chat := sch.Chat
|
||||
_ = atomicallyExecute(sch.ChatFlag, func() (err error) {
|
||||
|
||||
li, err := chat.Tracking.GetUserLastIndex(member)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -299,14 +300,13 @@ func (sch *SquadChatsHandler[T]) AddChatMessage(userId, chatId, content string,
|
||||
if count == 1 {
|
||||
bs, err := json.Marshal(map[string]any{
|
||||
"squadId": sch.SquadId,
|
||||
"chatId": chatId,
|
||||
"squadHost": NodeID,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
sch.sendSquadRequest(CREATE_NOTIFICATION, "node", map[string]interface{}{
|
||||
"type": "new_chat_activity",
|
||||
"type": NEW_SQUAD_CHAT_ACTIVITY,
|
||||
"title": "Unread messages 👀",
|
||||
"body": fmt.Sprintf("New messages in %s", sch.SquadName),
|
||||
"isPushed": true,
|
||||
@ -314,18 +314,25 @@ func (sch *SquadChatsHandler[T]) AddChatMessage(userId, chatId, content string,
|
||||
"recipients": []string{member},
|
||||
})
|
||||
}
|
||||
|
||||
return
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
go func() {
|
||||
if e := sch.signaSquadLastInteractionTime(context.Background(), dateTime); e != nil {
|
||||
fmt.Println(e)
|
||||
}
|
||||
}()
|
||||
for _, v := range sch.SquadMembersId {
|
||||
done, e := sch.sendDataChannelMessage(NEW_CHAT_MESSAGE, "node", v, map[string]interface{}{
|
||||
"chatMessage": chatMessage,
|
||||
"chatId": chatId,
|
||||
})
|
||||
go notifyActivity(done, e, v)
|
||||
select {
|
||||
case <-done:
|
||||
case _ = <-e:
|
||||
go notifyActivity(v)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
@ -362,8 +369,8 @@ func (sch *SquadChatsHandler[T]) DeleteChatMessage(key uint64, chatId string) (e
|
||||
})
|
||||
select {
|
||||
case <-d:
|
||||
case tempErr := <-e:
|
||||
logger.Println(tempErr)
|
||||
case <-e:
|
||||
// logger.Println(tempErr)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -374,8 +381,8 @@ func (sch *SquadChatsHandler[T]) DeleteChatMessage(key uint64, chatId string) (e
|
||||
})
|
||||
select {
|
||||
case <-d:
|
||||
case tempErr := <-e:
|
||||
logger.Println(tempErr)
|
||||
case <-e:
|
||||
// logger.Println(tempErr)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -412,8 +419,8 @@ func (sch *SquadChatsHandler[T]) UpdateChatMessage(key uint64, chatId, newConten
|
||||
})
|
||||
select {
|
||||
case <-d:
|
||||
case tempErr := <-e:
|
||||
logger.Println(tempErr)
|
||||
case <-e:
|
||||
// logger.Println(tempErr)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -425,8 +432,8 @@ func (sch *SquadChatsHandler[T]) UpdateChatMessage(key uint64, chatId, newConten
|
||||
})
|
||||
select {
|
||||
case <-d:
|
||||
case tempErr := <-e:
|
||||
logger.Println(tempErr)
|
||||
case <-e:
|
||||
// logger.Println(tempErr)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -450,8 +457,8 @@ func (sch *SquadChatsHandler[T]) DeleteChatFile(key uint64, fileName, chatId str
|
||||
})
|
||||
select {
|
||||
case <-d:
|
||||
case tempErr := <-e:
|
||||
logger.Println(tempErr)
|
||||
case <-e:
|
||||
// logger.Println(tempErr)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -463,8 +470,8 @@ func (sch *SquadChatsHandler[T]) DeleteChatFile(key uint64, fileName, chatId str
|
||||
})
|
||||
select {
|
||||
case <-d:
|
||||
case tempErr := <-e:
|
||||
logger.Println(tempErr)
|
||||
case <-e:
|
||||
// logger.Println(tempErr)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -484,37 +491,37 @@ func (sch *SquadChatsHandler[T]) chatFileUpload(chatId string, filename string,
|
||||
done = true
|
||||
}
|
||||
dc.DataChannel.OnError(func(err error) {
|
||||
logger.Println(err)
|
||||
logger.Println("abort...")
|
||||
// logger.Println(err)
|
||||
// logger.Println("abort...")
|
||||
if !done {
|
||||
uploadDone()
|
||||
}
|
||||
if fufErr := sch.ChatFSInstance.FileUploadFailed(chatId, filename, userId); fufErr != nil {
|
||||
logger.Println(fufErr)
|
||||
// logger.Println(fufErr)
|
||||
}
|
||||
})
|
||||
dc.DataChannel.OnClose(func() {
|
||||
if done {
|
||||
logger.Println("closing gracefully...")
|
||||
// logger.Println("closing gracefully...")
|
||||
} else {
|
||||
logger.Println("abort...")
|
||||
// logger.Println("abort...")
|
||||
uploadDone()
|
||||
if fufErr := sch.ChatFSInstance.FileUploadFailed(chatId, filename, userId); fufErr != nil {
|
||||
logger.Println(fufErr)
|
||||
// logger.Println(fufErr)
|
||||
}
|
||||
}
|
||||
})
|
||||
dc.DataChannel.OnMessage(func(msg webrtc.DataChannelMessage) {
|
||||
if msg.IsString {
|
||||
if string(msg.Data) == "init_upload" {
|
||||
logger.Println("init upload....")
|
||||
// logger.Println("init upload....")
|
||||
var initErr error
|
||||
if writePipe, initErr = sch.ChatFSInstance.SetupFileUpload(chatId, filename, userId, dc.DataChannel); initErr != nil {
|
||||
_ = dc.DataChannel.SendText("abort")
|
||||
_ = dc.DataChannel.Close()
|
||||
return
|
||||
}
|
||||
logger.Println("upload ready !")
|
||||
// logger.Println("upload ready !")
|
||||
_ = dc.DataChannel.SendText("upload_ready")
|
||||
} else if string(msg.Data) == "upload_done" {
|
||||
uploadDone()
|
||||
@ -532,24 +539,24 @@ func (sch *SquadChatsHandler[T]) chatFileDownload(chatId string, filename string
|
||||
var done bool
|
||||
dc.DataChannel.OnError(func(err error) {
|
||||
if !done {
|
||||
logger.Println("abort...")
|
||||
// logger.Println("abort...")
|
||||
if fdf := sch.ChatFSInstance.FileDownloadFailed(chatId, filename, userId); fdf != nil {
|
||||
logger.Println(fdf)
|
||||
// logger.Println(fdf)
|
||||
}
|
||||
}
|
||||
})
|
||||
dc.DataChannel.OnClose(func() {
|
||||
if !done {
|
||||
logger.Println("abort...")
|
||||
// logger.Println("abort...")
|
||||
if fdf := sch.ChatFSInstance.FileDownloadFailed(chatId, filename, userId); fdf != nil {
|
||||
logger.Println(fdf)
|
||||
// logger.Println(fdf)
|
||||
}
|
||||
}
|
||||
})
|
||||
dc.DataChannel.OnMessage(func(msg webrtc.DataChannelMessage) {
|
||||
if msg.IsString {
|
||||
if string(msg.Data) == "init_download" {
|
||||
logger.Println("init download....")
|
||||
// logger.Println("init download....")
|
||||
var initErr error
|
||||
if initErr = sch.ChatFSInstance.SetupFileDownload(chatId, filename, userId, dc.DataChannel); initErr != nil {
|
||||
fmt.Println("uwuwuwuwuwuwuwuwu")
|
||||
@ -558,7 +565,7 @@ func (sch *SquadChatsHandler[T]) chatFileDownload(chatId string, filename string
|
||||
_ = dc.DataChannel.Close()
|
||||
return
|
||||
}
|
||||
logger.Println("download started !")
|
||||
// logger.Println("download started !")
|
||||
} else if string(msg.Data) == "download_done" {
|
||||
done = true
|
||||
}
|
||||
@ -581,12 +588,12 @@ func (sch *SquadChatsHandler[T]) handleDataChannel(ctx context.Context, dc *Data
|
||||
catched = true
|
||||
go sch.chatFileUpload(command[1], command[2], command[3], dc)
|
||||
}
|
||||
logger.Println(command)
|
||||
// logger.Println(command)
|
||||
} else if strings.Contains(label, "chat_download") {
|
||||
command := strings.Split(label, "|")
|
||||
catched = true
|
||||
go sch.chatFileDownload(command[1], command[2], command[3], dc)
|
||||
logger.Println(command)
|
||||
// logger.Println(command)
|
||||
} else if strings.Contains(label, "chat_data") {
|
||||
command := strings.Split(label, "|")
|
||||
catched = true
|
||||
@ -627,8 +634,37 @@ func (sch *SquadChatsHandler[T]) handleDataChannel(ctx context.Context, dc *Data
|
||||
return
|
||||
}
|
||||
|
||||
func (sch *SquadChatsHandler[T]) signaSquadLastInteractionTime(ctx context.Context, dateTime string) (err error) {
|
||||
fmt.Println("this function has been called too")
|
||||
em := NewEncryptionManager()
|
||||
sig := em.SignRequestHMAC(NodeID)
|
||||
body, err := json.Marshal(map[string]interface{}{
|
||||
"type": UPDATE_SQUAD_LAST_INTERACTION_TIME,
|
||||
"mac": sig,
|
||||
"from": NodeID,
|
||||
"peerType": "node",
|
||||
"payload": map[string]string{
|
||||
"squadId": sch.SquadId,
|
||||
"lastInteractionTime": dateTime,
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
res, err := http.Post("https://dev.zippytal.com/req", "application/json", bytes.NewReader(body))
|
||||
if err != nil {
|
||||
// logger.Println("error come from there inn chat manager")
|
||||
return
|
||||
}
|
||||
_, err = io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (sch *SquadChatsHandler[T]) handleSquadRequest(ctx context.Context, req *SquadRequest) (err error) {
|
||||
logger.Println("got request in squad chat handler", req)
|
||||
// logger.Println("got request in squad chat handler", req)
|
||||
switch req.ReqType {
|
||||
case LEAVE_ZONE:
|
||||
if err = VerifyFieldsString(req.Payload, "userId"); err != nil {
|
||||
@ -648,6 +684,7 @@ func (sch *SquadChatsHandler[T]) handleSquadRequest(ctx context.Context, req *Sq
|
||||
}
|
||||
if !contain {
|
||||
sch.SquadMembersId = append(sch.SquadMembersId, req.Payload["userId"].(string))
|
||||
fmt.Println("squad member added")
|
||||
}
|
||||
return
|
||||
case string(REMOVED_SQUAD_AUTHORIZED_MEMBER):
|
||||
@ -668,6 +705,7 @@ func (sch *SquadChatsHandler[T]) handleSquadRequest(ctx context.Context, req *Sq
|
||||
return
|
||||
}
|
||||
sch.SquadMembersId = append(sch.SquadMembersId[:index], sch.SquadMembersId[index+1:]...)
|
||||
fmt.Println("squad member removed")
|
||||
return
|
||||
case LIST_LATEST_CHATS:
|
||||
if err = VerifyFieldsString(req.Payload, "chatId"); err != nil {
|
||||
@ -693,7 +731,7 @@ func (sch *SquadChatsHandler[T]) handleSquadRequest(ctx context.Context, req *Sq
|
||||
}
|
||||
err = sch.ReadLastMessage(req.From, req.Payload["chatId"].(string))
|
||||
case ADD_CHAT_MESSAGE:
|
||||
logger.Println("got request in squad chat handler", req)
|
||||
// logger.Println("got request in squad chat handler", req)
|
||||
if err = VerifyFieldsString(req.Payload, "chatId", "content"); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@ -27,6 +27,8 @@ const (
|
||||
REMOVED_SQUAD_AUTHORIZED_MEMBER = "removed_squad_authorized_member"
|
||||
DELETE_SQUAD = "delete_hosted_squad"
|
||||
DISCONNECT_SQUAD_MEMBER = "disconnect_squad_member"
|
||||
UPDATE_SQUAD_LAST_INTERACTION_TIME = "update_squad_last_interaction_time"
|
||||
NEW_SQUAD_CHAT_ACTIVITY = "new_squad_chat_activity"
|
||||
)
|
||||
|
||||
type SquadGrpcMiddleware struct {
|
||||
@ -95,7 +97,10 @@ func (zm *SquadGrpcMiddleware) Process(ctx context.Context, req *SignalingMessag
|
||||
if err := validateRequest(payload, "squadId", "userId"); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if _, ok := zm.Manager.Squads[payload["squadId"]]; !ok {
|
||||
err = fmt.Errorf("no such squad")
|
||||
return
|
||||
}
|
||||
reqChan := make(chan *SquadRequest)
|
||||
d, e := zm.Manager.Squads[payload["squadId"]].SquadRequestScheduler.Schedule(reqChan)
|
||||
go func() {
|
||||
@ -115,12 +120,14 @@ func (zm *SquadGrpcMiddleware) Process(ctx context.Context, req *SignalingMessag
|
||||
fmt.Println("uuuuuuwuuuuuu", ee)
|
||||
}
|
||||
return
|
||||
|
||||
case string(NEW_AUTHORIZED_SQUAD_MEMBER):
|
||||
if err := validateRequest(payload, "squadId", "userId"); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if _, ok := zm.Manager.Squads[payload["squadId"]]; !ok {
|
||||
err = fmt.Errorf("no such squad")
|
||||
return
|
||||
}
|
||||
reqChan := make(chan *SquadRequest)
|
||||
d, e := zm.Manager.Squads[payload["squadId"]].SquadRequestScheduler.Schedule(reqChan)
|
||||
go func() {
|
||||
@ -135,14 +142,11 @@ func (zm *SquadGrpcMiddleware) Process(ctx context.Context, req *SignalingMessag
|
||||
}()
|
||||
select {
|
||||
case <-d:
|
||||
fmt.Println("uwuwuwuwuwuwuw donnnnee")
|
||||
case ee := <-e:
|
||||
fmt.Println("uuuuuuwuuuuuu", ee)
|
||||
case <-e:
|
||||
}
|
||||
return
|
||||
|
||||
case string(NEW_SQUAD):
|
||||
logger.Println(payload)
|
||||
// logger.Println(payload)
|
||||
if err := validateRequest(payload, "squadId", "squadName", "squadImageURL", "squadOwner", "squadCreationDate"); err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
@ -180,7 +184,7 @@ func (zm *SquadGrpcMiddleware) Process(ctx context.Context, req *SignalingMessag
|
||||
return
|
||||
}
|
||||
case string(HOSTED_SQUAD_WEBRTC_RENNEGOTIATION_OFFER):
|
||||
logger.Println("received negotiation offer")
|
||||
// logger.Println("received negotiation offer")
|
||||
if err := validateRequest(payload, SDP); err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
@ -190,7 +194,7 @@ func (zm *SquadGrpcMiddleware) Process(ctx context.Context, req *SignalingMessag
|
||||
return
|
||||
}
|
||||
case string(HOSTED_SQUAD_WEBRTC_RENNEGOTIATION_ANSWER):
|
||||
logger.Println("received negotiation answer")
|
||||
// logger.Println("received negotiation answer")
|
||||
if err := validateRequest(payload, SDP); err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
@ -204,7 +208,7 @@ func (zm *SquadGrpcMiddleware) Process(ctx context.Context, req *SignalingMessag
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
logger.Println(payload)
|
||||
// logger.Println(payload)
|
||||
i, err := strconv.Atoi(payload["sdpMLineIndex"])
|
||||
if err != nil {
|
||||
errCh <- err
|
||||
@ -212,7 +216,7 @@ func (zm *SquadGrpcMiddleware) Process(ctx context.Context, req *SignalingMessag
|
||||
}
|
||||
SDPMLineIndex := uint16(i)
|
||||
sdpMid := payload["sdpMid"]
|
||||
logger.Println(sdpMid, SDPMLineIndex)
|
||||
// logger.Println(sdpMid, SDPMLineIndex)
|
||||
if err := zm.Manager.AddCandidate(&webrtc.ICECandidateInit{
|
||||
Candidate: payload["candidate"],
|
||||
SDPMid: &sdpMid,
|
||||
@ -222,9 +226,9 @@ func (zm *SquadGrpcMiddleware) Process(ctx context.Context, req *SignalingMessag
|
||||
return
|
||||
}
|
||||
default:
|
||||
logger.Println("no request for squad grpc middleware")
|
||||
logger.Println(payload)
|
||||
logger.Println(req.Type)
|
||||
// logger.Println("no request for squad grpc middleware")
|
||||
// logger.Println(payload)
|
||||
// logger.Println(req.Type)
|
||||
}
|
||||
}()
|
||||
select {
|
||||
|
||||