diff --git a/absec_mysql.h b/absec_auto.h similarity index 100% rename from absec_mysql.h rename to absec_auto.h diff --git a/absec_etc.h b/absec_etc.h deleted file mode 100644 index 0fe66a8..0000000 --- a/absec_etc.h +++ /dev/null @@ -1,10 +0,0 @@ - -#define PAM_OK 0 -#define PAM_ERROR_START -1 -#define PAM_ERROR_INVALID_CRED -2 -#define PAM_ERROR_STOP -3 - -#define HTTP_UNAUTHORIZED 401 -#define OK 200 - -int check_user(char* user, char* pass); diff --git a/absec_fs.c b/absec_fs.c new file mode 100644 index 0000000..24f0a98 --- /dev/null +++ b/absec_fs.c @@ -0,0 +1,66 @@ + + +#include "absec_auto.h" + +#include +#include +#include "httpd.h" + +//////////////////////////////////////////////////////////////// +// +int mysql_lookup(request_rec *r, struct stat *fperm) +{ + MYSQL *conn; + MYSQL_RES *res; + MYSQL_ROW row; + + char *server = "localhost"; + char *user = "jlcyr"; + char *password = "password"; /* set me first */ + char *database = "absec"; + + conn = mysql_init(NULL); + + /* Connect to database */ + if (!mysql_real_connect(conn, server, + user, password, database, 0, NULL, 0)) { + printf("%s\n", mysql_error(conn)); + return(0); + } + + char query[256]; + sprintf(query, "select * from urls where url='%s'", r->uri); + /* send SQL query */ + //if (mysql_query(conn, "show tables")) { + if (mysql_query(conn, query)) { + printf("%s\n", mysql_error(conn)); + return(-1); + } + + res = mysql_use_result(conn); + + /* output table name */ + printf("MySQL data:\n
"); + int cnt = 0; + while ((row = mysql_fetch_row(res)) != NULL) { + printf("%s %d %d %o \n
", row[0], atoi(row[1]), atoi(row[2]), atoi(row[3])); + fperm->st_uid = atoi(row[1]); + fperm->st_gid = atoi(row[2]); + fperm->st_mode = atoi(row[3]); + cnt = cnt + 1; + } + + if (cnt==0) { + sprintf(query, "insert into urls (url, uid, gid, perms) values ('%s', 0, 0, 0)", r->uri); + if (mysql_query(conn, query)) { + printf("%s\n", mysql_error(conn)); + return(0); + } + printf("Aucune donnee\n
"); + } + + /* close connection */ + mysql_free_result(res); + mysql_close(conn); + return(0); +} diff --git a/absec_mysql.c b/absec_mysql.c index cafa45c..24f0a98 100644 --- a/absec_mysql.c +++ b/absec_mysql.c @@ -1,5 +1,7 @@ +#include "absec_auto.h" + #include #include #include "httpd.h" diff --git a/absec_pam.h b/absec_pam.h deleted file mode 100644 index a057824..0000000 --- a/absec_pam.h +++ /dev/null @@ -1,7 +0,0 @@ - -#define PAM_OK 0 -#define PAM_ERROR_START -1 -#define PAM_ERROR_INVALID_CRED -2 -#define PAM_ERROR_STOP -3 - -int check_user(char* user, char* pass); diff --git a/readme.txt b/readme.txt index 005018e..a9beab9 100644 --- a/readme.txt +++ b/readme.txt @@ -9,6 +9,7 @@ Le projet dépend pour être compilé de * libapr1-dev * libaprutil-dev * apache2-dev +* libmysqlclient-dev Un script de compilation est disponible compile.sh diff --git a/test_mysql.c b/test_auto.c old mode 100755 new mode 100644 similarity index 94% rename from test_mysql.c rename to test_auto.c index 93eba3c..b043945 --- a/test_mysql.c +++ b/test_auto.c @@ -1,7 +1,7 @@ - -#include +#include "absec_auto.h" +//#include #include int main() { diff --git a/test_etc.c b/test_etc.c deleted file mode 100644 index 5f7e681..0000000 --- a/test_etc.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "absec_pam.h" -#include - -void main(int argc, char** argv){ - char *user = "jlcyr"; - char *pass = "jlcyrpass01!"; - printf("ABSEC auth etc for %s identified by %s\r\n", user, pass); - int retval; - retval = check_user(user, pass); - printf("Retval: %d\r\n", retval); - if (retval == PAM_ERROR_START) printf("Error at start\r\n"); - if (retval == PAM_ERROR_INVALID_CRED) printf("Invalid user/pass\r\n"); - if (retval == PAM_OK) printf("OK\r\n"); - printf("Test completed\r\n"); - return; -} diff --git a/test_pam.c b/test_pam.c deleted file mode 100644 index 95198ea..0000000 --- a/test_pam.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "absec_pam.h" -#include "absec_etc.h" -#include - -void main(int argc, char** argv){ - char *user = "jlcyr"; - char *pass = "jlcyrpass01!"; - printf("ABSEC auth pam for %s identified by %s\r\n", user, pass); - int retval = check_user(user, pass); - printf("Retval: %d\r\n", retval); - if (retval == PAM_ERROR_START) printf("Error at start\r\n"); - if (retval == PAM_ERROR_INVALID_CRED) printf("Invalid user/pass\r\n"); - if (retval == PAM_OK) printf("OK\r\n"); - printf("Test completed\r\n"); - return; -}