Loading .idea/workspace.xml +68 −84 Original line number Original line Diff line number Diff line Loading @@ -12,7 +12,11 @@ </component> </component> <component name="ChangeListManager"> <component name="ChangeListManager"> <list default="true" id="36048fb3-fc75-499f-9004-4a458a9d082e" name="Default" comment=""> <list default="true" id="36048fb3-fc75-499f-9004-4a458a9d082e" name="Default" comment=""> <change beforePath="$PROJECT_DIR$/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/CMakeLists.txt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/connect.c" beforeDir="false" afterPath="$PROJECT_DIR$/connect.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/connect.h" beforeDir="false" afterPath="$PROJECT_DIR$/connect.h" afterDir="false" /> <change beforePath="$PROJECT_DIR$/main.c" beforeDir="false" afterPath="$PROJECT_DIR$/main.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/main.c" beforeDir="false" afterPath="$PROJECT_DIR$/main.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/urlParse.c" beforeDir="false" afterPath="$PROJECT_DIR$/urlParse.c" afterDir="false" /> </list> </list> <ignored path="$PROJECT_DIR$/cmake-build-debug/" /> <ignored path="$PROJECT_DIR$/cmake-build-debug/" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> Loading @@ -25,13 +29,13 @@ <component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" /> <component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" /> <component name="FileEditorManager"> <component name="FileEditorManager"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <file leaf-file-name="buffer.c" pinned="false" current-in-tab="false"> <file leaf-file-name="main.c" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/buffer.c"> <entry file="file://$PROJECT_DIR$/main.c"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="539"> <state relative-caret-position="291"> <caret line="62" column="9" selection-start-line="62" selection-start-column="9" selection-end-line="62" selection-end-column="9" /> <caret line="62" column="6" selection-start-line="62" selection-start-column="6" selection-end-line="62" selection-end-column="6" /> <folding> <folding> <element signature="e#40#59#0" expanded="true" /> <element signature="e#0#19#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading @@ -40,50 +44,29 @@ <file leaf-file-name="urlParse.c" pinned="false" current-in-tab="false"> <file leaf-file-name="urlParse.c" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/urlParse.c"> <entry file="file://$PROJECT_DIR$/urlParse.c"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="468"> <state relative-caret-position="612"> <caret line="29" selection-start-line="29" selection-end-line="29" /> <caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" /> </state> </provider> </entry> </file> <file leaf-file-name="cmake_install.cmake" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/cmake_install.cmake"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="662"> <caret line="42" column="52" lean-forward="true" selection-start-line="42" selection-start-column="52" selection-end-line="42" selection-end-column="52" /> </state> </provider> </entry> </file> <file leaf-file-name="main.c" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/main.c"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="509"> <caret line="75" column="24" selection-start-line="75" selection-start-column="24" selection-end-line="75" selection-end-column="24" /> <folding> <element signature="e#0#19#0" expanded="true" /> </folding> </state> </state> </provider> </provider> </entry> </entry> </file> </file> <file leaf-file-name="connect.c" pinned="false" current-in-tab="false"> <file leaf-file-name="connect.c" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/connect.c"> <entry file="file://$PROJECT_DIR$/connect.c"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="558"> <state relative-caret-position="325"> <caret line="31" column="29" selection-start-line="31" selection-start-column="29" selection-end-line="31" selection-end-column="29" /> <caret line="102" column="25" selection-start-line="102" selection-start-column="25" selection-end-line="102" selection-end-column="42" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> </entry> </entry> </file> </file> <file leaf-file-name="connect.h" pinned="false" current-in-tab="false"> <file leaf-file-name="CMakeLists.txt" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/connect.h"> <entry file="file://$PROJECT_DIR$/CMakeLists.txt"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="198"> <state> <caret line="17" column="20" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="20" /> <caret column="34" selection-start-column="34" selection-end-column="34" /> </state> </state> </provider> </provider> </entry> </entry> Loading @@ -98,6 +81,7 @@ <find># Is This</find> <find># Is This</find> <find>port</find> <find>port</find> <find>80</find> <find>80</find> <find>free</find> </findStrings> </findStrings> </component> </component> <component name="Git.Settings"> <component name="Git.Settings"> Loading @@ -110,15 +94,15 @@ <option value="$PROJECT_DIR$/cmake-build-debug/connect.h" /> <option value="$PROJECT_DIR$/cmake-build-debug/connect.h" /> <option value="$PROJECT_DIR$/buffer.h" /> <option value="$PROJECT_DIR$/buffer.h" /> <option value="$PROJECT_DIR$/LICENSE" /> <option value="$PROJECT_DIR$/LICENSE" /> <option value="$PROJECT_DIR$/CMakeLists.txt" /> <option value="$PROJECT_DIR$/README.md" /> <option value="$PROJECT_DIR$/README.md" /> <option value="$PROJECT_DIR$/connect.h" /> <option value="$PROJECT_DIR$/connect.h" /> <option value="$PROJECT_DIR$/buffer.c" /> <option value="$PROJECT_DIR$/buffer.c" /> <option value="$PROJECT_DIR$/,gitignore" /> <option value="$PROJECT_DIR$/,gitignore" /> <option value="$PROJECT_DIR$/urlParse.h" /> <option value="$PROJECT_DIR$/urlParse.h" /> <option value="$PROJECT_DIR$/connect.c" /> <option value="$PROJECT_DIR$/connect.c" /> <option value="$PROJECT_DIR$/urlParse.c" /> <option value="$PROJECT_DIR$/main.c" /> <option value="$PROJECT_DIR$/main.c" /> <option value="$PROJECT_DIR$/CMakeLists.txt" /> <option value="$PROJECT_DIR$/urlParse.c" /> </list> </list> </option> </option> </component> </component> Loading Loading @@ -185,7 +169,7 @@ </component> </component> <component name="RunManager" selected="Application.http_client"> <component name="RunManager" selected="Application.http_client"> <configuration name="Build All" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="coms352_project2_part1" RUN_TARGET_NAME="http_client" EXPLICIT_BUILD_TARGET_NAME="all" /> <configuration name="Build All" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="coms352_project2_part1" RUN_TARGET_NAME="http_client" EXPLICIT_BUILD_TARGET_NAME="all" /> <configuration name="http_client" type="CMakeRunConfiguration" factoryName="Application" PROGRAM_PARAMS="-h -d 12:10:12 http://google.com " PASS_PARENT_ENVS_2="true" PROJECT_NAME="coms352_project2_part1" TARGET_NAME="http_client" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="coms352_project2_part1" RUN_TARGET_NAME="http_client" /> <configuration name="http_client" type="CMakeRunConfiguration" factoryName="Application" PROGRAM_PARAMS="-d 1 http://127.0.0.1:26880/cmake_install.cmake " PASS_PARENT_ENVS_2="true" PROJECT_NAME="coms352_project2_part1" TARGET_NAME="http_client" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="coms352_project2_part1" RUN_TARGET_NAME="http_client" /> <list> <list> <item itemvalue="Application.Build All" /> <item itemvalue="Application.Build All" /> <item itemvalue="Application.http_client" /> <item itemvalue="Application.http_client" /> Loading @@ -211,7 +195,7 @@ <servers /> <servers /> </component> </component> <component name="TimeTrackingManager"> <component name="TimeTrackingManager"> <option name="totallyTimeSpent" value="26090000" /> <option name="totallyTimeSpent" value="30782000" /> </component> </component> <component name="ToolWindowManager"> <component name="ToolWindowManager"> <frame x="0" y="27" width="2560" height="1573" extended-state="6" /> <frame x="0" y="27" width="2560" height="1573" extended-state="6" /> Loading @@ -222,10 +206,11 @@ <window_info anchor="bottom" id="Messages" order="7" weight="0.33053222" /> <window_info anchor="bottom" id="Messages" order="7" weight="0.33053222" /> <window_info anchor="bottom" id="CMake" order="7" /> <window_info anchor="bottom" id="CMake" order="7" /> <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" /> <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" /> <window_info anchor="bottom" id="Run" order="2" weight="0.32843137" /> <window_info anchor="bottom" id="Find" order="1" /> <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.32843137" /> <window_info anchor="bottom" id="Version Control" order="7" /> <window_info anchor="bottom" id="Version Control" order="7" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info active="true" anchor="bottom" id="Terminal" order="7" visible="true" weight="0.3312325" /> <window_info anchor="bottom" id="Terminal" order="7" weight="0.3312325" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.39985994" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.39985994" /> <window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> Loading @@ -243,7 +228,6 @@ <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" /> <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Find" order="1" /> <window_info anchor="bottom" id="CMake" order="7" /> <window_info anchor="bottom" id="CMake" order="7" /> <window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" /> </layout> </layout> Loading Loading @@ -309,7 +293,7 @@ <state relative-caret-position="180"> <state relative-caret-position="180"> <caret line="10" column="31" selection-start-line="10" selection-start-column="31" selection-end-line="10" selection-end-column="31" /> <caret line="10" column="31" selection-start-line="10" selection-start-column="31" selection-end-line="10" selection-end-column="31" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading Loading @@ -411,7 +395,7 @@ <state relative-caret-position="1890"> <state relative-caret-position="1890"> <caret line="105" selection-start-line="105" selection-end-line="105" /> <caret line="105" selection-start-line="105" selection-end-line="105" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading Loading @@ -441,7 +425,7 @@ <state relative-caret-position="1890"> <state relative-caret-position="1890"> <caret line="105" selection-start-line="105" selection-end-line="105" /> <caret line="105" selection-start-line="105" selection-end-line="105" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading Loading @@ -471,7 +455,7 @@ <state relative-caret-position="144"> <state relative-caret-position="144"> <caret line="8" column="3" lean-forward="true" selection-start-line="8" selection-start-column="3" selection-end-line="8" selection-end-column="3" /> <caret line="8" column="3" lean-forward="true" selection-start-line="8" selection-start-column="3" selection-end-line="8" selection-end-column="3" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading Loading @@ -501,7 +485,7 @@ <state relative-caret-position="1620"> <state relative-caret-position="1620"> <caret line="90" selection-start-line="90" selection-end-line="90" /> <caret line="90" selection-start-line="90" selection-end-line="90" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading Loading @@ -546,7 +530,7 @@ <state relative-caret-position="180"> <state relative-caret-position="180"> <caret line="10" column="31" selection-start-line="10" selection-start-column="31" selection-end-line="10" selection-end-column="31" /> <caret line="10" column="31" selection-start-line="10" selection-start-column="31" selection-end-line="10" selection-end-column="31" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading @@ -569,13 +553,6 @@ </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/buffer.h"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="288"> <caret line="16" column="60" selection-start-line="16" selection-start-column="60" selection-end-line="16" selection-end-column="60" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/README.md"> <entry file="file://$PROJECT_DIR$/README.md"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="144"> <state relative-caret-position="144"> Loading @@ -583,13 +560,6 @@ </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/CMakeLists.txt"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="90"> <caret line="5" column="26" selection-start-line="5" selection-start-column="15" selection-end-line="5" selection-end-column="26" /> </state> </provider> </entry> <entry file="file:///usr/include/sys/socket.h"> <entry file="file:///usr/include/sys/socket.h"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="309"> <state relative-caret-position="309"> Loading Loading @@ -619,56 +589,70 @@ </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/cmake-build-debug/cmake_install.cmake"> <entry file="file:///usr/include/netdb.h"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="662"> <state relative-caret-position="2150"> <caret line="42" column="52" lean-forward="true" selection-start-line="42" selection-start-column="52" selection-end-line="42" selection-end-column="52" /> <caret line="659" column="11" selection-start-line="659" selection-start-column="11" selection-end-line="659" selection-end-column="11" /> </state> </state> </provider> </provider> </entry> </entry> <entry file="file:///usr/include/netdb.h"> <entry file="file://$PROJECT_DIR$/buffer.h"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="2150"> <state relative-caret-position="288"> <caret line="659" column="11" selection-start-line="659" selection-start-column="11" selection-end-line="659" selection-end-column="11" /> <caret line="16" column="60" selection-start-line="16" selection-start-column="60" selection-end-line="16" selection-end-column="60" /> </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/connect.c"> <entry file="file://$PROJECT_DIR$/buffer.c"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="558"> <state relative-caret-position="1116"> <caret line="31" column="29" selection-start-line="31" selection-start-column="29" selection-end-line="31" selection-end-column="29" /> <caret line="62" column="9" selection-start-line="62" selection-start-column="9" selection-end-line="62" selection-end-column="9" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#40#59#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/urlParse.c"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/cmake_install.cmake"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="468"> <state relative-caret-position="662"> <caret line="29" selection-start-line="29" selection-end-line="29" /> <caret line="42" column="52" lean-forward="true" selection-start-line="42" selection-start-column="52" selection-end-line="42" selection-end-column="52" /> </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/buffer.c"> <entry file="file://$PROJECT_DIR$/CMakeLists.txt"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="539"> <state> <caret line="62" column="9" selection-start-line="62" selection-start-column="9" selection-end-line="62" selection-end-column="9" /> <caret column="34" selection-start-column="34" selection-end-column="34" /> <folding> <element signature="e#40#59#0" expanded="true" /> </folding> </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/main.c"> <entry file="file://$PROJECT_DIR$/main.c"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="509"> <state relative-caret-position="291"> <caret line="75" column="24" selection-start-line="75" selection-start-column="24" selection-end-line="75" selection-end-column="24" /> <caret line="62" column="6" selection-start-line="62" selection-start-column="6" selection-end-line="62" selection-end-column="6" /> <folding> <folding> <element signature="e#0#19#0" expanded="true" /> <element signature="e#0#19#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/urlParse.c"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="612"> <caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/connect.c"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="325"> <caret line="102" column="25" selection-start-line="102" selection-start-column="25" selection-end-line="102" selection-end-column="42" /> <folding> <element signature="e#41#61#0" expanded="true" /> </folding> </state> </provider> </entry> </component> </component> </project> </project> No newline at end of file CMakeLists.txt +1 −1 Original line number Original line Diff line number Diff line cmake_minimum_required(VERSION 3.9) cmake_minimum_required(VERSION 3.3) project(coms352_project2_part1 C) project(coms352_project2_part1 C) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 11) Loading connect.c +12 −5 Original line number Original line Diff line number Diff line //w // // Created by mburket on 3/29/18. // Created by mburket on 3/29/18. // // Loading Loading @@ -116,23 +116,30 @@ int execate_request(int socketfd, char *hostname, char *path, int head, int date return sentByte; return sentByte; } } int get_result(int socketfd, GrowthBuffer *recvBuff, int recvBuffSize) { /// Get result from the request /// \param socketfd socket used to make the request /// \param recvBuff buffer to send the request back in /// \param recvBuffSize /// \return 0 if success, otherwise not zero int get_result(int socketfd, GrowthBuffer *recvBuff) { size_t bytesRecv; size_t bytesRecv; char revcData[recvBuffSize]; char revcData[RECV_SIZE]; while (1) { while (1) { errno = 0; bytesRecv = recv(socketfd, revcData, RECV_SIZE, 0); bytesRecv = recv(socketfd, revcData, RECV_SIZE, 0); if (bytesRecv == -1) { if (bytesRecv == -1) { fprintf(stderr, "\n Unable to recv data from socket."); fprintf(stderr, "\n Unable to recv data from socket. [Error %d]: %s\n", errno, strerror(errno)); return -1; return -1; } else if (bytesRecv == 0) { } else if (bytesRecv == 0) { return 0; return 0; } } // Got something append it if (bytesRecv > 0) { if (bytesRecv > 0) { appendBuffer(recvBuff, revcData, bytesRecv); appendBuffer(recvBuff, revcData, bytesRecv); } } // Didn't anything, we are done if (bytesRecv < RECV_SIZE) { if (bytesRecv < RECV_SIZE) { return 0; return 0; } } Loading connect.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -18,6 +18,6 @@ void init_connection(char *hostname, int port, struct addrinfo **info); void init_connection(char *hostname, int port, struct addrinfo **info); int establish_connect(struct addrinfo *info); int establish_connect(struct addrinfo *info); int execate_request(int socketfd, char *hostname, char *path, int head, int date, char *date_string); int execate_request(int socketfd, char *hostname, char *path, int head, int date, char *date_string); int get_result(int socketfd, GrowthBuffer *recvBuff, int recvBuffSize); int get_result(int socketfd, GrowthBuffer *recvBuff); #endif //COMS352_PROJECT2_PART1_CONNECT_H #endif //COMS352_PROJECT2_PART1_CONNECT_H main.c +17 −8 Original line number Original line Diff line number Diff line Loading @@ -6,15 +6,17 @@ #include "buffer.h" #include "buffer.h" #include "urlParse.h" #include "urlParse.h" /// Main method for the program /// /// \param argc /// \param argv /// \return void show_help_exit(char *argv); void show_help_exit(char *argv); /// Main method for the program /// /// \param argc count of args /// \param argv arg vector /// \return non-zero if error, otherwise 0 int main (int argc, char **argv) { int main (int argc, char **argv) { // Setup values and memory for program int header_only = 0; int header_only = 0; int timeDelta = 0; int timeDelta = 0; char *cvalue = NULL; char *cvalue = NULL; Loading Loading @@ -54,30 +56,37 @@ int main (int argc, char **argv) { } } } } // Advance index for (index = optind; index < argc; index++); for (index = optind; index < argc; index++); // No URL Exit if (argv[optind] == NULL) { if (argv[optind] == NULL) { show_help_exit(argv[0]); show_help_exit(argv[0]); } } // Setup Connection Memory char *host = malloc(sizeof(char) * 256); char *host = malloc(sizeof(char) * 256); int port = 80; int port = 80; char *page = malloc(sizeof(char) * 256); char *page = malloc(sizeof(char) * 256); // Parse the Url getUrlParts(argv[optind], &host, &port, &page); getUrlParts(argv[optind], &host, &port, &page); // Setup Connection init_connection(host, port, &addressInfo); init_connection(host, port, &addressInfo); int sockfd = establish_connect(addressInfo); int sockfd = establish_connect(addressInfo); // Fire Off Request execate_request(sockfd, host, page, header_only, timeDelta, cvalue); execate_request(sockfd, host, page, header_only, timeDelta, cvalue); // Setup for getting response GrowthBuffer gp; GrowthBuffer gp; initBuffer(&gp, 50); initBuffer(&gp, 50); get_result(sockfd, &gp, RECV_SIZE); // Get response get_result(sockfd, &gp); // Save to file // Save to file FILE *fp; FILE *fp; fp = fopen("response", "w"); fp = fopen("response", "w"); fwrite(gp.array, 1, strlen(gp.array), fp); fwrite(gp.array, 1, strlen(gp.array), fp); fclose(fp); fclose(fp); exit(EXIT_SUCCESS); } } /// Show help /// Show help Loading Loading
.idea/workspace.xml +68 −84 Original line number Original line Diff line number Diff line Loading @@ -12,7 +12,11 @@ </component> </component> <component name="ChangeListManager"> <component name="ChangeListManager"> <list default="true" id="36048fb3-fc75-499f-9004-4a458a9d082e" name="Default" comment=""> <list default="true" id="36048fb3-fc75-499f-9004-4a458a9d082e" name="Default" comment=""> <change beforePath="$PROJECT_DIR$/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/CMakeLists.txt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/connect.c" beforeDir="false" afterPath="$PROJECT_DIR$/connect.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/connect.h" beforeDir="false" afterPath="$PROJECT_DIR$/connect.h" afterDir="false" /> <change beforePath="$PROJECT_DIR$/main.c" beforeDir="false" afterPath="$PROJECT_DIR$/main.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/main.c" beforeDir="false" afterPath="$PROJECT_DIR$/main.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/urlParse.c" beforeDir="false" afterPath="$PROJECT_DIR$/urlParse.c" afterDir="false" /> </list> </list> <ignored path="$PROJECT_DIR$/cmake-build-debug/" /> <ignored path="$PROJECT_DIR$/cmake-build-debug/" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> Loading @@ -25,13 +29,13 @@ <component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" /> <component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" /> <component name="FileEditorManager"> <component name="FileEditorManager"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <file leaf-file-name="buffer.c" pinned="false" current-in-tab="false"> <file leaf-file-name="main.c" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/buffer.c"> <entry file="file://$PROJECT_DIR$/main.c"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="539"> <state relative-caret-position="291"> <caret line="62" column="9" selection-start-line="62" selection-start-column="9" selection-end-line="62" selection-end-column="9" /> <caret line="62" column="6" selection-start-line="62" selection-start-column="6" selection-end-line="62" selection-end-column="6" /> <folding> <folding> <element signature="e#40#59#0" expanded="true" /> <element signature="e#0#19#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading @@ -40,50 +44,29 @@ <file leaf-file-name="urlParse.c" pinned="false" current-in-tab="false"> <file leaf-file-name="urlParse.c" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/urlParse.c"> <entry file="file://$PROJECT_DIR$/urlParse.c"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="468"> <state relative-caret-position="612"> <caret line="29" selection-start-line="29" selection-end-line="29" /> <caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" /> </state> </provider> </entry> </file> <file leaf-file-name="cmake_install.cmake" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/cmake_install.cmake"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="662"> <caret line="42" column="52" lean-forward="true" selection-start-line="42" selection-start-column="52" selection-end-line="42" selection-end-column="52" /> </state> </provider> </entry> </file> <file leaf-file-name="main.c" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/main.c"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="509"> <caret line="75" column="24" selection-start-line="75" selection-start-column="24" selection-end-line="75" selection-end-column="24" /> <folding> <element signature="e#0#19#0" expanded="true" /> </folding> </state> </state> </provider> </provider> </entry> </entry> </file> </file> <file leaf-file-name="connect.c" pinned="false" current-in-tab="false"> <file leaf-file-name="connect.c" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/connect.c"> <entry file="file://$PROJECT_DIR$/connect.c"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="558"> <state relative-caret-position="325"> <caret line="31" column="29" selection-start-line="31" selection-start-column="29" selection-end-line="31" selection-end-column="29" /> <caret line="102" column="25" selection-start-line="102" selection-start-column="25" selection-end-line="102" selection-end-column="42" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> </entry> </entry> </file> </file> <file leaf-file-name="connect.h" pinned="false" current-in-tab="false"> <file leaf-file-name="CMakeLists.txt" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/connect.h"> <entry file="file://$PROJECT_DIR$/CMakeLists.txt"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="198"> <state> <caret line="17" column="20" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="20" /> <caret column="34" selection-start-column="34" selection-end-column="34" /> </state> </state> </provider> </provider> </entry> </entry> Loading @@ -98,6 +81,7 @@ <find># Is This</find> <find># Is This</find> <find>port</find> <find>port</find> <find>80</find> <find>80</find> <find>free</find> </findStrings> </findStrings> </component> </component> <component name="Git.Settings"> <component name="Git.Settings"> Loading @@ -110,15 +94,15 @@ <option value="$PROJECT_DIR$/cmake-build-debug/connect.h" /> <option value="$PROJECT_DIR$/cmake-build-debug/connect.h" /> <option value="$PROJECT_DIR$/buffer.h" /> <option value="$PROJECT_DIR$/buffer.h" /> <option value="$PROJECT_DIR$/LICENSE" /> <option value="$PROJECT_DIR$/LICENSE" /> <option value="$PROJECT_DIR$/CMakeLists.txt" /> <option value="$PROJECT_DIR$/README.md" /> <option value="$PROJECT_DIR$/README.md" /> <option value="$PROJECT_DIR$/connect.h" /> <option value="$PROJECT_DIR$/connect.h" /> <option value="$PROJECT_DIR$/buffer.c" /> <option value="$PROJECT_DIR$/buffer.c" /> <option value="$PROJECT_DIR$/,gitignore" /> <option value="$PROJECT_DIR$/,gitignore" /> <option value="$PROJECT_DIR$/urlParse.h" /> <option value="$PROJECT_DIR$/urlParse.h" /> <option value="$PROJECT_DIR$/connect.c" /> <option value="$PROJECT_DIR$/connect.c" /> <option value="$PROJECT_DIR$/urlParse.c" /> <option value="$PROJECT_DIR$/main.c" /> <option value="$PROJECT_DIR$/main.c" /> <option value="$PROJECT_DIR$/CMakeLists.txt" /> <option value="$PROJECT_DIR$/urlParse.c" /> </list> </list> </option> </option> </component> </component> Loading Loading @@ -185,7 +169,7 @@ </component> </component> <component name="RunManager" selected="Application.http_client"> <component name="RunManager" selected="Application.http_client"> <configuration name="Build All" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="coms352_project2_part1" RUN_TARGET_NAME="http_client" EXPLICIT_BUILD_TARGET_NAME="all" /> <configuration name="Build All" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="coms352_project2_part1" RUN_TARGET_NAME="http_client" EXPLICIT_BUILD_TARGET_NAME="all" /> <configuration name="http_client" type="CMakeRunConfiguration" factoryName="Application" PROGRAM_PARAMS="-h -d 12:10:12 http://google.com " PASS_PARENT_ENVS_2="true" PROJECT_NAME="coms352_project2_part1" TARGET_NAME="http_client" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="coms352_project2_part1" RUN_TARGET_NAME="http_client" /> <configuration name="http_client" type="CMakeRunConfiguration" factoryName="Application" PROGRAM_PARAMS="-d 1 http://127.0.0.1:26880/cmake_install.cmake " PASS_PARENT_ENVS_2="true" PROJECT_NAME="coms352_project2_part1" TARGET_NAME="http_client" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="coms352_project2_part1" RUN_TARGET_NAME="http_client" /> <list> <list> <item itemvalue="Application.Build All" /> <item itemvalue="Application.Build All" /> <item itemvalue="Application.http_client" /> <item itemvalue="Application.http_client" /> Loading @@ -211,7 +195,7 @@ <servers /> <servers /> </component> </component> <component name="TimeTrackingManager"> <component name="TimeTrackingManager"> <option name="totallyTimeSpent" value="26090000" /> <option name="totallyTimeSpent" value="30782000" /> </component> </component> <component name="ToolWindowManager"> <component name="ToolWindowManager"> <frame x="0" y="27" width="2560" height="1573" extended-state="6" /> <frame x="0" y="27" width="2560" height="1573" extended-state="6" /> Loading @@ -222,10 +206,11 @@ <window_info anchor="bottom" id="Messages" order="7" weight="0.33053222" /> <window_info anchor="bottom" id="Messages" order="7" weight="0.33053222" /> <window_info anchor="bottom" id="CMake" order="7" /> <window_info anchor="bottom" id="CMake" order="7" /> <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" /> <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" /> <window_info anchor="bottom" id="Run" order="2" weight="0.32843137" /> <window_info anchor="bottom" id="Find" order="1" /> <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.32843137" /> <window_info anchor="bottom" id="Version Control" order="7" /> <window_info anchor="bottom" id="Version Control" order="7" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info active="true" anchor="bottom" id="Terminal" order="7" visible="true" weight="0.3312325" /> <window_info anchor="bottom" id="Terminal" order="7" weight="0.3312325" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.39985994" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.39985994" /> <window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> Loading @@ -243,7 +228,6 @@ <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" /> <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Find" order="1" /> <window_info anchor="bottom" id="CMake" order="7" /> <window_info anchor="bottom" id="CMake" order="7" /> <window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" /> </layout> </layout> Loading Loading @@ -309,7 +293,7 @@ <state relative-caret-position="180"> <state relative-caret-position="180"> <caret line="10" column="31" selection-start-line="10" selection-start-column="31" selection-end-line="10" selection-end-column="31" /> <caret line="10" column="31" selection-start-line="10" selection-start-column="31" selection-end-line="10" selection-end-column="31" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading Loading @@ -411,7 +395,7 @@ <state relative-caret-position="1890"> <state relative-caret-position="1890"> <caret line="105" selection-start-line="105" selection-end-line="105" /> <caret line="105" selection-start-line="105" selection-end-line="105" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading Loading @@ -441,7 +425,7 @@ <state relative-caret-position="1890"> <state relative-caret-position="1890"> <caret line="105" selection-start-line="105" selection-end-line="105" /> <caret line="105" selection-start-line="105" selection-end-line="105" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading Loading @@ -471,7 +455,7 @@ <state relative-caret-position="144"> <state relative-caret-position="144"> <caret line="8" column="3" lean-forward="true" selection-start-line="8" selection-start-column="3" selection-end-line="8" selection-end-column="3" /> <caret line="8" column="3" lean-forward="true" selection-start-line="8" selection-start-column="3" selection-end-line="8" selection-end-column="3" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading Loading @@ -501,7 +485,7 @@ <state relative-caret-position="1620"> <state relative-caret-position="1620"> <caret line="90" selection-start-line="90" selection-end-line="90" /> <caret line="90" selection-start-line="90" selection-end-line="90" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading Loading @@ -546,7 +530,7 @@ <state relative-caret-position="180"> <state relative-caret-position="180"> <caret line="10" column="31" selection-start-line="10" selection-start-column="31" selection-end-line="10" selection-end-column="31" /> <caret line="10" column="31" selection-start-line="10" selection-start-column="31" selection-end-line="10" selection-end-column="31" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#41#61#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> Loading @@ -569,13 +553,6 @@ </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/buffer.h"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="288"> <caret line="16" column="60" selection-start-line="16" selection-start-column="60" selection-end-line="16" selection-end-column="60" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/README.md"> <entry file="file://$PROJECT_DIR$/README.md"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="144"> <state relative-caret-position="144"> Loading @@ -583,13 +560,6 @@ </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/CMakeLists.txt"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="90"> <caret line="5" column="26" selection-start-line="5" selection-start-column="15" selection-end-line="5" selection-end-column="26" /> </state> </provider> </entry> <entry file="file:///usr/include/sys/socket.h"> <entry file="file:///usr/include/sys/socket.h"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="309"> <state relative-caret-position="309"> Loading Loading @@ -619,56 +589,70 @@ </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/cmake-build-debug/cmake_install.cmake"> <entry file="file:///usr/include/netdb.h"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="662"> <state relative-caret-position="2150"> <caret line="42" column="52" lean-forward="true" selection-start-line="42" selection-start-column="52" selection-end-line="42" selection-end-column="52" /> <caret line="659" column="11" selection-start-line="659" selection-start-column="11" selection-end-line="659" selection-end-column="11" /> </state> </state> </provider> </provider> </entry> </entry> <entry file="file:///usr/include/netdb.h"> <entry file="file://$PROJECT_DIR$/buffer.h"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="2150"> <state relative-caret-position="288"> <caret line="659" column="11" selection-start-line="659" selection-start-column="11" selection-end-line="659" selection-end-column="11" /> <caret line="16" column="60" selection-start-line="16" selection-start-column="60" selection-end-line="16" selection-end-column="60" /> </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/connect.c"> <entry file="file://$PROJECT_DIR$/buffer.c"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="558"> <state relative-caret-position="1116"> <caret line="31" column="29" selection-start-line="31" selection-start-column="29" selection-end-line="31" selection-end-column="29" /> <caret line="62" column="9" selection-start-line="62" selection-start-column="9" selection-end-line="62" selection-end-column="9" /> <folding> <folding> <element signature="e#42#62#0" expanded="true" /> <element signature="e#40#59#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/urlParse.c"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/cmake_install.cmake"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="468"> <state relative-caret-position="662"> <caret line="29" selection-start-line="29" selection-end-line="29" /> <caret line="42" column="52" lean-forward="true" selection-start-line="42" selection-start-column="52" selection-end-line="42" selection-end-column="52" /> </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/buffer.c"> <entry file="file://$PROJECT_DIR$/CMakeLists.txt"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="539"> <state> <caret line="62" column="9" selection-start-line="62" selection-start-column="9" selection-end-line="62" selection-end-column="9" /> <caret column="34" selection-start-column="34" selection-end-column="34" /> <folding> <element signature="e#40#59#0" expanded="true" /> </folding> </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/main.c"> <entry file="file://$PROJECT_DIR$/main.c"> <provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="509"> <state relative-caret-position="291"> <caret line="75" column="24" selection-start-line="75" selection-start-column="24" selection-end-line="75" selection-end-column="24" /> <caret line="62" column="6" selection-start-line="62" selection-start-column="6" selection-end-line="62" selection-end-column="6" /> <folding> <folding> <element signature="e#0#19#0" expanded="true" /> <element signature="e#0#19#0" expanded="true" /> </folding> </folding> </state> </state> </provider> </provider> </entry> </entry> <entry file="file://$PROJECT_DIR$/urlParse.c"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="612"> <caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/connect.c"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="325"> <caret line="102" column="25" selection-start-line="102" selection-start-column="25" selection-end-line="102" selection-end-column="42" /> <folding> <element signature="e#41#61#0" expanded="true" /> </folding> </state> </provider> </entry> </component> </component> </project> </project> No newline at end of file
CMakeLists.txt +1 −1 Original line number Original line Diff line number Diff line cmake_minimum_required(VERSION 3.9) cmake_minimum_required(VERSION 3.3) project(coms352_project2_part1 C) project(coms352_project2_part1 C) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 11) Loading
connect.c +12 −5 Original line number Original line Diff line number Diff line //w // // Created by mburket on 3/29/18. // Created by mburket on 3/29/18. // // Loading Loading @@ -116,23 +116,30 @@ int execate_request(int socketfd, char *hostname, char *path, int head, int date return sentByte; return sentByte; } } int get_result(int socketfd, GrowthBuffer *recvBuff, int recvBuffSize) { /// Get result from the request /// \param socketfd socket used to make the request /// \param recvBuff buffer to send the request back in /// \param recvBuffSize /// \return 0 if success, otherwise not zero int get_result(int socketfd, GrowthBuffer *recvBuff) { size_t bytesRecv; size_t bytesRecv; char revcData[recvBuffSize]; char revcData[RECV_SIZE]; while (1) { while (1) { errno = 0; bytesRecv = recv(socketfd, revcData, RECV_SIZE, 0); bytesRecv = recv(socketfd, revcData, RECV_SIZE, 0); if (bytesRecv == -1) { if (bytesRecv == -1) { fprintf(stderr, "\n Unable to recv data from socket."); fprintf(stderr, "\n Unable to recv data from socket. [Error %d]: %s\n", errno, strerror(errno)); return -1; return -1; } else if (bytesRecv == 0) { } else if (bytesRecv == 0) { return 0; return 0; } } // Got something append it if (bytesRecv > 0) { if (bytesRecv > 0) { appendBuffer(recvBuff, revcData, bytesRecv); appendBuffer(recvBuff, revcData, bytesRecv); } } // Didn't anything, we are done if (bytesRecv < RECV_SIZE) { if (bytesRecv < RECV_SIZE) { return 0; return 0; } } Loading
connect.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -18,6 +18,6 @@ void init_connection(char *hostname, int port, struct addrinfo **info); void init_connection(char *hostname, int port, struct addrinfo **info); int establish_connect(struct addrinfo *info); int establish_connect(struct addrinfo *info); int execate_request(int socketfd, char *hostname, char *path, int head, int date, char *date_string); int execate_request(int socketfd, char *hostname, char *path, int head, int date, char *date_string); int get_result(int socketfd, GrowthBuffer *recvBuff, int recvBuffSize); int get_result(int socketfd, GrowthBuffer *recvBuff); #endif //COMS352_PROJECT2_PART1_CONNECT_H #endif //COMS352_PROJECT2_PART1_CONNECT_H
main.c +17 −8 Original line number Original line Diff line number Diff line Loading @@ -6,15 +6,17 @@ #include "buffer.h" #include "buffer.h" #include "urlParse.h" #include "urlParse.h" /// Main method for the program /// /// \param argc /// \param argv /// \return void show_help_exit(char *argv); void show_help_exit(char *argv); /// Main method for the program /// /// \param argc count of args /// \param argv arg vector /// \return non-zero if error, otherwise 0 int main (int argc, char **argv) { int main (int argc, char **argv) { // Setup values and memory for program int header_only = 0; int header_only = 0; int timeDelta = 0; int timeDelta = 0; char *cvalue = NULL; char *cvalue = NULL; Loading Loading @@ -54,30 +56,37 @@ int main (int argc, char **argv) { } } } } // Advance index for (index = optind; index < argc; index++); for (index = optind; index < argc; index++); // No URL Exit if (argv[optind] == NULL) { if (argv[optind] == NULL) { show_help_exit(argv[0]); show_help_exit(argv[0]); } } // Setup Connection Memory char *host = malloc(sizeof(char) * 256); char *host = malloc(sizeof(char) * 256); int port = 80; int port = 80; char *page = malloc(sizeof(char) * 256); char *page = malloc(sizeof(char) * 256); // Parse the Url getUrlParts(argv[optind], &host, &port, &page); getUrlParts(argv[optind], &host, &port, &page); // Setup Connection init_connection(host, port, &addressInfo); init_connection(host, port, &addressInfo); int sockfd = establish_connect(addressInfo); int sockfd = establish_connect(addressInfo); // Fire Off Request execate_request(sockfd, host, page, header_only, timeDelta, cvalue); execate_request(sockfd, host, page, header_only, timeDelta, cvalue); // Setup for getting response GrowthBuffer gp; GrowthBuffer gp; initBuffer(&gp, 50); initBuffer(&gp, 50); get_result(sockfd, &gp, RECV_SIZE); // Get response get_result(sockfd, &gp); // Save to file // Save to file FILE *fp; FILE *fp; fp = fopen("response", "w"); fp = fopen("response", "w"); fwrite(gp.array, 1, strlen(gp.array), fp); fwrite(gp.array, 1, strlen(gp.array), fp); fclose(fp); fclose(fp); exit(EXIT_SUCCESS); } } /// Show help /// Show help Loading