Compare commits
3 Commits
ad70f43da9
...
868aaccf28
Author | SHA1 | Date | |
---|---|---|---|
868aaccf28 | |||
97d1c9153b | |||
2c46754cb4 |
3
Makefile
3
Makefile
@@ -1,5 +1,5 @@
|
||||
EXEC_FILE=main
|
||||
TARGETS=$(EXEC_FILE).o message.o user.o message_helpers.o file_helpers.o
|
||||
TARGETS=$(EXEC_FILE).o message.o user.o message_helpers.o file_helpers.o stack.o
|
||||
CFLAGS=
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ message.o: message.c
|
||||
user.o: user.c
|
||||
message_helpers.o: message_helpers.c
|
||||
file_helpers.o: file_helpers.c
|
||||
stack.o: stack.c
|
||||
$(TARGETS):
|
||||
gcc $(CFLAGS) -c -o $@ $^
|
||||
|
||||
|
13
main.c
13
main.c
@@ -20,6 +20,8 @@
|
||||
User** create_user_list(char* filename);
|
||||
void sigint_handler(int dummy);
|
||||
User* fetch_user(char* username);
|
||||
int user_to_index(User* user);
|
||||
bool user_equals(User* this, User* other);
|
||||
|
||||
User** users;
|
||||
int num_users;
|
||||
@@ -120,10 +122,17 @@ int main() {
|
||||
}
|
||||
|
||||
printf("Your message is: %s\n",message_string);
|
||||
Message message = new_message(message_string,from_user[i],to_user[i]);
|
||||
|
||||
if (user_to_index(to_user[i]) < 0) {
|
||||
printf("Recipient user does not exist!\n");
|
||||
return -20;
|
||||
}
|
||||
|
||||
Message* message = new_message(message_string,from_user[i],to_user[i]);
|
||||
stack_push( message_stack[user_to_index(to_user[i])],message );
|
||||
|
||||
printf("Message has been pushed onto stack for %s\n",to_user[i]->username);
|
||||
|
||||
|
||||
|
||||
close(conn_sockets[i]);
|
||||
@@ -205,7 +214,7 @@ User* fetch_user(char* username) {
|
||||
}
|
||||
|
||||
int user_to_index(User* user) {
|
||||
int index = 0;
|
||||
int index = -1;
|
||||
for (int i=0;i < num_users; i++) {
|
||||
if (user_equals(users[i],user) == true) {
|
||||
index = i;
|
||||
|
22
message.c
22
message.c
@@ -4,14 +4,22 @@
|
||||
#include <time.h>
|
||||
#include "message.h"
|
||||
|
||||
Message new_message(char* string, User from, User to) {
|
||||
Message new_message;
|
||||
Message* new_message(char* string, User* from, User* to) {
|
||||
Message* new_message;
|
||||
|
||||
new_message.text = malloc((strlen(string)+1)*sizeof(char));
|
||||
strcpy(new_message.text,string);
|
||||
new_message = malloc(sizeof(Message));
|
||||
new_message->text = malloc((strlen(string)+1)*sizeof(char));
|
||||
strcpy(new_message->text,string);
|
||||
|
||||
new_message.sender = from;
|
||||
new_message.recipient = to;
|
||||
new_message->sender = malloc(sizeof(User));
|
||||
new_message->recipient = malloc(sizeof(User));
|
||||
|
||||
memcpy(new_message->sender, from, sizeof(User));
|
||||
memcpy(new_message->recipient, to, sizeof(User));
|
||||
|
||||
|
||||
// *(new_message->sender) = *from;
|
||||
// *(new_message->recipient) = *to;
|
||||
|
||||
time_t rawtime;
|
||||
struct tm timeinfo;
|
||||
@@ -19,7 +27,7 @@ Message new_message(char* string, User from, User to) {
|
||||
time(&rawtime);
|
||||
timeinfo = *localtime(&rawtime);
|
||||
|
||||
new_message.timeinfo = timeinfo;
|
||||
new_message->timeinfo = timeinfo;
|
||||
|
||||
return new_message;
|
||||
|
||||
|
@@ -11,10 +11,10 @@ typedef struct Message_s Message;
|
||||
struct Message_s {
|
||||
char* text;
|
||||
struct tm timeinfo;
|
||||
User sender;
|
||||
User recipient;
|
||||
User* sender;
|
||||
User* recipient;
|
||||
};
|
||||
|
||||
Message new_message(char* text,User from,User to);
|
||||
Message* new_message(char* text,User* from,User* to);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user