Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
d8411c3
commit test new branch
lucruzz Sep 16, 2021
2d2ed42
Connecting n clients to proxy
lucruzz Sep 16, 2021
4e5696d
including testing url/pages
lucruzz Sep 18, 2021
0aa3ca0
included removing files on clients' folder
lucruzz Sep 18, 2021
5a97a0d
freeing memory on creating threads
lucruzz Sep 18, 2021
62b976d
problem on client search function
lucruzz Sep 18, 2021
ae3c865
still with problem on search function
lucruzz Sep 18, 2021
a58f450
going well on multiples sites > still coding
lucruzz Sep 25, 2021
cde5cb9
Update README.md
lucruzz Sep 26, 2021
aa48a66
Update README.md
lucruzz Sep 26, 2021
0ab07bd
Update README.md
lucruzz Sep 28, 2021
5d23249
errors wasnot on code, but in valgrind use
lucruzz Sep 28, 2021
2aaf348
multiples sockets and dealing with search function multithreads
lucruzz Oct 2, 2021
d205b3e
processing string with "http://" on search function
lucruzz Oct 6, 2021
0bd1aee
Update functions
lucruzz Oct 6, 2021
67ac1bf
processing new sockets for each search argument on multithreading enviro
lucruzz Oct 6, 2021
a9d2c99
writing the makefile a better way
lucruzz Oct 7, 2021
c76b988
proxy searching for site in parallel
lucruzz Oct 7, 2021
1d3e17f
sending page to client in parallel
lucruzz Oct 7, 2021
725c13d
problem with socket solved:send data to client at the same time to proxy
lucruzz Oct 8, 2021
3ff0bf5
just updating readme
lucruzz Oct 9, 2021
48835dc
Update README.md
lucruzz Oct 10, 2021
31e0cf7
Update README.md
lucruzz Oct 10, 2021
bfdcf33
Update README.md
lucruzz Oct 10, 2021
72b728c
Checking updates... Something is going wrong...
lucruzz Oct 11, 2021
d64f85b
using another strategy to deal with multithread search function
lucruzz Oct 14, 2021
65a8f38
receiving bytes on proxy and sending directly to client
lucruzz Oct 18, 2021
12ec46f
no errors detected
lucruzz Oct 20, 2021
e2108d6
updating scripts, removing unnecessary comments
lucruzz Oct 24, 2021
7b4e3bc
updates
lucruzz Oct 30, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 47 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,19 +1,54 @@
all: bin/client bin/server
CC=gcc
CC_FLAGS_OBJ=gcc -o
CFLAGS=-c -g -pthread -D_GNU_SOURCE

bin/client: obj/client.o obj/history.o obj/argsList.o obj/communication.o obj/directories.o
gcc -o bin/client obj/client.o obj/history.o obj/argsList.o obj/communication.o obj/directories.o
SOURCE_DIR=src
OBJ_DIR=obj
BIN_DIR=bin

obj/client.o: src/client.c src/history.c src/argsList.c src/communication.c
gcc -c -g src/client.c src/history.c src/argsList.c src/communication.c src/directories.c
mv *.o obj/
HTTP_SCRIPT=$(SOURCE_DIR)/http2.c
HTTP_OBJ=$(OBJ_DIR)/http2.o

bin/server: obj/server.o obj/hashServer.o obj/communication.o obj/http.o obj/directories.o
gcc -o bin/server obj/server.o obj/hashServer.o obj/communication.o obj/http.o obj/directories.o
SERVER_SCRIPT=$(SOURCE_DIR)/server.c
SERVER_OBJ=$(OBJ_DIR)/server.o
SERVER_BIN=$(BIN_DIR)/server

obj/server.o: src/server.c src/hashServer.c src/communication.c src/http.c src/directories.c
gcc -c -g -D_GNU_SOURCE src/server.c src/hashServer.c src/communication.c src/http.c src/directories.c
mv *.o obj/
CLIENT_SCRIPT=$(SOURCE_DIR)/client.c
CLIENT_OBJ=$(OBJ_DIR)/client.o
CLIENT_BIN=$(BIN_DIR)/client

HISTORY_SCRIPT=$(SOURCE_DIR)/history.c
HISTORY_OBJ=$(OBJ_DIR)/history.o

LIST_SCRIPT=$(SOURCE_DIR)/argsList.c
LIST_OBJ=$(OBJ_DIR)/argsList.o

COMM_SCRIPT=$(SOURCE_DIR)/communication.c
COMM_OBJ=$(OBJ_DIR)/communication.o

HASH_SCRIPT=$(SOURCE_DIR)/hashServer2.c
HASH_OBJ=$(OBJ_DIR)/hashServer2.o

DIREC_SCRIPT=$(SOURCE_DIR)/directories.c
DIREC_OBJ=$(OBJ_DIR)/directories.o


all: $(CLIENT_BIN) $(SERVER_BIN)

