aboutsummaryrefslogtreecommitdiff
path: root/chat_request.h
diff options
context:
space:
mode:
authorBen Burwell <bburwell1@gmail.com>2013-05-01 12:20:30 -0400
committerBen Burwell <bburwell1@gmail.com>2013-05-01 12:20:30 -0400
commit79230604a20409ab12c2cb9620df81078ff7fae2 (patch)
tree23fa78c1ccb4bae1a7d67102c84b62d369a7e4be /chat_request.h
parent0322fefa7f5f465909ccd95c85a088d9cf83812e (diff)
Better?
Diffstat (limited to 'chat_request.h')
-rw-r--r--chat_request.h22
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