Compare commits

...

3 Commits

3 changed files with 33 additions and 9 deletions

View File

@@ -1,13 +1,12 @@
EXEC_FILE=main
TARGETS=$(EXEC_FILE).o message.o user.o message_helpers.o file_helpers.o
CFLAGS=
all: $(EXEC_FILE)
$(EXEC_FILE): $(TARGETS)
gcc -o $(EXEC_FILE) $^ -leasysock
gcc $(CFLAGS) -o $(EXEC_FILE) $^ -leasysock
$(EXEC_FILE).o: $(EXEC_FILE).c
@@ -15,13 +14,19 @@ message.o: message.c
user.o: user.c
message_helpers.o: message_helpers.c
file_helpers.o: file_helpers.c
$(TARGETS):
gcc -c -o $@ $^
gcc $(CFLAGS) -c -o $@ $^
.PHONY: debug
debug: CFLAGS+=-g
debug: $(EXEC_FILE)
.PHONY: allwarn
allwarn: CFLAGS+=-Wall -Wextra -pedantic
allwarn: $(EXEC_FILE)
.PHONY: clean
clean:
rm $(TARGETS)

23
main.c
View File

@@ -4,6 +4,7 @@
#include <stdbool.h>
#include <assert.h>
#include <unistd.h>
#include <signal.h>
#include "message.h"
#include "user.h"
@@ -14,11 +15,15 @@
#define BUFFER_SIZE 10000
#define MAX_CONNECTIONS 100
int num_of_lines(char* filename);
char* file_to_string(char* filename);
User* create_user_list(char* filename);
void sigint_handler(int dummy);
bool stop_running = false;
int main() {
signal(SIGINT,sigint_handler);
struct sockaddr temp_addr;
socklen_t temp_addrlen;
@@ -73,6 +78,9 @@ int main() {
if (check_ip_ver(dest_address[i]) == -1) {
printf("Invalid address: %s\n",dest_address[i]);
exit(242);
} else {
printf("Valid IPv%d addres: %s\n",check_ip_ver(dest_address[i]),dest_address[i]);
exit(0);
}
}
@@ -91,6 +99,13 @@ int main() {
}
if (stop_running) {
for (int i=0; i< MAX_CONNECTIONS; i++) {
close(conn_sockets[i]);
}
exit(130);
}
}
@@ -125,3 +140,7 @@ User* create_user_list(char* filename) {
return users;
}
void sigint_handler(int dummy) {
stop_running = true;
}

View File

@@ -4,9 +4,9 @@
char* fetch_address(char* message) {
char* token = malloc (sizeof(char) * strlen(message));
token = strtok(message," \n");
token = strtok(message," \r\n");
if (strcmp(token,"TO:") == 0) {
token = strtok(NULL," \n");
token = strtok(NULL," \r\n");
} else {
return NULL;
}