bin/client: $(CLIENT_OBJ) $(HISTORY_OBJ) $(LIST_OBJ) $(COMM_OBJ) $(DIREC_OBJ)
$(CC_FLAGS_OBJ) $(CLIENT_BIN) $(CLIENT_OBJ) $(HISTORY_OBJ) $(LIST_OBJ) $(COMM_OBJ) $(DIREC_OBJ) -pthread

obj/client.o: $(CLIENT_SCRIPT) $(HISTORY_SCRIPT) $(LIST_SCRIPT) $(COMM_SCRIPT)
$(CC) $(CFLAGS) $(CLIENT_SCRIPT) $(HISTORY_SCRIPT) $(LIST_SCRIPT) $(COMM_SCRIPT) $(DIREC_SCRIPT)
mv *.o $(OBJ_DIR)/

bin/server: $(SERVER_OBJ) $(HASH_OBJ) $(COMM_OBJ) $(HTTP_OBJ) $(DIREC_OBJ)
$(CC_FLAGS_OBJ) $(SERVER_BIN) $(SERVER_OBJ) $(HASH_OBJ) $(COMM_OBJ) $(HTTP_OBJ) $(DIREC_OBJ) -pthread

obj/server.o: $(SERVER_SCRIPT) $(HASH_SCRIPT) $(COMM_SCRIPT) $(HTTP_SCRIPT) $(DIREC_SCRIPT)
$(CC) $(CFLAGS) $(SERVER_SCRIPT) $(HASH_SCRIPT) $(COMM_SCRIPT) $(HTTP_SCRIPT) $(DIREC_SCRIPT)
mv *.o $(OBJ_DIR)/

clean:
rm clients/client1/* clients/client2/* clients/client3/* proxy/* infoPage/* $(OBJ_DIR)/* $(BIN_DIR)/*
clear
rm clients/client1/* proxy/* infoPage/* obj/* bin/*
83 changes: 82 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,83 @@
# Operating Systems Project
Comming soon...

## To run
To run this program open a terminal to be the server and type:
```
./bin/server 20 5000
```
Open a second terminal representing the client and enter the command:
```
./bin/client clients/client1/ 5000
```

## Sites for testing
```
search http://web.ist.utl.pt/luis.tarrataca/hello.html
```

```
search http://web.ist.utl.pt/luis.tarrataca/file1.html
```

```
search http://web.ist.utl.pt/luis.tarrataca/file2.html
```

```
search http://web.ist.utl.pt/luis.tarrataca/file3.html
```
```
search http://web.ist.utl.pt/luis.tarrataca/file4.html
```
```
search http://web.ist.utl.pt/luis.tarrataca/file5.html
```

```
search http://web.ist.utl.pt/luis.tarrataca/hello.html http://web.ist.utl.pt/luis.tarrataca/file1.html
```

```
search http://web.ist.utl.pt/luis.tarrataca/file1.html http://web.ist.utl.pt/luis.tarrataca/file2.html
```

```
search http://web.ist.utl.pt/luis.tarrataca/file2.html http://web.ist.utl.pt/luis.tarrataca/file3.html
```

```
search http://web.ist.utl.pt/luis.tarrataca/hello.html http://web.ist.utl.pt/luis.tarrataca/file1.html http://web.ist.utl.pt/luis.tarrataca/file2.html http://web.ist.utl.pt/luis.tarrataca/file3.html http://web.ist.utl.pt/luis.tarrataca/file4.html http://web.ist.utl.pt/luis.tarrataca/file5.html
```

## Checking if everything is okay

```
diff originals/hello_original.html proxy/hello.html
diff originals/file1_original.html proxy/file1.html
diff originals/file2_original.html proxy/file2.html
diff originals/file3_original.html proxy/file3.html
diff originals/file4_original.html proxy/file4.html
diff originals/file5_original.html proxy/file5.html


diff originals/hello_original.html clients/client1/hello.html
diff originals/file1_original.html clients/client1/file1.html
diff originals/file2_original.html clients/client1/file2.html
diff originals/file3_original.html clients/client1/file3.html
diff originals/file4_original.html clients/client1/file4.html
diff originals/file5_original.html clients/client1/file5.html

diff originals/hello_original.html clients/client2/hello.html
diff originals/file1_original.html clients/client2/file1.html
diff originals/file2_original.html clients/client2/file2.html
diff originals/file3_original.html clients/client2/file3.html
diff originals/file4_original.html clients/client2/file4.html
diff originals/file5_original.html clients/client2/file5.html

diff originals/hello_original.html clients/client3/hello.html
diff originals/file1_original.html clients/client3/file1.html
diff originals/file2_original.html clients/client3/file2.html
diff originals/file3_original.html clients/client3/file3.html
diff originals/file4_original.html clients/client3/file4.html
diff originals/file5_original.html clients/client3/file5.html
```
Binary file modified bin/client
Binary file not shown.
Binary file modified bin/server
Binary file not shown.
Loading