diff options
Diffstat (limited to 'chat_request.h')
-rw-r--r-- | chat_request.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/chat_request.h b/chat_request.h index 337b822..d57d7e1 100644 --- a/chat_request.h +++ b/chat_request.h @@ -5,10 +5,12 @@ * Send chat request */ -void send_chat_request(char * username) { + +void *send_chat_request(void * arg) { int i; char ip[16]; + char * username = (char *) arg; pthread_mutex_lock(&peer_table_lock); @@ -49,6 +51,8 @@ void send_chat_request(char * username) { strcpy(out_buf, "SESREQ"); send(client_s, out_buf, strlen(out_buf), 0); + + retcode = recv(client_s, in_buf, sizeof(in_buf), 0); if (strcmp(in_buf, "SESANS:Y") == 0) { @@ -57,6 +61,9 @@ void send_chat_request(char * username) { // set my in_chat flag strcpy(in_chat, "Y"); + pthread_t recv_thread; + pthread_create(&recv_thread, NULL, receive_chat_messages, NULL); + // set the user prompt strcpy(prompt, "chat>"); @@ -65,4 +72,17 @@ void send_chat_request(char * username) { } return; +} + +void start_chat_request_thread(char * user) { + + pthread_create(&requester_t, NULL, send_chat_request, (void *)user); + + sleep(10); + + printf("Request timed out. \n"); + + pthread_cancel(requester_t); + + return; }
\ No newline at end of file |