From 1eb29b8c675a105d768eed5f236bc45866d08c48 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?JJ=C3=A9r=C3=A9my=20Martinoty?=
 <jeremy.martinoty@etu.hesge.ch>
Date: Wed, 15 Dec 2021 11:25:11 +0100
Subject: [PATCH] Message have a Contenu in place of simple key, add right
 adress for a content ;)

---
 server/server.go | 39 ++++++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 19 deletions(-)

diff --git a/server/server.go b/server/server.go
index d45c479..8209a3a 100644
--- a/server/server.go
+++ b/server/server.go
@@ -13,7 +13,7 @@ import (
 
 type Message struct {	
 	Id    uint64
-	Key   int
+	Content Contenu
 	Type_ string
 }
 
@@ -32,7 +32,7 @@ type Contenu struct {
 var (
 	thisnode Node
 	port     string
-	//Liste des requetes deja vues/effectués Pourquoi int ?
+	//Liste des requetes deja vues/effectués
 	requests []uint64
 	msg_count_uuid uint64 //valeur dont on commencera a compter les id
 )
@@ -40,20 +40,22 @@ var (
 func fillContents() {
 	println(thisnode.MyKey)
 	for _, key := range thisnode.MyKey {
-		addContent(key, thisnode.Address)
+		myContent := createContenu(key,thisnode.Address)
+		addContent(myContent)
 		fmt.Println(key)
 	}
 	for _, neighbour := range thisnode.Neighbours {
-		for _, content := range neighbour.MyKey {
-			addContent(content, neighbour.Address)
+		for _, key := range neighbour.MyKey {
+			hisContent := createContenu(key,neighbour.Address)
+			addContent(hisContent)
 		}
 	}
 }
 
-func createMessage(id uint64, key int, _type string) Message {
+func createMessage(id uint64, content Contenu, _type string) Message {
 	return Message{
 		Id:    id,
-		Key:   key,
+		Content: content,
 		Type_: _type,
 	}
 }
@@ -136,17 +138,18 @@ func handleRequest(msg Message, conn net.Conn) {
 	sender := conn.RemoteAddr().String()
 	requests = append(requests, msg.Id)
 	if !hasAlreadySeen(msg) {
-		if hasKey(msg.Key) {
-			sendMessage(createMessage(msg.Id, msg.Key, "POSITIVE"),sender)
+		if hasKey(msg.Content.Key) {
+			msg.Content.Origin = thisnode.Address
+			sendMessage(createMessage(msg.Id, msg.Content, "POSITIVE"),sender)
 		} else {
 			if sendToClosestWhilePositive(msg,sender) == true {
-				sendMessage(createMessage(msg.Id, msg.Key, "POSITIVE"),sender)
+				sendMessage(createMessage(msg.Id, msg.Content, "POSITIVE"),sender)
 			} else {
-				sendMessage(createMessage(msg.Id, msg.Key, "NEGATIVE"),sender)
+				sendMessage(createMessage(msg.Id, msg.Content, "NEGATIVE"),sender)
 			}
 		}
 	} else {
-		sendMessage(createMessage(msg.Id, msg.Key, "NEGATIVE"),sender)
+		sendMessage(createMessage(msg.Id, msg.Content, "NEGATIVE"),sender)
 	}
 }
 
@@ -155,12 +158,10 @@ func sortContents() {
 		return thisnode.Contents[p].Key < thisnode.Contents[q].Key })
 }
 
-func addContent(key int, ownerIp string) {
-	newcontent := createContenu(key,ownerIp)
-	thisnode.Contents = append(thisnode.Contents,newcontent)
+func addContent(content Contenu) {
+	thisnode.Contents = append(thisnode.Contents,content)
 }
 
-
 func hasKey(key int) bool {
 	for _, element := range thisnode.Contents {
 		if key == element.Key {
@@ -170,10 +171,9 @@ func hasKey(key int) bool {
 	return false
 }
 
-
 func handleReply(msg Message, src string) bool{
 	if msg.Type_ == "POSITIVE" {
-		addContent(msg.Key,src)
+		addContent(msg.Content)
 		return true
 	}
 	if msg.Type_ == "NEGATIVE" {
@@ -227,7 +227,8 @@ func main() {
 			fmt.Println(err)
 			os.Exit(2)
 		}
-		msg := createMessage(msg_count_uuid, key, "REQUEST")
+		contentToFind := createContenu(key,"")
+		msg := createMessage(msg_count_uuid, contentToFind, "REQUEST")
 		has := sendToClosestWhilePositive(msg,thisnode.Address)
 		println(has)
 
-- 
GitLab