From 1aa2d5c6aafa43a2b589266e024443eeee89bd0b Mon Sep 17 00:00:00 2001 From: Adam Fordsmand Date: Sun, 31 Oct 2021 22:45:17 +0100 Subject: [PATCH 1/4] Added function def --- BlogDB.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/BlogDB.c b/BlogDB.c index 472b27d..5b8facd 100755 --- a/BlogDB.c +++ b/BlogDB.c @@ -709,6 +709,11 @@ bool IsEnabled(int postID, MYSQL* con) return !state; } +int* ActivePostIDs(int* arr, MYSQL* con) +{ + +} + // Main int main(int argc, char *argv[]) From 0b66b37cc4860ec3e5e7d1c5ceb431f7ba5fc46b Mon Sep 17 00:00:00 2001 From: Adam Fordsmand Date: Sun, 31 Oct 2021 23:42:16 +0100 Subject: [PATCH 2/4] Started on it but got caught in segmentation hell --- BlogDB | Bin 0 -> 21656 bytes BlogDB.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100755 BlogDB diff --git a/BlogDB b/BlogDB new file mode 100755 index 0000000000000000000000000000000000000000..b80ba30bb468fb8f20129d0e7efd38bf3e213cba GIT binary patch literal 21656 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 literal 0 HcmV?d00001 diff --git a/BlogDB.c b/BlogDB.c index 5b8facd..a54bc39 100755 --- a/BlogDB.c +++ b/BlogDB.c @@ -3,6 +3,7 @@ #include #include #include +#include static MYSQL* conn2maria(); static int AddPost(char title[], int authorId, char datePosted[], char post[], int tags[], size_t tagSize, MYSQL* con); @@ -709,9 +710,62 @@ bool IsEnabled(int postID, MYSQL* con) return !state; } -int* ActivePostIDs(int* arr, MYSQL* con) +void *ActivePostIDs(MYSQL* con) { + + if (con == NULL) + { + con = conn2maria(); + } + + // Query the server, if successful continue, else throw error + if (mysql_query(con, "SELECT COUNT(*) FROM blog_posts WHERE state=(0)")) + { + fprintf(stderr, "%s\n", mysql_error(con)); + mysql_close(con); + exit(1); + } + + // Get results + MYSQL_RES *result = mysql_store_result(con); + int num_fields = mysql_num_fields(result); + + MYSQL_ROW row; + int postFound = 1; + + row = mysql_fetch_row(result); + + int count = atoi(row[0]); + + printf("%d\n", count); + + + // Query the server, if successful continue, else throw error + if (mysql_query(con, "SELECT id FROM blog_posts WHERE state=(0)")) + { + fprintf(stderr, "%s\n", mysql_error(con)); + mysql_close(con); + exit(1); + } + + free(result); + + MYSQL_RES *result2 = mysql_store_result(con); + + int *arr = (int *)realloc(arr, sizeof(int) * count); + + for (int i = 0; i < count; ++i) { + row = mysql_fetch_row(result2); + arr[i] = atoi(row[0]); + } + + //return sizeof(int) * count; + //return count; + + return arr; + + } @@ -771,6 +825,12 @@ int main(int argc, char *argv[]) //ChangeAuthor(62, 2, con); //TogglePost(51, con); //printf("%s\n", IsEnabled(51, con) ? "True" : "False"); + + int *num; + + ActivePostIDs(con); + + // ================================= From a835b484cd3c0472e26fdb077be8dca0d12515ff Mon Sep 17 00:00:00 2001 From: Adam Fordsmand Date: Mon, 1 Nov 2021 20:17:04 +0100 Subject: [PATCH 3/4] Fixed the issue --- .gitignore | 2 ++ BlogDB | Bin 21656 -> 0 bytes BlogDB.c | 79 +++++++++++++++++++++++++++++++++-------------------- 3 files changed, 52 insertions(+), 29 deletions(-) delete mode 100755 BlogDB diff --git a/.gitignore b/.gitignore index cd531cf..13697f3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ # ---> C # Prerequisites +* +!*.* *.d # Object files diff --git a/BlogDB b/BlogDB deleted file mode 100755 index b80ba30bb468fb8f20129d0e7efd38bf3e213cba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21656 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 diff --git a/BlogDB.c b/BlogDB.c index a54bc39..7ed37d6 100755 --- a/BlogDB.c +++ b/BlogDB.c @@ -19,6 +19,7 @@ static int PullAuthorData(char* strings[4], int authorID, MYSQL* con); static int ChangeAuthor(int postID, int authorID, MYSQL* con); static int TogglePost(int postID, MYSQL* con); static bool IsEnabled(int postID, MYSQL* con); +static int* ActivePostIDs(MYSQL* con); // Connects to the MariaDB database and returns the connection MYSQL* conn2maria() @@ -636,8 +637,6 @@ int TogglePost(int postID, MYSQL* con) int num_fields = mysql_num_fields(result); MYSQL_ROW row; - int postFound = 1; - row = mysql_fetch_row(result); if (row == NULL) @@ -710,7 +709,10 @@ bool IsEnabled(int postID, MYSQL* con) return !state; } -void *ActivePostIDs(MYSQL* con) +// Returns an array of IDs for all the posts that have state=0, +// the last element in the array is set to be negative as to prevent going into unallocated data. +// Remember to free() the returned array +int* ActivePostIDs(MYSQL* con) { @@ -729,17 +731,13 @@ void *ActivePostIDs(MYSQL* con) // Get results MYSQL_RES *result = mysql_store_result(con); - int num_fields = mysql_num_fields(result); - MYSQL_ROW row; - int postFound = 1; - row = mysql_fetch_row(result); int count = atoi(row[0]); + //printf("%d\n", count); - printf("%d\n", count); - + free(result); // Query the server, if successful continue, else throw error if (mysql_query(con, "SELECT id FROM blog_posts WHERE state=(0)")) @@ -749,17 +747,20 @@ void *ActivePostIDs(MYSQL* con) exit(1); } - free(result); - MYSQL_RES *result2 = mysql_store_result(con); - int *arr = (int *)realloc(arr, sizeof(int) * count); + int *arr = (int *)malloc(sizeof(int) * (count + 1)); + printf("arr was allocated: %db of memory\n", sizeof(int) * (count + 1)); for (int i = 0; i < count; ++i) { row = mysql_fetch_row(result2); - arr[i] = atoi(row[0]); + if (row != NULL) { + arr[i] = atoi(row[0]); + } } + arr[count] = -1; + //return sizeof(int) * count; //return count; @@ -773,9 +774,9 @@ void *ActivePostIDs(MYSQL* con) int main(int argc, char *argv[]) { /* - // ================================= + // =================================== // Example of using 'PullPostData()' - // ================================= + // =================================== // Init array of six strings // Pull data of postID '1' into 'result' @@ -789,10 +790,16 @@ int main(int argc, char *argv[]) printf("%s\n", result[i]); } - // ================================= + // =================================== */ /* + // =================================== + // Example of using 'PullAuthorData()' + // =================================== + + // Init array of four strings + // Pull data of authorID '1' into 'result' char *result[4]; PullAuthorData(result, 1, NULL); @@ -802,19 +809,39 @@ int main(int argc, char *argv[]) // Print contents on a new line printf("%s\n", result[i]); } + // =================================== */ + /* + // =================================== + // Example of using 'ActivePostIDs()' + // =================================== + + // Generate array of IDs + int *num = ActivePostIDs(NULL); + + // Loop until element is negative i.e. the last + for (int i = 0; num[i] > 0; ++i) + { + // Print contents on a new line + printf("%d\n", num[i]); + } + + // Free the memory + free(num); + + // =================================== + */ + + // Open the connection MYSQL *con = conn2maria(); - // ================================= - // Example of using 'PullPostData()' - // ================================= - // AddPost return the inserted rows, NULL pointer for no tags, 0 for size - + // //int tags[] = {1, 2, 3}; //printf("%d", AddPost("Something", 1, "2020-01-01", "Ssdjshdjahdkjomething", tags, sizeof(tags))); + //AssignTag(6, 42, con); //EditPost(69, "HEY", "THERE BUDDY", con); //printf("%d\n", AddTag("Test", con)); @@ -823,14 +850,8 @@ int main(int argc, char *argv[]) //EditTag(5, "Projects", con); //AddAuthor("Me", "Meson", "email@me.com", con); //ChangeAuthor(62, 2, con); - //TogglePost(51, con); - //printf("%s\n", IsEnabled(51, con) ? "True" : "False"); - - int *num; - - ActivePostIDs(con); - - + //TogglePost(81, con); + //printf("%s\n", IsEnabled(81, con) ? "True" : "False"); // ================================= From be262d0efea8fa00f6edc4602f9ad80164dbfb32 Mon Sep 17 00:00:00 2001 From: Adam Fordsmand Date: Mon, 1 Nov 2021 20:19:31 +0100 Subject: [PATCH 4/4] Accidentally add license to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 13697f3..b5e3ae7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # Prerequisites * !*.* +!LICENSE *.d # Object files