taken into account of a NULL query string
This commit is contained in:
parent
9894f3c77a
commit
0a9b9a2ef6
44
main.c
44
main.c
@ -4,21 +4,20 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sqlite3.h>
|
#include <sqlite3.h>
|
||||||
|
|
||||||
inline char *get_filename(const char c) {
|
inline char *get_filename(const char *c) {
|
||||||
char *qout;
|
char *qout = "queries/mranks.sql";
|
||||||
switch(c) {
|
if (c != NULL) {
|
||||||
default:
|
switch(*c) {
|
||||||
qout = "queries/mranks.sql";
|
case 'm':
|
||||||
break;
|
qout = "queries/mleaderboard-ojoin.sql";
|
||||||
case 'm':
|
break;
|
||||||
qout = "queries/mleaderboard-ojoin.sql";
|
case 'p':
|
||||||
break;
|
qout = "queries/rplayers.sql";
|
||||||
case 'p':
|
break;
|
||||||
qout = "queries/rplayers.sql";
|
case 't':
|
||||||
break;
|
qout = "queries/test.txt";
|
||||||
case 't':
|
break;
|
||||||
qout = "queries/test.txt";
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return qout;
|
return qout;
|
||||||
}
|
}
|
||||||
@ -58,7 +57,7 @@ inline void print_tblheader(const char *c) {
|
|||||||
printf("%s", out);
|
printf("%s", out);
|
||||||
}
|
}
|
||||||
|
|
||||||
//display and format the results of the query.
|
// display and format the results of the query.
|
||||||
void qresult(sqlite3_stmt *sp, const char *c) {
|
void qresult(sqlite3_stmt *sp, const char *c) {
|
||||||
int e;
|
int e;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
@ -74,9 +73,12 @@ void qresult(sqlite3_stmt *sp, const char *c) {
|
|||||||
printf("</TABLE>");
|
printf("</TABLE>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// const char 'sql' is never NULL.
|
||||||
|
// const char 'str' may be NULL, however it is only when
|
||||||
|
// the contents of mranks.sql is in const char 'sql'.
|
||||||
bool executequery(const char *sql, const char *str) {
|
bool executequery(const char *sql, const char *str) {
|
||||||
const char *p = strchr(str, '=') + 1;
|
const char *p = (str != NULL) ? strchr(str, '=') + 1 : NULL;
|
||||||
const char qc = str[0];
|
const char qc = (str != NULL) ? str[0] : '\0';
|
||||||
sqlite3 *db;
|
sqlite3 *db;
|
||||||
char *error;
|
char *error;
|
||||||
int con = sqlite3_open("db/cts.db", &db);
|
int con = sqlite3_open("db/cts.db", &db);
|
||||||
@ -103,7 +105,7 @@ bool executequery(const char *sql, const char *str) {
|
|||||||
// containing the data from query files.
|
// containing the data from query files.
|
||||||
void getquery(const char *qs) {
|
void getquery(const char *qs) {
|
||||||
char *qf, *qp;
|
char *qf, *qp;
|
||||||
char *fname = get_filename(qs[0]);
|
char *fname = get_filename(qs);
|
||||||
if (fname != NULL) {
|
if (fname != NULL) {
|
||||||
FILE *f = fopen(fname, "r");
|
FILE *f = fopen(fname, "r");
|
||||||
if (f != NULL && qf != NULL) {
|
if (f != NULL && qf != NULL) {
|
||||||
@ -118,7 +120,6 @@ void getquery(const char *qs) {
|
|||||||
}
|
}
|
||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
qp = strchr(qs, '=') + 1;
|
|
||||||
executequery(qf, qs);
|
executequery(qf, qs);
|
||||||
free(qf);
|
free(qf);
|
||||||
}
|
}
|
||||||
@ -136,7 +137,8 @@ void html(void) {
|
|||||||
</body></html>";
|
</body></html>";
|
||||||
printf("%s", html_top);
|
printf("%s", html_top);
|
||||||
// getquery(getenv("QUERY_STRING"));
|
// getquery(getenv("QUERY_STRING"));
|
||||||
getquery("map=pornstar-kaine");
|
// getquery("map=pornstar-kaine");
|
||||||
|
getquery(NULL);
|
||||||
printf("%s", html_bot);
|
printf("%s", html_bot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user