Author: grothoff Date: 2008-02-21 09:20:35 -0700 (Thu, 21 Feb 2008) New Revision: 6404
Modified: GNUnet/src/applications/chat/chat.c GNUnet/src/applications/chat/clientapi.c Log: must not have these Modified: GNUnet/src/applications/chat/chat.c =================================================================== --- GNUnet/src/applications/chat/chat.c 2008-02-21 16:05:30 UTC (rev 6403) +++ GNUnet/src/applications/chat/chat.c 2008-02-21 16:20:35 UTC (rev 6404) @@ -37,13 +37,18 @@ #define MAX_LAST_MESSAGES 12 +/* P2P */ static unsigned int clientCount; static struct GNUNET_HashCode **lastMsgs; static int ringIndex; + static struct GNUNET_Mutex *chatMutex; + static struct GNUNET_GE_Context *ectx; + static struct GNUNET_GC_Configuration *cfg; +/* P2P-ish */ struct GNUNET_Server_Chat_Room { @@ -62,8 +67,10 @@ }; + /* YUCK - USE PTR! */ static struct GNUNET_CS_chat_client client_list; +/* P2P */ static void markSeen (GNUNET_HashCode * hc) { @@ -79,12 +86,14 @@ unsigned int delay; } BCC; +/* P2P */ static void bccHelper (const GNUNET_PeerIdentity * peer, BCC * bcc) { coreAPI->unicast (peer, bcc->message, bcc->prio, bcc->delay); } +/* P2P */ static void broadcastToConnected (const GNUNET_MessageHeader * message, unsigned int prio, unsigned int delay) @@ -121,6 +130,7 @@ if (ntohs (cmsg->header.size) < sizeof (CS_chat_MESSAGE)) { + /* TOO VERBOSE */ GNUNET_GE_LOG (ectx, GNUNET_GE_WARNING | GNUNET_GE_BULK | GNUNET_GE_USER, _("Message received from client is invalid\n")); @@ -138,6 +148,7 @@ message_content = GNUNET_malloc (msg_len + 1); room_name = GNUNET_malloc (room_name_len + 1); + /* BUFFER OVERFLOWS! */ memcpy (nick, &cmsg->nick[0], nick_len); memcpy (message_content, &cmsg->nick[nick_len], msg_len); memcpy (room_name, &cmsg->nick[nick_len + msg_len], room_name_len); @@ -150,7 +161,7 @@ GNUNET_GE_LOG (ectx, GNUNET_GE_WARNING | GNUNET_GE_BULK | GNUNET_GE_USER, - "Received chat message from client.\n Message is %s\n from %s\n intended for room %s\n", + "Received chat message from client.\n Message is `%s'\n from `%s'\n intended for room `%s'\n", message_content, nick, room_name); GNUNET_hash (cmsg, header_size, &hc); @@ -178,6 +189,7 @@ } + /* THIS IS P2P STUFF -- MAYBE DEFINE AN INTERNAL P2P API (for bonii)? */ markSeen (&hc); broadcastToConnected (message, 5, 1); @@ -191,6 +203,7 @@ return GNUNET_OK; } +/* FUNCTION NAME! */ static int csHandleChatRequest (struct GNUNET_ClientHandle *client, const GNUNET_MessageHeader * message) @@ -216,6 +229,7 @@ if (ntohs (cmsg->header.size) < sizeof (CS_chat_JOIN_MESSAGE)) { + /* TOO VERBOSE */ GNUNET_GE_LOG (ectx, GNUNET_GE_WARNING | GNUNET_GE_BULK | GNUNET_GE_USER, _ @@ -235,13 +249,14 @@ client_key = GNUNET_malloc (sizeof (GNUNET_RSA_PublicKey)); room_name = GNUNET_malloc (room_name_len + 1); + /* BUFFER OVERFLOWS */ memcpy (nick, &cmsg->nick[0], nick_len); memcpy (client_key, &cmsg->nick[nick_len], pubkey_len); memcpy (room_name, &cmsg->nick[nick_len + pubkey_len], room_name_len); GNUNET_GE_LOG (ectx, GNUNET_GE_DEBUG | GNUNET_GE_REQUEST | GNUNET_GE_DEVELOPER, - "Received join chat room message from client.\n From %s\n for room %s\n", + "Received join chat room message from client.\n From `%s'\n for room `%s'\n", nick, room_name); nick[nick_len] = '\0'; @@ -312,6 +327,7 @@ return GNUNET_OK; } +/* WHY HAVE A LEAVE REQUEST AT ALL? => CLIENT EXIT HANDLER */ static int csHandleChatLeaveRequest (struct GNUNET_ClientHandle *client, const GNUNET_MessageHeader * message) @@ -333,10 +349,11 @@ GNUNET_mutex_lock (chatMutex); /*TODO: delete client context on the server */ - + /* YUCK */ tempClient = &client_list; while ((tempClient->next != NULL) && (tempClient->client != NULL)) { + /* YUCK YUCK! */ if (memcmp (tempClient->client, client, sizeof (client)) == 0) { fprintf (stderr, "Client handle matches, remove it!\n"); Modified: GNUnet/src/applications/chat/clientapi.c =================================================================== --- GNUnet/src/applications/chat/clientapi.c 2008-02-21 16:05:30 UTC (rev 6403) +++ GNUnet/src/applications/chat/clientapi.c 2008-02-21 16:20:35 UTC (rev 6404) @@ -32,6 +32,7 @@ #include "chat.h" #define MAX_RETRIES 5 + /** * Handle for a (joined) chat room. */ @@ -65,13 +66,6 @@ }; -static void * -thread_main (void *rcls) -{ - struct GNUNET_CHAT_Room *room = rcls; - return NULL; -} - /** * Listen for incoming messages on this chat room. When received, call the client callback. * Also, support servers going away/coming back (i.e. rejoin chat room to keep server state up to date)... @@ -79,27 +73,27 @@ static void * poll_thread (void *rcls) { - int ret = GNUNET_OK; - struct GNUNET_CHAT_Room *room = (struct GNUNET_CHAT_Room *) rcls; + struct GNUNET_CHAT_Room *room = rcls; + int ret; GNUNET_MessageHeader *reply; - CS_chat_MESSAGE *received_msg; - unsigned int size; unsigned int nick_len; unsigned int msg_len; unsigned int room_name_len; unsigned int retries; - char *nick; char *message_content; char *room_name; + ret = GNUNET_OK; + /* CHECK FOR SHUTDOWN! */ while (ret == GNUNET_OK) { if (GNUNET_client_connection_test_connected (room->sock) == GNUNET_NO) { - retries = 0; + /* FIXME - why limit retries? */ + retries = 0; while ((GNUNET_client_connection_test_connected (room->sock) == GNUNET_NO) && (retries < MAX_RETRIES)) { @@ -111,7 +105,7 @@ if (GNUNET_OK != GNUNET_client_connection_read (room->sock, &reply)) { - + /* NO BREAK! */ break; } @@ -126,12 +120,14 @@ nick_len = ntohl (received_msg->nick_len); msg_len = ntohl (received_msg->msg_len); + /* NO NEED TO SEND ROOM! */ room_name_len = ntohl (received_msg->room_name_len); nick = GNUNET_malloc (nick_len + 1); message_content = GNUNET_malloc (msg_len + 1); room_name = GNUNET_malloc (room_name_len + 1); + /* BUFFER OVERFLOWS! */ memcpy (nick, &received_msg->nick[0], nick_len); memcpy (message_content, &received_msg->nick[nick_len], msg_len); memcpy (room_name, &received_msg->nick[nick_len + msg_len], @@ -149,7 +145,7 @@ } } - + /* RETURN NULL? (void*) ret is TERRIBLE!!! */ return (void *) ret; } @@ -236,8 +232,10 @@ if (GNUNET_SYSERR == GNUNET_client_connection_write (sock, &join_msg->header)) { + /* ALREADY LOGGED */ fprintf (stderr, _("Error writing to socket.\n")); ret = GNUNET_SYSERR; + /* WHY CONTINUE HERE? => CREATES BAD THREAD! */ } GNUNET_free (join_msg); @@ -286,7 +284,8 @@ csHdr.size = htons (sizeof (csHdr)); /*If this fails we don't care, this means the socket is already gone and the server should know how to deal with that! */ - /*We may not even need this message at all, just let the server handle a dead socket */ + /*We may not even need this message at all, just let the server handle a dead socket */ + /* RIGHT, SO WHY HAVE IT? */ GNUNET_GE_ASSERT (NULL, GNUNET_client_connection_write (chat_room->sock, &csHdr) == GNUNET_OK); _______________________________________________ GNUnet-SVN mailing list GNUnet-SVN@gnu.org http://lists.gnu.org/mailman/listinfo/gnunet-svn