-
Notifications
You must be signed in to change notification settings - Fork 0
Basic HTTP proxy written in C.
License
mbap/basicHTTPproxy
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Code Authors: Michael Baptist Lab Section : Monday 12 - 2 Compile: .c -> .o -> binexec 1. generate .o file : gcc -g -O0 -Wall -Wextra -std=gnu99 -c [.c file] 2. generate bin exec: gcc -g -O0 -Wall -Wextra -std=gnu99 -o [exec] [.o file] Alternativly use my Makefile. 1. make all -- compiles the source. 2. make clean -- remove all .o files 3. make wipe -- remove all .o and binexec Runtime: Run on any linux or mac osx machine. 1. proxy_server.c NAME proxy_server -- creates a communication path between a client and a server using TCP. SYNOPSIS proxy_server [Port] DESCRIPTION This program accepts the port number as it's arguments, and while running, if contacted by a client, it contacts the server by forwarding the clients http request. It then attempts to recieve the request data from the server and relay it back to the clients browser. OPERANDS The only operand is a valid unused port number. If no port number is input to the program, the program will exit with an error. EXIT STATUS 0 No errors were detected. 1 One or more errors were detected and error messages were printed. errno If a man page call detects an error, perror prints a sys message and exits with return value of errno. 2. utils.c and utils.h -- basic library for printing debug statements -- error handling for read and write system calls. -- writes chunks of files and returns file size -- searches for files in a directory. 3. Makefile all: - compiles all included code. - gives a binexec for server and client clean: - removes all .o files wipe: - removes all .o files as well as all binexec files 4. http_parser.c/h -- basic lib for parsing http headers. -- can parse header into lines, and those lines into tokens. 5. http_response.c/h -- basic lib for generating http responses. -- currently only supports 403 and 501 and 500. 6. log.c/h -- basic lib for logging http requests to a file -- currently comment out in my code due to poor implmentation -- has some segfaults 7. siteblock.c/h -- utility that checks if a webpage is allowed by the proxy based on the file parental_controls.log 8. parental_controls.log -- log file to store the allowed web pages. 9. proxy-app_protocol-mbaptist.pdf -- short document describing my app layer protocol and how the client and server talk. 10. proxyCodeDocs.pdf -- pdf with detailed description of code functions and variables generated by doxygen. includes file list of program. -- The docs currently only contain the .h file or public methods. 11. Github. -- All versions of code and interations of builds can be found at: https://github.com/mbaptist23/basicHTTPproxy
About
Basic HTTP proxy written in C.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published