From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Apr 24 22:00:15 2009 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44EA31065673 for ; Fri, 24 Apr 2009 22:00:15 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 1636B8FC2B for ; Fri, 24 Apr 2009 22:00:15 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n3OM0ETV033895 for ; Fri, 24 Apr 2009 22:00:15 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n3OM0E4H033894; Fri, 24 Apr 2009 22:00:14 GMT (envelope-from gnats) Resent-Date: Fri, 24 Apr 2009 22:00:14 GMT Resent-Message-Id: <200904242200.n3OM0E4H033894@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Morton Jonuschat Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EA951065678 for ; Fri, 24 Apr 2009 21:58:03 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id 4A4AD8FC17 for ; Fri, 24 Apr 2009 21:58:03 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.3/8.14.3) with ESMTP id n3OLw272055067 for ; Fri, 24 Apr 2009 21:58:02 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.3/8.14.3/Submit) id n3OLw2C7055066; Fri, 24 Apr 2009 21:58:02 GMT (envelope-from nobody) Message-Id: <200904242158.n3OLw2C7055066@www.freebsd.org> Date: Fri, 24 Apr 2009 21:58:02 GMT From: Morton Jonuschat To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: ports/133982: New port: www/mod_auth_mysql_debian Apache 2 module for MySQL authentication X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Apr 2009 22:00:15 -0000 >Number: 133982 >Category: ports >Synopsis: New port: www/mod_auth_mysql_debian Apache 2 module for MySQL authentication >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Fri Apr 24 22:00:14 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Morton Jonuschat >Release: 7.2-RC1 >Organization: >Environment: FreeBSD localhost 7.2-RC1 FreeBSD 7.2-RC1 #0: Sat Apr 18 09:06:35 CEST 2009 root@localhost:/usr/obj/usr/src/sys/GENERIC i386 >Description: New port for the Debian provided version of an Apache2 MySQL authentication module A module for the Apache 2 web server which enables HTTP authentication against information stored in a MySQL database. WWW: http://packages.debian.org/en/lenny/libapache2-mod-auth-mysql >How-To-Repeat: >Fix: Patch attached with submission follows: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # mod_auth_mysql_debian # mod_auth_mysql_debian/files # mod_auth_mysql_debian/files/patch-008-make-scrambled-password # mod_auth_mysql_debian/files/patch-013-CVE-2008-2384-charset # mod_auth_mysql_debian/files/patch-005-directives # mod_auth_mysql_debian/files/patch-009-port-int # mod_auth_mysql_debian/files/patch-011-auth_basic # mod_auth_mysql_debian/files/patch-014-libcrypt # mod_auth_mysql_debian/files/patch-007-unify-namespace # mod_auth_mysql_debian/files/patch-003-ftbfs_apache2 # mod_auth_mysql_debian/files/patch-004-reconnect # mod_auth_mysql_debian/files/Makefile # mod_auth_mysql_debian/files/patch-010-enctype-apache # mod_auth_mysql_debian/files/patch-006-options # mod_auth_mysql_debian/files/patch-012-charset # mod_auth_mysql_debian/files/patch-001-usage # mod_auth_mysql_debian/Makefile # mod_auth_mysql_debian/pkg-descr # mod_auth_mysql_debian/distinfo # echo c - mod_auth_mysql_debian mkdir -p mod_auth_mysql_debian > /dev/null 2>&1 echo c - mod_auth_mysql_debian/files mkdir -p mod_auth_mysql_debian/files > /dev/null 2>&1 echo x - mod_auth_mysql_debian/files/patch-008-make-scrambled-password sed 's/^X//' >mod_auth_mysql_debian/files/patch-008-make-scrambled-password << 'f1e5c1f21c34d8a12c17860dfc3e0356' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 008-make_scrambled_password.dpatch by Joey Schulze X## X## All lines beginning with `## DP:' are a description of the patch. X## DP: Adjust the buffer size used by make_scrambled_password() X X@DPATCH@ Xdiff -urNad mod-auth-mysql~/mod_auth_mysql.c mod-auth-mysql/mod_auth_mysql.c X--- mod_auth_mysql.c 2008-05-14 18:46:21.000000000 +0200 X+++ mod_auth_mysql.c 2008-05-14 22:15:44.000000000 +0200 X@@ -103,6 +103,9 @@ X #endif X #define SHA1SUM_ENCRYPTION_FLAG 1<<6 X X+/* from include/sha1.h from the mysql-server source distribution */ X+#define SHA1_HASH_SIZE 20 /* Hash size in bytes */ X+ X static int check_no_encryption(const char *passwd, char *enc_passwd) X { X return (!strcmp(passwd, enc_passwd)); X@@ -229,7 +232,7 @@ X X static int check_mysql_encryption(const char *passwd, char *enc_passwd) X { X- char scrambled_passwd[32]; X+ char scrambled_passwd[2*SHA1_HASH_SIZE + 2]; X X make_scrambled_password(scrambled_passwd, passwd); X return (!strcmp(scrambled_passwd, enc_passwd)); f1e5c1f21c34d8a12c17860dfc3e0356 echo x - mod_auth_mysql_debian/files/patch-013-CVE-2008-2384-charset sed 's/^X//' >mod_auth_mysql_debian/files/patch-013-CVE-2008-2384-charset << 'ac9987cb4f26c6f935cd8892ddfdd537' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 013-CVE-2008-2384_charset.dpatch by X## X## All lines beginning with `## DP:' are a description of the patch. X## DP: Fix CVE-2008-2384: Encode strings securely via mysql_real_escape_string() X X@DPATCH@ Xdiff -urNad mod-auth-mysql~/mod_auth_mysql.c mod-auth-mysql/mod_auth_mysql.c X--- mod_auth_mysql.c 2009-01-07 21:47:20.000000000 +0100 X+++ mod_auth_mysql.c 2009-01-08 21:12:47.000000000 +0100 X@@ -340,6 +340,8 @@ typedef struct { X X module auth_mysql_module; X X+static int open_auth_dblink(request_rec *r, mysql_auth_config_rec *sec); X+ X #ifdef APACHE2 X static apr_status_t X #else X@@ -506,9 +508,9 @@ static const char *set_scrambled_passwor X * server when passed in as part of a query. X */ X #ifdef APACHE2 X-static char *mysql_escape(char *str, apr_pool_t *p) X+static char *mysql_escape(mysql_auth_config_rec *sec, request_rec *r, char *str, apr_pool_t *p) X #else X-static char *mysql_escape(char *str, pool *p) X+static char *mysql_escape(mysql_auth_config_rec *sec, request_rec *r, char *str, pool *p) X #endif X { X char *dest; X@@ -522,7 +524,7 @@ static char *mysql_escape(char *str, poo X return str; X } X X- mysql_escape_string(dest, str, strlen(str)); X+ mysql_real_escape_string(sec->dbh, dest, str, strlen(str)); X X return dest; X } X@@ -1374,25 +1376,18 @@ static int open_auth_dblink(request_rec X } X X if (sec->db_charset) { X+ const char *check; X+ X APACHELOG(APLOG_DEBUG, r, X "Setting character set to %s", sec->db_charset); X X- query = (char *) PSTRCAT(r->pool, "SET CHARACTER SET ", sec->db_charset, NULL); X- if (!query) { X- APACHELOG(APLOG_ERR, r, X- "Failed to create query string - we're no good..."); X- return -1; X- } X+ mysql_set_character_set(sec->dbh, sec->db_charset); X X- if (mysql_query(sec->dbh, query)) { X- if (sec->dbh) X- { X- APACHELOG(APLOG_ERR, r, X- "Query call failed: %s (%i)", mysql_error(sec->dbh), X- mysql_errno(sec->dbh)); X- } X+ check = mysql_character_set_name(sec->dbh); X X- APACHELOG(APLOG_DEBUG, r, "Failed query was: [%s]", query); X+ if (!check || strcmp(sec->db_charset, check)) { X+ APACHELOG(APLOG_ERR, r, X+ "Failed to set character set to %s", sec->db_charset); X return -1; X } X } X@@ -1537,11 +1532,27 @@ static int mysql_check_user_password(req X char *auth_table = "mysql_auth", *auth_user_field = "username", X *auth_password_field = "passwd", *auth_password_clause = ""; X char *query; X- char *esc_user = mysql_escape(user, r->pool); X+ char *esc_user = NULL; X MYSQL_RES *result; X MYSQL_ROW sql_row; X+ int error = CR_UNKNOWN_ERROR; X int rv; X X+ if (!sec->dbh) { X+ APACHELOG(APLOG_DEBUG, r, X+ "No DB connection open - firing one up"); X+ if ((error = open_auth_dblink(r, sec))) { X+ APACHELOG(APLOG_DEBUG, r, X+ "open_auth_dblink returned %i", error); X+ return error; X+ } X+ X+ APACHELOG(APLOG_DEBUG, r, X+ "Correctly opened a new DB connection"); X+ } X+ X+ esc_user = mysql_escape(sec, r, user, r->pool); X+ X if (sec->user_table) { X auth_table = sec->user_table; X } X@@ -1627,8 +1638,8 @@ static int mysql_check_group(request_rec X { X char *auth_table = "mysql_auth", *auth_group_field="groups", *auth_group_clause=""; X char *query; X- char *esc_user = mysql_escape(user, r->pool); X- char *esc_group = mysql_escape(group, r->pool); X+ char *esc_user = mysql_escape(sec, r, user, r->pool); X+ char *esc_group = mysql_escape(sec, r, group, r->pool); X MYSQL_RES *result; X MYSQL_ROW row; X char *auth_user_field = "username"; ac9987cb4f26c6f935cd8892ddfdd537 echo x - mod_auth_mysql_debian/files/patch-005-directives sed 's/^X//' >mod_auth_mysql_debian/files/patch-005-directives << '0d68c3ff96acd83f78a831f9a0c35943' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 005-directives.dpatch by Joey Schulze X## X## All lines beginning with `## DP:' are a description of the patch. X## DP: Improve documentation for Auth_MySQL_Group_Field X X@DPATCH@ Xdiff -u -p -r1.1 -r1.2 X--- DIRECTIVES 14 May 2008 08:46:20 -0000 1.1 X+++ DIRECTIVES 14 May 2008 12:53:34 -0000 1.2 X@@ -125,7 +125,8 @@ AuthMySQL_Password_Field X- As per ...Username_Field above. Defaults to 'groups'. X+ As per ...Username_Field above. Defaults to 'groups'. The query X+ will use FIND_IN_SET(,). X X AuthMySQL_Group_Field X Synonym for Auth_MySQL_Group_Field. 0d68c3ff96acd83f78a831f9a0c35943 echo x - mod_auth_mysql_debian/files/patch-009-port-int sed 's/^X//' >mod_auth_mysql_debian/files/patch-009-port-int << '729154df05a118c1109d0d291e2ce3c9' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 009-port-int.dpatch by Lehel Bernadt X## X## All lines beginning with `## DP:' are a description of the patch. X## DP: Adjust port to int X X@DPATCH@ Xdiff -urNad mod-auth-mysql~/mod_auth_mysql.c mod-auth-mysql/mod_auth_mysql.c X--- mod_auth_mysql.c 2008-05-15 08:44:54.000000000 +0200 X+++ mod_auth_mysql.c 2008-05-15 08:45:35.000000000 +0200 X@@ -753,11 +753,11 @@ X (void*)APR_OFFSETOF(mysql_auth_config_rec, db_socket), X OR_AUTHCFG, "database host socket" ), X X- AP_INIT_TAKE1( "Auth_MySQL_Port", ap_set_string_slot, X+ AP_INIT_TAKE1( "Auth_MySQL_Port", ap_set_int_slot, X (void*)APR_OFFSETOF(mysql_auth_config_rec, db_port), X OR_AUTHCFG, "database host port" ), X X- AP_INIT_TAKE1( "AuthMySQL_Port", ap_set_string_slot, X+ AP_INIT_TAKE1( "AuthMySQL_Port", ap_set_int_slot, X (void*)APR_OFFSETOF(mysql_auth_config_rec, db_port), X OR_AUTHCFG, "database host port" ), X X@@ -1021,11 +1021,11 @@ X (void *) XtOffsetOf(mysql_auth_config_rec, db_socket), X OR_AUTHCFG, TAKE1, "database host socket" }, X X- { "Auth_MySQL_Port", ap_set_string_slot, X+ { "Auth_MySQL_Port", ap_set_int_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, db_port), X OR_AUTHCFG, TAKE1, "database host socket" }, X X- { "AuthMySQL_Port", ap_set_string_slot, X+ { "AuthMySQL_Port", ap_set_int_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, db_port), X OR_AUTHCFG, TAKE1, "database host socket" }, X 729154df05a118c1109d0d291e2ce3c9 echo x - mod_auth_mysql_debian/files/patch-011-auth_basic sed 's/^X//' >mod_auth_mysql_debian/files/patch-011-auth_basic << '003611489d92db3e484441eb6db4cbf8' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 011-auth_basic.dpatch by Joey Schulze X## X## DP: Document problems with other authentication modules X X@DPATCH@ Xdiff -urNad mod-auth-mysql~/USAGE mod-auth-mysql/USAGE X--- USAGE 2008-11-21 16:16:37.000000000 +0100 X+++ USAGE 2008-11-21 16:24:41.000000000 +0100 X@@ -123,3 +123,22 @@ X X The full set of directives available are now listed in the file DIRECTIVES, X for ease of perusal. X+ X+Disable other Auth methods X+-------------------------- X+ X+For some reason Apache has problems handing over authority to this X+module if this is requested an another auth module is also loaded. X+ X+If you have another authentication module loaded, you'll have to X+disable it the hard way. X+ X+AuthBasicAuthoritative Off X+AuthUserFile /dev/null X+ X+The following option is not sufficient X+ X+Auth_MySQL_Authoritative On X+ X+If you experience similar problems with group membership, try X+repeating the same procedure with AuthGroupFile. 003611489d92db3e484441eb6db4cbf8 echo x - mod_auth_mysql_debian/files/patch-014-libcrypt sed 's/^X//' >mod_auth_mysql_debian/files/patch-014-libcrypt << '5d6d69a4fac51480c960588c185085e1' X--- mod_auth_mysql.c.orig 2009-04-24 19:28:41.994583658 +0200 X+++ mod_auth_mysql.c 2009-04-24 19:29:29.812631203 +0200 X@@ -60,7 +60,7 @@ X #include X #include X X-#ifdef HAVE_CRYPT_H X+#if defined(HAVE_CRYPT_H) || defined(HAVE_LIBCRYPT) X #include X #endif X X@@ -99,7 +99,7 @@ X #define CRYPT_MD5_ENCRYPTION_FLAG 1<<3 X #endif X #define PHP_MD5_ENCRYPTION_FLAG 1<<4 X-#ifdef HAVE_CRYPT_H X+#if defined(HAVE_CRYPT_H) || defined(HAVE_LIBCRYPT) X #define CRYPT_ENCRYPTION_FLAG 1<<5 X #endif X #define SHA1SUM_ENCRYPTION_FLAG 1<<6 X@@ -136,7 +136,7 @@ X } X #endif X X-#ifdef HAVE_CRYPT_H X+#if defined(HAVE_CRYPT_H) || defined(HAVE_LIBCRYPT) X static int check_crypt_encryption(const char *passwd, char *enc_passwd) X { X return (!strcmp(crypt(passwd, enc_passwd), enc_passwd)); X@@ -264,7 +264,9 @@ X #if CRYPT_MD5 X { "Crypt_MD5", check_crypt_MD5_encryption, CRYPT_MD5_ENCRYPTION_FLAG }, X #endif X+#if defined(HAVE_CRYPT_H) || defined(HAVE_LIBCRYPT) X { "Crypt", check_crypt_encryption, CRYPT_ENCRYPTION_FLAG }, X+#endif X { "PHP_MD5", check_PHP_MD5_encryption, PHP_MD5_ENCRYPTION_FLAG }, X { "SHA1Sum", check_SHA1Sum_encryption, SHA1SUM_ENCRYPTION_FLAG}, X { "Apache", check_apache_encryption, APACHE_ENCRYPTION_FLAG }, 5d6d69a4fac51480c960588c185085e1 echo x - mod_auth_mysql_debian/files/patch-007-unify-namespace sed 's/^X//' >mod_auth_mysql_debian/files/patch-007-unify-namespace << '4c5893bf3661b0686efd5200c88e6899' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 007-auth_mysql_user.dpatch by Joey Schulze X## X## All lines beginning with `## DP:' are a description of the patch. X## DP: Unify AuthMySQL_ and Auth_MySQL_ namespace X X@DPATCH@ Xdiff -urNad mod-auth-mysql~/DIRECTIVES mod-auth-mysql/DIRECTIVES X--- DIRECTIVES 2008-05-14 21:05:45.000000000 +0200 X+++ DIRECTIVES 2008-05-14 21:05:45.000000000 +0200 X@@ -1,23 +1,27 @@ X All the directives understood by this version of mod-auth-mysql are listed X-below. The huge number of synonym directives is due to the merging of two X-separate versions of the program, both of which had subtly different usage X-symantics. I'm sure there will be rationalisation in the near future. X+below. All directives exist in the two forms Auth_MySQL_* and AuthMySQL_* X+and share the same semantics. They are the result of merging two separate X+versions of the mod_auth_mysql in the first place, both of which had subtly X+different usage symantics. The directive names have since then unified. X+ X+Auth_MySQL X+ Enable/disable MySQL authentication X X Auth_MySQL_Info X Server-wide config option to specify the database host, username, X and password used to connect to the MySQL server. X X This option affects all directories which do not override it via X- AuthMySQL_Host, AuthMySQL_User, and/or AuthMySQL_Password. X+ Auth_MySQL_Host, Auth_MySQL_User, and/or Auth_MySQL_Password. X X-AuthMySQL_DefaultHost X+Auth_MySQL_DefaultHost X Specifies the MySQL server to use for authentication. X X This option affects all directories which do not override it via X- AuthMySQL_Host. X+ Auth_MySQL_Host. X X-AuthMySQL_Host X- Synonym for AuthMySQL_DefaultHost, to be used in .htaccess files and X+Auth_MySQL_Host X+ Synonym for Auth_MySQL_DefaultHost, to be used in .htaccess files and X directory-specific entries. X X Auth_MySQL_DefaultPort X@@ -28,35 +32,37 @@ X Auth_MySQL_Port. X X Auth_MySQL_Port X- Specifies a non-default port to use (other than 3306) when talking X- to the MySQL server on AuthMySQL_Host or AuthMySQL_DefaultHost. X+ Synonym for Auth_MySQL_DefaultPort, to be used in .htaccess files and X+ directory-specific entries. X X Auth_MySQL_DefaultSocket X- If using a local MySQL server, you can X- specify a non-default named pipe to use instead of the default pipe X- name compiled into your MySQL client library. X+ If using a local MySQL server, you can specify a non-default named X+ pipe to use instead of the default pipe name compiled into your MySQL X+ client library. X X This option affects all directories which do not override it via X Auth_MySQL_Socket. X X Auth_MySQL_Socket X- If using a local MySQL server, you can specify a non-default named X- pipe to use instead of the default one compiled into MySQL with this X- option. X+ Synonym for Auth_MySQL_DefaultSocket, to be used in .htaccess files and X+ directory-specific entries. X X-AuthMySQL_DefaultUser X+Auth_MySQL_DefaultUser X Specifies the username for connection to the MySQL server. X X-AuthMySQL_User X- Synonym for AuthMySQL_DefaultUser, to be used in .htaccess files and X+Auth_MySQL_User X+ Synonym for Auth_MySQL_DefaultUser, to be used in .htaccess files and X directory-specific entries. X X-AuthMySQL_DefaultPassword X+Auth_MySQL_Username X+ Synonym for Auth_MySQL_User. X+ X+Auth_MySQL_DefaultPassword X Specifies the password user together with the above user. X X-AuthMySQL_Password X- Synonym for AuthMySQL_Password, to be used in .htaccess files and X- directory-specific entries. X+Auth_MySQL_Password X+ Synonym for Auth_MySQL_DefaultPassword, to be used in .htaccess files X+ and directory-specific entries. X X Auth_MySQL_General_DB X Server-wide, specifies a default database name to use. X@@ -65,13 +71,9 @@ X Synonym for Auth_MySQL_General_DB, to be used in .htaccess files and X directory-specific entries. X X-AuthMySQL_DefaultDB X+Auth_MySQL_DefaultDB X Synonym for Auth_MySQL_General_DB. X X-AuthMySQL_DB X- Synonym for Auth_MySQL_General_DB, to be used in .htaccess files and X- directory-specific entries. X- X AuthName "" X Describes the data you're guarding. X X@@ -96,27 +98,18 @@ X The name of the MySQL table in the specified database which stores X username:password pairs. By default, it is 'mysql_auth'. X X-AuthMySQL_Password_Table X- Synonym for Auth_MySQL_Password_Table. X- X Auth_MySQL_Group_Table X As per ...Password_Table above, stores username:group pairs. X Normally you'll store username:password:group triplets in the one X table, but we are nothing if not flexible. Defaults to X 'mysql_auth'. X X-AuthMySQL_Group_Table X- Synonym for Auth_MySQL_Group_Table. X- X Auth_MySQL_Username_Field X The name of the field which stores usernames. Defaults to X 'username'. The username/password combo specified in Auth_MySQL_Info X must have select privileges to this field in the Password and Group X tables. X X-AuthMySQL_Username_Field X- Synonym for Auth_MySQL_Username_Field. X- X Auth_MySQL_Password_Field X As per ...Username_Field above, but for passwords. Same MySQL X access privileges. Defaults to 'password'. X@@ -128,9 +121,6 @@ X As per ...Username_Field above. Defaults to 'groups'. The query X will use FIND_IN_SET(,). X X-AuthMySQL_Group_Field X- Synonym for Auth_MySQL_Group_Field. X- X Auth_MySQL_Group_User_Field X The name of the field in the groups table which stores the username. X Defaults to the field name specified for usernames in the passwords X@@ -147,6 +137,9 @@ X Adds arbitrary clause to username:group matching query, for example: X " AND Allowed=1". Clause has to start with space. Default is empty. X X+Auth_MySQL_Where_Clause X+ Synonym for Auth_MySQL_Password_Clause. X+ X Auth_MySQL_Empty_Passwords X Whether or not to allow empty passwords. If the password field is X empty (equals to '') and this option is 'on', users would be able to X@@ -154,9 +147,6 @@ X PASSWORD CHECKING. If this is 'off', they would be denied access. X Default: 'on'. X X-AuthMySQL_Empty_Passwords X- Synonym for Auth_MySQL_Empty_Passwords. X- X Auth_MySQL_Encryption_Types X X Select which types of encryption to check, and in which order to X@@ -205,9 +195,6 @@ X MySQL X The hashing scheme used by the MySQL PASSWORD() function. X X-AuthMySQL_Encryption_Types X- Synonym for Auth_MySQL_Encryption_Types. X- X Auth_MySQL_Encrypted_Passwords (DEPRECATED) X Equivalent to: Auth_MySQL_Encryption_Types Crypt_DES X Only used if ...Encryption_Types is not set. Defaults to 'on'. If X@@ -215,17 +202,11 @@ X ...Encryption_Types is not set, passwords are expected to be in X plaintext. X X-AuthMySQL_Encrypted_Passwords (DEPRECATED) X- Synonym for Auth_MySQL_Encrypted_Passwords. X- X Auth_MySQL_Scrambled_Passwords (DEPRECATED) X Equivalent to: Auth_MySQL_Encryption_Types MySQL X The same restrictions apply to this directive as to X ...Encrypted_Passwords. X X-AuthMySQL_Scrambled_Passwords (DEPRECATED) X- Synonym for Auth_MySQL_Scrambled_Passwords. X- X Auth_MySQL_Authoritative X Whether or not to use other authentication schemes if the user is X successfully authenticated. That is, if the user passes the MySQL X@@ -233,9 +214,6 @@ X option is set 'off'. The default is 'on' (i.e. if the user passes X the MySQL module, they're considered OK). X X-AuthMySQL_Authoritative X- Synonym for Auth_MySQL_Authoritative. X- X Auth_MySQL_Non_Persistent X If set to 'on', the link to the MySQL server is explicitly closed X after each authentication request. Note that I can't think of any X@@ -245,10 +223,10 @@ X increase the maximum number of simultaneous threads in MySQL and X keep this option off. Default: off, and for good reason. X X-AuthMySQL_Persistent X+Auth_MySQL_Persistent X An antonym for Auth_MySQL_Non_Persistent. X X-AuthMySQL_AllowOverride X+Auth_MySQL_AllowOverride X Whether or not .htaccess files are allowed to use their own X Host/User/Password/DB specifications. If set to 'off', then the X defaults specified in the httpd.conf cannot be overridden. X@@ -257,6 +235,3 @@ X Whether or not to enable MySQL authentication. If it's off, the X MySQL authentication will simply pass authentication off to other X modules defined. X- X-AuthMySQL X- Synonym for Auth_MYSQL. Xdiff -urNad mod-auth-mysql~/USAGE mod-auth-mysql/USAGE X--- USAGE 2008-05-14 21:05:45.000000000 +0200 X+++ USAGE 2008-05-14 21:05:45.000000000 +0200 X@@ -44,9 +44,9 @@ X X or X X-AuthMySQL_DefaultHost X-AuthMySQL_DefaultUser X-AuthMySQL_DefaultPassword X+Auth_MySQL_DefaultHost X+Auth_MySQL_DefaultUser X+Auth_MySQL_DefaultPassword X X This should be placed globally. X X@@ -56,12 +56,12 @@ X Auth_MySQL_General_DB X X to set that. This setting can be overridden in .htaccess files if X-AuthMySQL_AllowOverride is set. X+Auth_MySQL_AllowOverride is set. X X On that topic, if you want .htaccess files to be restricted in what they're X able to connect to database-wise, you can X X-AuthMySQL_AllowOverride no X+Auth_MySQL_AllowOverride no X X and the host, user, password, and database name cannot be changed. X Xdiff -urNad mod-auth-mysql~/mod_auth_mysql.c mod-auth-mysql/mod_auth_mysql.c X--- mod_auth_mysql.c 2008-05-14 21:05:45.000000000 +0200 X+++ mod_auth_mysql.c 2008-05-14 21:16:30.000000000 +0200 X@@ -674,14 +674,30 @@ X NULL, X RSRC_CONF, "host, user and password of the MySQL database" ), X X+ AP_INIT_TAKE3( "AuthMySQL_Info", set_auth_mysql_info, X+ NULL, X+ RSRC_CONF, "host, user and password of the MySQL database" ), X+ X+ AP_INIT_TAKE1( "Auth_MySQL_DefaultHost", set_auth_mysql_host, X+ NULL, X+ RSRC_CONF, "Default MySQL host" ), X+ X AP_INIT_TAKE1( "AuthMySQL_DefaultHost", set_auth_mysql_host, X NULL, X RSRC_CONF, "Default MySQL host" ), X X+ AP_INIT_TAKE1( "Auth_MySQL_DefaultUser", set_auth_mysql_user, X+ NULL, X+ RSRC_CONF, "Default MySQL user" ), X+ X AP_INIT_TAKE1( "AuthMySQL_DefaultUser", set_auth_mysql_user, X NULL, X RSRC_CONF, "Default MySQL user" ), X X+ AP_INIT_TAKE1( "Auth_MySQL_DefaultPassword", set_auth_mysql_pwd, X+ NULL, X+ RSRC_CONF, "Default MySQL password" ), X+ X AP_INIT_TAKE1( "AuthMySQL_DefaultPassword", set_auth_mysql_pwd, X NULL, X RSRC_CONF, "Default MySQL password" ), X@@ -690,23 +706,39 @@ X NULL, X RSRC_CONF, "Default MySQL server port" ), X X+ AP_INIT_TAKE1( "AuthMySQL_DefaultPort", set_auth_mysql_port, X+ NULL, X+ RSRC_CONF, "Default MySQL server port" ), X+ X AP_INIT_TAKE1( "Auth_MySQL_DefaultSocket", set_auth_mysql_socket, X NULL, X RSRC_CONF, "Default MySQL server socket" ), X X+ AP_INIT_TAKE1( "AuthMySQL_DefaultSocket", set_auth_mysql_socket, X+ NULL, X+ RSRC_CONF, "Default MySQL server socket" ), X+ X AP_INIT_TAKE1( "Auth_MySQL_General_DB", set_auth_mysql_db, X NULL, X RSRC_CONF, "default database for MySQL authentication" ), X X+ AP_INIT_TAKE1( "AuthMySQL_General_DB", set_auth_mysql_db, X+ NULL, X+ RSRC_CONF, "default database for MySQL authentication" ), X+ X+ AP_INIT_TAKE1( "Auth_MySQL_DefaultDB", set_auth_mysql_db, X+ NULL, X+ RSRC_CONF, "default database for MySQL authentication" ), X+ X AP_INIT_TAKE1( "AuthMySQL_DefaultDB", set_auth_mysql_db, X NULL, X RSRC_CONF, "default database for MySQL authentication" ), X X- AP_INIT_TAKE1( "AuthMySQL_Host", ap_set_string_slot, X+ AP_INIT_TAKE1( "Auth_MySQL_Host", ap_set_string_slot, X (void*)APR_OFFSETOF(mysql_auth_config_rec, db_host), X OR_AUTHCFG, "database host" ), X X- AP_INIT_TAKE1( "Auth_MySQL_Host", ap_set_string_slot, X+ AP_INIT_TAKE1( "AuthMySQL_Host", ap_set_string_slot, X (void*)APR_OFFSETOF(mysql_auth_config_rec, db_host), X OR_AUTHCFG, "database host" ), X X@@ -730,12 +762,20 @@ X (void*)APR_OFFSETOF(mysql_auth_config_rec, db_user), X OR_AUTHCFG, "database user" ), X X+ AP_INIT_TAKE1( "AuthMySQL_Username", ap_set_string_slot, X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_user), X+ OR_AUTHCFG, "database user" ), X+ X+ AP_INIT_TAKE1( "Auth_MySQL_User", ap_set_string_slot, X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_user), X+ OR_AUTHCFG, "database user" ), X+ X AP_INIT_TAKE1( "AuthMySQL_User", ap_set_string_slot, X (void*)APR_OFFSETOF(mysql_auth_config_rec, db_user), X OR_AUTHCFG, "database user" ), X X AP_INIT_TAKE1( "Auth_MySQL_Password", ap_set_string_slot, X- (void*)APR_OFFSETOF(mysql_auth_config_rec, db_pwd), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_pwd), X OR_AUTHCFG, "database password" ), X X AP_INIT_TAKE1( "AuthMySQL_Password", ap_set_string_slot, X@@ -762,13 +802,17 @@ X (void*)APR_OFFSETOF(mysql_auth_config_rec, group_table), X OR_AUTHCFG, "Name of the MySQL table containing the group-name/user-name combination; can be the same as the password-table." ), X X+ AP_INIT_TAKE1( "AuthMySQL_Group_Table", ap_set_string_slot, X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, group_table), X+ OR_AUTHCFG, "Name of the MySQL table containing the group-name/user-name combination; can be the same as the password-table." ), X+ X AP_INIT_TAKE1( "Auth_MySQL_Group_Clause", ap_set_string_slot, X (void*)APR_OFFSETOF(mysql_auth_config_rec, group_where_clause), X OR_AUTHCFG, "Additional WHERE clause for group/user-name lookup" ), X X- AP_INIT_TAKE1( "AuthMySQL_Group_Table", ap_set_string_slot, X- (void*)APR_OFFSETOF(mysql_auth_config_rec, group_table), X- OR_AUTHCFG, "Name of the MySQL table containing the group-name/user-name combination; can be the same as the password-table." ), X+ AP_INIT_TAKE1( "AuthMySQL_Group_Clause", ap_set_string_slot, X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, group_where_clause), X+ OR_AUTHCFG, "Additional WHERE clause for group/user-name lookup" ), X X AP_INIT_TAKE1( "Auth_MySQL_Password_Field", ap_set_string_slot, X (void*)APR_OFFSETOF(mysql_auth_config_rec, password_field), X@@ -782,6 +826,10 @@ X (void*)APR_OFFSETOF(mysql_auth_config_rec, password_where_clause), X OR_AUTHCFG, "Additional WHERE clause for group password/user-name lookup" ), X X+ AP_INIT_TAKE1( "AuthMySQL_Password_Clause", ap_set_string_slot, X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, password_where_clause), X+ OR_AUTHCFG, "Additional WHERE clause for group password/user-name lookup" ), X+ X AP_INIT_TAKE1( "Auth_MySQL_Username_Field", ap_set_string_slot, X (void*)APR_OFFSETOF(mysql_auth_config_rec, user_field), X OR_AUTHCFG, "The name of the user-name field in the MySQL password (and possibly group) table(s)." ), X@@ -822,6 +870,10 @@ X NULL, X OR_AUTHCFG, "When 'on' the MySQL database is taken to be authoritative and access control is not passed along to other db or access modules." ), X X+ AP_INIT_FLAG( "Auth_MySQL_AllowOverride", set_auth_mysql_override, X+ NULL, X+ RSRC_CONF, "Allow directory overrides of configuration" ), X+ X AP_INIT_FLAG( "AuthMySQL_AllowOverride", set_auth_mysql_override, X NULL, X RSRC_CONF, "Allow directory overrides of configuration" ), X@@ -854,6 +906,14 @@ X NULL, X OR_AUTHCFG, "Use non-persistent MySQL links" ), X X+ AP_INIT_FLAG( "AuthMySQL_Non_Persistent", set_non_persistent, X+ NULL, X+ OR_AUTHCFG, "Use non-persistent MySQL links" ), X+ X+ AP_INIT_FLAG( "Auth_MySQL_Persistent", set_persistent, X+ NULL, X+ OR_AUTHCFG, "Use non-persistent MySQL links" ), X+ X AP_INIT_FLAG( "AuthMySQL_Persistent", set_persistent, X NULL, X OR_AUTHCFG, "Use non-persistent MySQL links" ), X@@ -870,6 +930,10 @@ X (void*)APR_OFFSETOF(mysql_auth_config_rec, password_where_clause), X OR_AUTHCFG, "Additional WHERE clause for group password/user-name lookup" ), X X+ AP_INIT_TAKE1( "AuthMySQL_Where", ap_set_string_slot, X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, password_where_clause), X+ OR_AUTHCFG, "Additional WHERE clause for group password/user-name lookup" ), X+ X { NULL } X }; X #else X@@ -878,14 +942,30 @@ X NULL, X RSRC_CONF, TAKE3, "host, user and password of the MySQL database" }, X X+ { "AuthMySQL_Info", set_auth_mysql_info, X+ NULL, X+ RSRC_CONF, TAKE3, "host, user and password of the MySQL database" }, X+ X+ { "Auth_MySQL_DefaultHost", set_auth_mysql_host, X+ NULL, X+ RSRC_CONF, TAKE1, "Default MySQL host" }, X+ X { "AuthMySQL_DefaultHost", set_auth_mysql_host, X NULL, X RSRC_CONF, TAKE1, "Default MySQL host" }, X X+ { "Auth_MySQL_DefaultUser", set_auth_mysql_user, X+ NULL, X+ RSRC_CONF, TAKE1, "Default MySQL user" }, X+ X { "AuthMySQL_DefaultUser", set_auth_mysql_user, X NULL, X RSRC_CONF, TAKE1, "Default MySQL user" }, X X+ { "Auth_MySQL_DefaultPassword", set_auth_mysql_pwd, X+ NULL, X+ RSRC_CONF, TAKE1, "Default MySQL password" }, X+ X { "AuthMySQL_DefaultPassword", set_auth_mysql_pwd, X NULL, X RSRC_CONF, TAKE1, "Default MySQL password" }, X@@ -894,23 +974,39 @@ X NULL, X RSRC_CONF, TAKE1, "Default MySQL server port" }, X X+ { "AuthMySQL_DefaultPort", set_auth_mysql_port, X+ NULL, X+ RSRC_CONF, TAKE1, "Default MySQL server port" }, X+ X { "Auth_MySQL_DefaultSocket", set_auth_mysql_socket, X NULL, X RSRC_CONF, TAKE1, "Default MySQL server socket" }, X X+ { "AuthMySQL_DefaultSocket", set_auth_mysql_socket, X+ NULL, X+ RSRC_CONF, TAKE1, "Default MySQL server socket" }, X+ X { "Auth_MySQL_General_DB", set_auth_mysql_db, X NULL, X RSRC_CONF, TAKE1, "default database for MySQL authentication" }, X X+ { "AuthMySQL_General_DB", set_auth_mysql_db, X+ NULL, X+ RSRC_CONF, TAKE1, "default database for MySQL authentication" }, X+ X+ { "Auth_MySQL_DefaultDB", set_auth_mysql_db, X+ NULL, X+ RSRC_CONF, TAKE1, "default database for MySQL authentication" }, X+ X { "AuthMySQL_DefaultDB", set_auth_mysql_db, X NULL, X RSRC_CONF, TAKE1, "default database for MySQL authentication" }, X X- { "AuthMySQL_Host", ap_set_string_slot, X+ { "Auth_MySQL_Host", ap_set_string_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, db_host), X OR_AUTHCFG, TAKE1, "database host" }, X X- { "Auth_MySQL_Host", ap_set_string_slot, X+ { "AuthMySQL_Host", ap_set_string_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, db_host), X OR_AUTHCFG, TAKE1, "database host" }, X X@@ -918,14 +1014,30 @@ X (void *) XtOffsetOf(mysql_auth_config_rec, db_socket), X OR_AUTHCFG, TAKE1, "database host socket" }, X X+ { "AuthMySQL_Socket", ap_set_string_slot, X+ (void *) XtOffsetOf(mysql_auth_config_rec, db_socket), X+ OR_AUTHCFG, TAKE1, "database host socket" }, X+ X { "Auth_MySQL_Port", ap_set_string_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, db_port), X OR_AUTHCFG, TAKE1, "database host socket" }, X X+ { "AuthMySQL_Port", ap_set_string_slot, X+ (void *) XtOffsetOf(mysql_auth_config_rec, db_port), X+ OR_AUTHCFG, TAKE1, "database host socket" }, X+ X { "Auth_MySQL_Username", ap_set_string_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, db_user), X OR_AUTHCFG, TAKE1, "database user" }, X X+ { "AuthMySQL_Username", ap_set_string_slot, X+ (void *) XtOffsetOf(mysql_auth_config_rec, db_user), X+ OR_AUTHCFG, TAKE1, "database user" }, X+ X+ { "Auth_MySQL_User", ap_set_string_slot, X+ (void *) XtOffsetOf(mysql_auth_config_rec, db_user), X+ OR_AUTHCFG, TAKE1, "database user" }, X+ X { "AuthMySQL_User", ap_set_string_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, db_user), X OR_AUTHCFG, TAKE1, "database user" }, X@@ -958,14 +1070,18 @@ X (void *) XtOffsetOf(mysql_auth_config_rec, group_table), X OR_AUTHCFG, TAKE1, "Name of the MySQL table containing the group-name/user-name combination; can be the same as the password-table." }, X X+ { "AuthMySQL_Group_Table", ap_set_string_slot, X+ (void *) XtOffsetOf(mysql_auth_config_rec, group_table), X+ OR_AUTHCFG, TAKE1, "Name of the MySQL table containing the group-name/user-name combination; can be the same as the password-table." }, X+ X { "Auth_MySQL_Group_Clause", ap_set_string_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, group_where_clause), X OR_AUTHCFG, TAKE1, "Additional WHERE clause for group/user-name lookup" }, X X- { "AuthMySQL_Group_Table", ap_set_string_slot, X- (void *) XtOffsetOf(mysql_auth_config_rec, group_table), X- OR_AUTHCFG, TAKE1, "Name of the MySQL table containing the group-name/user-name combination; can be the same as the password-table." }, X- X+ { "AuthMySQL_Group_Clause", ap_set_string_slot, X+ (void *) XtOffsetOf(mysql_auth_config_rec, group_where_clause), X+ OR_AUTHCFG, TAKE1, "Additional WHERE clause for group/user-name lookup" }, X+ X { "Auth_MySQL_Password_Field", ap_set_string_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, password_field), X OR_AUTHCFG, TAKE1, "The name of the field in the MySQL password table" }, X@@ -978,6 +1094,10 @@ X (void *) XtOffsetOf(mysql_auth_config_rec, password_where_clause), X OR_AUTHCFG, TAKE1, "Additional WHERE clause for group password/user-name lookup" }, X X+ { "AuthMySQL_Password_Clause", ap_set_string_slot, X+ (void *) XtOffsetOf(mysql_auth_config_rec, password_where_clause), X+ OR_AUTHCFG, TAKE1, "Additional WHERE clause for group password/user-name lookup" }, X+ X { "Auth_MySQL_Username_Field", ap_set_string_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, user_field), X OR_AUTHCFG, TAKE1, "The name of the user-name field in the MySQL password (and possibly group) table(s)." }, X@@ -1018,6 +1138,10 @@ X NULL, X OR_AUTHCFG, FLAG, "When 'on' the MySQL database is taken to be authoritative and access control is not passed along to other db or access modules." }, X X+ { "Auth_MySQL_AllowOverride", set_auth_mysql_override, X+ NULL, X+ RSRC_CONF, FLAG, "Allow directory overrides of configuration" }, X+ X { "AuthMySQL_AllowOverride", set_auth_mysql_override, X NULL, X RSRC_CONF, FLAG, "Allow directory overrides of configuration" }, X@@ -1050,6 +1174,14 @@ X NULL, X OR_AUTHCFG, FLAG, "Use non-persistent MySQL links" }, X X+ { "AuthMySQL_Non_Persistent", set_non_persistent, X+ NULL, X+ OR_AUTHCFG, FLAG, "Use non-persistent MySQL links" }, X+ X+ { "Auth_MySQL_Persistent", set_persistent, X+ NULL, X+ OR_AUTHCFG, FLAG, "Use non-persistent MySQL links" }, X+ X { "AuthMySQL_Persistent", set_persistent, X NULL, X OR_AUTHCFG, FLAG, "Use non-persistent MySQL links" }, X@@ -1066,6 +1198,10 @@ X (void *) XtOffsetOf(mysql_auth_config_rec, password_where_clause), X OR_AUTHCFG, TAKE1, "Additional WHERE clause for group password/user-name lookup" }, X X+ { "AuthMySQL_Where", ap_set_string_slot, X+ (void *) XtOffsetOf(mysql_auth_config_rec, password_where_clause), X+ OR_AUTHCFG, TAKE1, "Additional WHERE clause for group password/user-name lookup" }, X+ X { NULL } X }; X 4c5893bf3661b0686efd5200c88e6899 echo x - mod_auth_mysql_debian/files/patch-003-ftbfs_apache2 sed 's/^X//' >mod_auth_mysql_debian/files/patch-003-ftbfs_apache2 << 'd330cfc391c6d2da46cb8e20bbd111f9' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 003-ftbfs_apache2.2.dpatch by Julian Calaby X## X## DP: Fixes the FTBFS against apache2.2 (see #389579 for more information) X X@DPATCH@ X X--- mod_auth_mysql.c 2006-11-21 15:07:43.000000000 +1100 X+++ mod_auth_mysql.c 2006-11-21 16:42:29.000000000 +1100 X@@ -48,6 +48,7 @@ X #include X #ifdef APACHE2 X #include "http_request.h" /* for ap_hook_(check_user_id | auth_checker)*/ X+#include X #include X #include X #else X@@ -684,123 +685,123 @@ X RSRC_CONF, "default database for MySQL authentication" ), X X AP_INIT_TAKE1( "AuthMySQL_Host", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_host), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_host), X OR_AUTHCFG, "database host" ), X X AP_INIT_TAKE1( "Auth_MySQL_Host", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_host), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_host), X OR_AUTHCFG, "database host" ), X X AP_INIT_TAKE1( "Auth_MySQL_Socket", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_socket), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_socket), X OR_AUTHCFG, "database host socket" ), X X AP_INIT_TAKE1( "AuthMySQL_Socket", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_socket), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_socket), X OR_AUTHCFG, "database host socket" ), X X AP_INIT_TAKE1( "Auth_MySQL_Port", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_port), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_port), X OR_AUTHCFG, "database host port" ), X X AP_INIT_TAKE1( "AuthMySQL_Port", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_port), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_port), X OR_AUTHCFG, "database host port" ), X X AP_INIT_TAKE1( "Auth_MySQL_Username", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_user), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_user), X OR_AUTHCFG, "database user" ), X X AP_INIT_TAKE1( "AuthMySQL_User", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_user), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_user), X OR_AUTHCFG, "database user" ), X X AP_INIT_TAKE1( "Auth_MySQL_Password", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_pwd), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_pwd), X OR_AUTHCFG, "database password" ), X X AP_INIT_TAKE1( "AuthMySQL_Password", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_pwd), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_pwd), X OR_AUTHCFG, "database password" ), X X AP_INIT_TAKE1( "Auth_MySQL_DB", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_name), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_name), X OR_AUTHCFG, "database name" ), X X AP_INIT_TAKE1( "AuthMySQL_DB", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, db_name), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_name), X OR_AUTHCFG, "database name" ), X X AP_INIT_TAKE1( "Auth_MySQL_Password_Table", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, user_table), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, user_table), X OR_AUTHCFG, "Name of the MySQL table containing the password/user-name combination" ), X X AP_INIT_TAKE1( "AuthMySQL_Password_Table", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, user_table), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, user_table), X OR_AUTHCFG, "Name of the MySQL table containing the password/user-name combination" ), X X AP_INIT_TAKE1( "Auth_MySQL_Group_Table", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, group_table), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, group_table), X OR_AUTHCFG, "Name of the MySQL table containing the group-name/user-name combination; can be the same as the password-table." ), X X AP_INIT_TAKE1( "Auth_MySQL_Group_Clause", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, group_where_clause), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, group_where_clause), X OR_AUTHCFG, "Additional WHERE clause for group/user-name lookup" ), X X AP_INIT_TAKE1( "AuthMySQL_Group_Table", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, group_table), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, group_table), X OR_AUTHCFG, "Name of the MySQL table containing the group-name/user-name combination; can be the same as the password-table." ), X X AP_INIT_TAKE1( "Auth_MySQL_Password_Field", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, password_field), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, password_field), X OR_AUTHCFG, "The name of the field in the MySQL password table" ), X X AP_INIT_TAKE1( "AuthMySQL_Password_Field", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, password_field), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, password_field), X OR_AUTHCFG, "The name of the field in the MySQL password table" ), X X AP_INIT_TAKE1( "Auth_MySQL_Password_Clause", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, password_where_clause), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, password_where_clause), X OR_AUTHCFG, "Additional WHERE clause for group password/user-name lookup" ), X X AP_INIT_TAKE1( "Auth_MySQL_Username_Field", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, user_field), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, user_field), X OR_AUTHCFG, "The name of the user-name field in the MySQL password (and possibly group) table(s)." ), X X AP_INIT_TAKE1( "AuthMySQL_Username_Field", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, user_field), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, user_field), X OR_AUTHCFG, "The name of the user-name field in the MySQL password (and possibly group) table(s)." ), X X AP_INIT_TAKE1( "Auth_MySQL_Group_Field", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, group_field), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, group_field), X OR_AUTHCFG, "The name of the group field in the MySQL group table; must be set if you want to use groups." ), X X AP_INIT_TAKE1( "AuthMySQL_Group_Field", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, group_field), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, group_field), X OR_AUTHCFG, "The name of the group field in the MySQL group table; must be set if you want to use groups." ), X X AP_INIT_TAKE1( "Auth_MySQL_Group_User_Field", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, group_user_field), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, group_user_field), X OR_AUTHCFG, "The name of the user-name field in the MySQL group table; defaults to the same as the username field for the password table." ), X X AP_INIT_TAKE1( "AuthMySQL_Group_User_Field", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, group_user_field), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, group_user_field), X OR_AUTHCFG, "The name of the user-name field in the MySQL group table; defaults to the same as the username field for the password table." ), X X AP_INIT_FLAG( "Auth_MySQL_Empty_Passwords", ap_set_flag_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, allow_empty_passwords), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, allow_empty_passwords), X OR_AUTHCFG, "Enable (on) or disable (off) empty password strings; in which case any user password is accepted." ), X X AP_INIT_FLAG( "AuthMySQL_Empty_Passwords", ap_set_flag_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, allow_empty_passwords), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, allow_empty_passwords), X OR_AUTHCFG, "Enable (on) or disable (off) empty password strings; in which case any user password is accepted." ), X X AP_INIT_FLAG( "Auth_MySQL_Authoritative", ap_set_flag_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, authoritative), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, authoritative), X OR_AUTHCFG, "When 'on' the MySQL database is taken to be authoritative and access control is not passed along to other db or access modules." ), X X AP_INIT_FLAG( "AuthMySQL_Authoritative", ap_set_flag_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, authoritative), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, authoritative), X OR_AUTHCFG, "When 'on' the MySQL database is taken to be authoritative and access control is not passed along to other db or access modules." ), X X AP_INIT_FLAG( "AuthMySQL_AllowOverride", set_auth_mysql_override, X@@ -848,7 +849,7 @@ X OR_AUTHCFG, "Enable MySQL authentication" ), X X AP_INIT_TAKE1( "Auth_MySQL_Where", ap_set_string_slot, X- (void*)APR_XtOffsetOf(mysql_auth_config_rec, password_where_clause), X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, password_where_clause), X OR_AUTHCFG, "Additional WHERE clause for group password/user-name lookup" ), X X { NULL } d330cfc391c6d2da46cb8e20bbd111f9 echo x - mod_auth_mysql_debian/files/patch-004-reconnect sed 's/^X//' >mod_auth_mysql_debian/files/patch-004-reconnect << 'a9938ad040b7ff8e5ff9989c0467920d' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 004-reconnect.dpatch by Matej Vela X## X## All lines beginning with `## DP:' are a description of the patch. X## DP: Automatically re-establish connections with MySQL 5.0.3+. X X@DPATCH@ Xdiff -urNad libapache-mod-auth-mysql-4.3.9~/mod_auth_mysql.c libapache-mod-auth-mysql-4.3.9/mod_auth_mysql.c X--- mod_auth_mysql.c 2008-02-12 15:33:56.000000000 +0100 X+++ mod_auth_mysql.c 2008-02-12 15:43:30.000000000 +0100 X@@ -1092,6 +1092,9 @@ X char *dbname = auth_db_name, *user = auth_db_user, *pwd = auth_db_pwd; X void (*sigpipe_handler)(); X unsigned long client_flag = 0; X+#if MYSQL_VERSION_ID >= 50013 X+ my_bool do_reconnect = 1; X+#endif X X APACHELOG(APLOG_DEBUG, r, "Opening DB connection for %s", sec->dir); X X@@ -1160,6 +1163,13 @@ X return errno; X } X X+#if MYSQL_VERSION_ID >= 50013 X+ /* The default is no longer to automatically reconnect on failure, X+ * (as of 5.0.3) so we have to set that option here. The option is X+ * available from 5.0.13. */ X+ mysql_options(sec->dbh, MYSQL_OPT_RECONNECT, &do_reconnect); X+#endif X+ X signal(SIGPIPE, sigpipe_handler); X X APACHELOG(APLOG_DEBUG, r, "Persistent in %s is %i", sec->dir, sec->persistent); a9938ad040b7ff8e5ff9989c0467920d echo x - mod_auth_mysql_debian/files/Makefile sed 's/^X//' >mod_auth_mysql_debian/files/Makefile << '75e190e16de44d8b2b76eb23506efc99' X# X# $FreeBSD: ports/www/mod_auth_mysql_another/files/Makefile,v 1.1 2006/04/15 13:21:00 mbr Exp $ X# Xall: build X Xbuild: X %%APXS%% -c -L%%AP_LIB%% -I%%AP_INC%% -lmysqlclient -lm -lz mod_auth_mysql.c X Xinstall: X %%APXS%% -i mod_auth_mysql.so 75e190e16de44d8b2b76eb23506efc99 echo x - mod_auth_mysql_debian/files/patch-010-enctype-apache sed 's/^X//' >mod_auth_mysql_debian/files/patch-010-enctype-apache << '3a9c7d03fce84ee2eab21a45bcdf57a3' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 010-enctype-apache.dpatch by Andreas Barth X## Joey Schulze X## X## All lines beginning with `## DP:' are a description of the patch. X## DP: Provide an Apache authentication method X X@DPATCH@ Xdiff -urNad mod-auth-mysql~/DIRECTIVES mod-auth-mysql/DIRECTIVES X--- DIRECTIVES 2008-05-15 12:55:28.000000000 +0200 X+++ DIRECTIVES 2008-05-15 12:55:29.000000000 +0200 X@@ -194,6 +194,10 @@ X X MySQL X The hashing scheme used by the MySQL PASSWORD() function. X+ X+ Apache X+ The hashing scheme used by htpasswd utility. Compatible to X+ authuserfile. X X Auth_MySQL_Encrypted_Passwords (DEPRECATED) X Equivalent to: Auth_MySQL_Encryption_Types Crypt_DES Xdiff -urNad mod-auth-mysql~/mod_auth_mysql.c mod-auth-mysql/mod_auth_mysql.c X--- mod_auth_mysql.c 2008-05-15 12:55:28.000000000 +0200 X+++ mod_auth_mysql.c 2008-05-15 12:56:28.000000000 +0200 X@@ -103,6 +103,7 @@ X #define CRYPT_ENCRYPTION_FLAG 1<<5 X #endif X #define SHA1SUM_ENCRYPTION_FLAG 1<<6 X+#define APACHE_ENCRYPTION_FLAG 1<<7 X X /* from include/sha1.h from the mysql-server source distribution */ X #define SHA1_HASH_SIZE 20 /* Hash size in bytes */ X@@ -239,6 +240,15 @@ X return (!strcmp(scrambled_passwd, enc_passwd)); X } X X+static int check_apache_encryption(const char *passwd, char *enc_passwd) X+{ X+#ifdef APACHE2 X+ return (!apr_password_validate(passwd, enc_passwd)); X+#else X+ return (!ap_validate_password(passwd, enc_passwd)); X+#endif X+} X+ X typedef struct { X char *name; X int (*check_function)(const char *passwd, char *enc_passwd); X@@ -257,6 +267,7 @@ X { "Crypt", check_crypt_encryption, CRYPT_ENCRYPTION_FLAG }, X { "PHP_MD5", check_PHP_MD5_encryption, PHP_MD5_ENCRYPTION_FLAG }, X { "SHA1Sum", check_SHA1Sum_encryption, SHA1SUM_ENCRYPTION_FLAG}, X+ { "Apache", check_apache_encryption, APACHE_ENCRYPTION_FLAG }, X /* add additional encryption types below */ X { NULL, NULL, 0 } X }; 3a9c7d03fce84ee2eab21a45bcdf57a3 echo x - mod_auth_mysql_debian/files/patch-006-options sed 's/^X//' >mod_auth_mysql_debian/files/patch-006-options << '29fc4b8c507d90d8818c3589d661909a' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 006-options.dpatch by Adrian Bridgett X## X## All lines beginning with `## DP:' are a description of the patch. X## DP: Properly set 1-byte int config variables X X@DPATCH@ Xdiff -urNad mod-auth-mysql~/mod_auth_mysql.c mod-auth-mysql/mod_auth_mysql.c X--- mod_auth_mysql.c 2008-05-14 19:35:05.000000000 +0200 X+++ mod_auth_mysql.c 2008-05-14 20:05:44.000000000 +0200 X@@ -645,6 +645,24 @@ X return NULL; X } X X+static const char *set_empty_passwords(cmd_parms *cmd, void *sconf, int arg) X+{ X+ mysql_auth_config_rec *sec = (mysql_auth_config_rec *) sconf; X+ X+ sec->allow_empty_passwords = arg; X+ APACHELOG(APLOG_DEBUG, cmd, "set_empty_passwords: Setting allow_empty_passwords in %s to %i", sec->dir, sec->allow_empty_passwords); X+ return NULL; X+} X+ X+static const char *set_authoritative(cmd_parms *cmd, void *sconf, int arg) X+{ X+ mysql_auth_config_rec *sec = (mysql_auth_config_rec *) sconf; X+ X+ sec->authoritative = arg; X+ APACHELOG(APLOG_DEBUG, cmd, "set_authoritative: Setting authoritative in %s to %i", sec->dir, sec->authoritative); X+ return NULL; X+} X+ X /* The command list. What it's called, when it's legal to use it, and X * what to do when we find it. Pretty cool, IMHO. X */ X@@ -788,20 +806,20 @@ X (void*)APR_OFFSETOF(mysql_auth_config_rec, group_user_field), X OR_AUTHCFG, "The name of the user-name field in the MySQL group table; defaults to the same as the username field for the password table." ), X X- AP_INIT_FLAG( "Auth_MySQL_Empty_Passwords", ap_set_flag_slot, X- (void*)APR_OFFSETOF(mysql_auth_config_rec, allow_empty_passwords), X+ AP_INIT_FLAG( "Auth_MySQL_Empty_Passwords", set_empty_passwords, X+ NULL, X OR_AUTHCFG, "Enable (on) or disable (off) empty password strings; in which case any user password is accepted." ), X X- AP_INIT_FLAG( "AuthMySQL_Empty_Passwords", ap_set_flag_slot, X- (void*)APR_OFFSETOF(mysql_auth_config_rec, allow_empty_passwords), X+ AP_INIT_FLAG( "AuthMySQL_Empty_Passwords", set_empty_passwords, X+ NULL, X OR_AUTHCFG, "Enable (on) or disable (off) empty password strings; in which case any user password is accepted." ), X X- AP_INIT_FLAG( "Auth_MySQL_Authoritative", ap_set_flag_slot, X- (void*)APR_OFFSETOF(mysql_auth_config_rec, authoritative), X+ AP_INIT_FLAG( "Auth_MySQL_Authoritative", set_authoritative, X+ NULL, X OR_AUTHCFG, "When 'on' the MySQL database is taken to be authoritative and access control is not passed along to other db or access modules." ), X X- AP_INIT_FLAG( "AuthMySQL_Authoritative", ap_set_flag_slot, X- (void*)APR_OFFSETOF(mysql_auth_config_rec, authoritative), X+ AP_INIT_FLAG( "AuthMySQL_Authoritative", set_authoritative, X+ NULL, X OR_AUTHCFG, "When 'on' the MySQL database is taken to be authoritative and access control is not passed along to other db or access modules." ), X X AP_INIT_FLAG( "AuthMySQL_AllowOverride", set_auth_mysql_override, X@@ -984,20 +1002,20 @@ X (void *) XtOffsetOf(mysql_auth_config_rec, group_user_field), X OR_AUTHCFG, TAKE1, "The name of the user-name field in the MySQL group table; defaults to the same as the username field for the password table." }, X X- { "Auth_MySQL_Empty_Passwords", ap_set_flag_slot, X- (void *) XtOffsetOf(mysql_auth_config_rec, allow_empty_passwords), X+ { "Auth_MySQL_Empty_Passwords", set_empty_passwords, X+ NULL, X OR_AUTHCFG, FLAG, "Enable (on) or disable (off) empty password strings; in which case any user password is accepted." }, X X- { "AuthMySQL_Empty_Passwords", ap_set_flag_slot, X- (void *) XtOffsetOf(mysql_auth_config_rec, allow_empty_passwords), X+ { "AuthMySQL_Empty_Passwords", set_empty_passwords, X+ NULL, X OR_AUTHCFG, FLAG, "Enable (on) or disable (off) empty password strings; in which case any user password is accepted." }, X X- { "Auth_MySQL_Authoritative", ap_set_flag_slot, X- (void *) XtOffsetOf(mysql_auth_config_rec, authoritative), X+ { "Auth_MySQL_Authoritative", set_authoritative, X+ NULL, X OR_AUTHCFG, FLAG, "When 'on' the MySQL database is taken to be authoritative and access control is not passed along to other db or access modules." }, X X- { "AuthMySQL_Authoritative", ap_set_flag_slot, X- (void *) XtOffsetOf(mysql_auth_config_rec, authoritative), X+ { "AuthMySQL_Authoritative", set_authoritative, X+ NULL, X OR_AUTHCFG, FLAG, "When 'on' the MySQL database is taken to be authoritative and access control is not passed along to other db or access modules." }, X X { "AuthMySQL_AllowOverride", set_auth_mysql_override, 29fc4b8c507d90d8818c3589d661909a echo x - mod_auth_mysql_debian/files/patch-012-charset sed 's/^X//' >mod_auth_mysql_debian/files/patch-012-charset << 'fccc0cc7ae716b238ac11f1623201452' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 012-charset.dpatch by Joey Schulze X## X## DP: Add support for specifying the connection character set X## DP: via Auth_MySQL_CharacterSet. X X@DPATCH@ Xdiff -urNad mod-auth-mysql~/DIRECTIVES mod-auth-mysql/DIRECTIVES X--- DIRECTIVES 2008-11-21 17:05:40.000000000 +0100 X+++ DIRECTIVES 2008-11-21 17:05:40.000000000 +0100 X@@ -74,6 +74,18 @@ X Auth_MySQL_DefaultDB X Synonym for Auth_MySQL_General_DB. X X+Auth_MySQL_CharacterSet X+ X+ Set the connection character set to the specified one. Otherwise no X+ particular character set is used when the connection is created. X+ This could cause problems with differently encoded strings and table X+ or column collations. The parameter must be a valid MySQL X+ character. It is mandatory if the character set used for tables/rows X+ differs from the default. X+ X+AuthMySQL_CharacterSet X+ Synonym for Auth_MySQL_CharacterSet. X+ X AuthName "" X Describes the data you're guarding. X Xdiff -urNad mod-auth-mysql~/mod_auth_mysql.c mod-auth-mysql/mod_auth_mysql.c X--- mod_auth_mysql.c 2008-11-21 17:05:40.000000000 +0100 X+++ mod_auth_mysql.c 2008-11-21 17:05:50.000000000 +0100 X@@ -299,6 +299,7 @@ X char *db_user; X char *db_pwd; X char *db_name; X+ char *db_charset; X X MYSQL *dbh; X X@@ -344,6 +345,7 @@ X #else X static void X #endif X+ X auth_mysql_cleanup(void *ptr) X { X mysql_auth_config_rec *sec = ptr; X@@ -395,7 +397,7 @@ X sizeof(mysql_auth_config_rec)); X #endif X X- sec->db_name = sec->db_socket = sec->db_user = sec->db_pwd = NULL; X+ sec->db_name = sec->db_socket = sec->db_user = sec->db_pwd = sec->db_charset = NULL; X X sec->dbh = NULL; X /* When the memory for this connection record is cleaned, we must X@@ -804,6 +806,14 @@ X (void*)APR_OFFSETOF(mysql_auth_config_rec, db_name), X OR_AUTHCFG, "database name" ), X X+ AP_INIT_TAKE1( "Auth_MySQL_CharacterSet", ap_set_string_slot, X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_charset), X+ OR_AUTHCFG, "character set" ), X+ X+ AP_INIT_TAKE1( "AuthMySQL_CharacterSet", ap_set_string_slot, X+ (void*)APR_OFFSETOF(mysql_auth_config_rec, db_charset), X+ OR_AUTHCFG, "character set" ), X+ X AP_INIT_TAKE1( "Auth_MySQL_Password_Table", ap_set_string_slot, X (void*)APR_OFFSETOF(mysql_auth_config_rec, user_table), X OR_AUTHCFG, "Name of the MySQL table containing the password/user-name combination" ), X@@ -1072,6 +1082,14 @@ X (void *) XtOffsetOf(mysql_auth_config_rec, db_name), X OR_AUTHCFG, TAKE1, "database name" }, X X+ { "Auth_MySQL_CharacterSet", ap_set_string_slot, X+ (void *) XtOffsetOf(mysql_auth_config_rec, db_charset), X+ OR_AUTHCFG, TAKE1, "character set" }, X+ X+ { "AuthMySQL_CharacterSet", ap_set_string_slot, X+ (void *) XtOffsetOf(mysql_auth_config_rec, db_charset), X+ OR_AUTHCFG, TAKE1, "character set" }, X+ X { "Auth_MySQL_Password_Table", ap_set_string_slot, X (void *) XtOffsetOf(mysql_auth_config_rec, user_table), X OR_AUTHCFG, TAKE1, "Name of the MySQL table containing the password/user-name combination" }, X@@ -1264,6 +1282,7 @@ X #if MYSQL_VERSION_ID >= 50013 X my_bool do_reconnect = 1; X #endif X+ char *query; X X APACHELOG(APLOG_DEBUG, r, "Opening DB connection for %s", sec->dir); X X@@ -1354,6 +1373,30 @@ X #endif X } X X+ if (sec->db_charset) { X+ APACHELOG(APLOG_DEBUG, r, X+ "Setting character set to %s", sec->db_charset); X+ X+ query = (char *) PSTRCAT(r->pool, "SET CHARACTER SET ", sec->db_charset, NULL); X+ if (!query) { X+ APACHELOG(APLOG_ERR, r, X+ "Failed to create query string - we're no good..."); X+ return -1; X+ } X+ X+ if (mysql_query(sec->dbh, query)) { X+ if (sec->dbh) X+ { X+ APACHELOG(APLOG_ERR, r, X+ "Query call failed: %s (%i)", mysql_error(sec->dbh), X+ mysql_errno(sec->dbh)); X+ } X+ X+ APACHELOG(APLOG_DEBUG, r, "Failed query was: [%s]", query); X+ return -1; X+ } X+ } X+ X /* W00t! We made it! */ X return 0; X } fccc0cc7ae716b238ac11f1623201452 echo x - mod_auth_mysql_debian/files/patch-001-usage sed 's/^X//' >mod_auth_mysql_debian/files/patch-001-usage << '198fdbc242efc6483f5a816cf3dacff6' X#! /bin/sh /usr/share/dpatch/dpatch-run X## 001-usage.dpatch by Matthew Palmer X## X## DP: Explain the md5 and sha1 cryptographic methods better X X@DPATCH@ X X--- USAGE X+++ USAGE X@@ -18,7 +18,10 @@ X primary key (username) X ); X X-This would work quite well. X+This would work quite well. Remember that the passwd field needs to be long X+enough to store the entire password string -- for example, if you are using X+MD5 passwords, passwd needs to be 32 characters long, and if you are using X+SHA1 it must be 40 characters long. X X NOTE 1: You don't have to use a new table for the purpose of storing X usernames and passwords; I quite happily use a 'members' table (with all 198fdbc242efc6483f5a816cf3dacff6 echo x - mod_auth_mysql_debian/Makefile sed 's/^X//' >mod_auth_mysql_debian/Makefile << '5b79d25101ca0df03ce36ae5abbf814f' X# New ports collection makefile for: apache mod_auth_mysql_debian X# Date created: 2009/04/24 X# Whom: mjonuschat@gmail.com X# X# $FreeBSD$ X XPORTNAME= mod_auth_mysql XPORTVERSION= 4.3.9 XCATEGORIES= www XMASTER_SITES= ${MASTER_SITE_DEBIAN} XMASTER_SITE_SUBDIR= pool/main/m/${PORTNAME:S/_/-/g} XPKGNAMESUFFIX= _debian XDISTNAME=${PORTNAME:S/_/-/g}_${PORTVERSION}.orig X XMAINTAINER= mjonuschat@gmail.com XCOMMENT= Allows users to use MySQL databases for user authentication X XUSE_MYSQL= YES X XRUN_DEPENDS+= mysql:${PORTSDIR}/databases/mysql50-server X XWRKSRC= ${WRKDIR}/${PORTNAME:S/_/-/g}-${PORTVERSION} X XHAS_CONFIGURE= YES XCONFIGURE_ARGS= --with-apxs=${APXS} XMODULENAME= mod_auth_mysql X XUSE_APACHE= 20+ X XAP_FAST_BUILD= YES XAP_GENPLIST= YES XAP_INC= ${LOCALBASE}/include/mysql XAP_LIB= ${LOCALBASE}/lib/mysql XAP_EXTRAS= -DAPACHE2 -lmysqlclient -lz -lm X X.if !defined(NOPORTDOCS) XPORTDOCS= INSTALL DIRECTIVES USAGE X.endif X Xpost-install: X.if !defined(NOPORTDOCS) X @${MKDIR} ${DOCSDIR} X @cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR} X.endif X X.include 5b79d25101ca0df03ce36ae5abbf814f echo x - mod_auth_mysql_debian/pkg-descr sed 's/^X//' >mod_auth_mysql_debian/pkg-descr << 'c2bcb625571e8f991bc45c3da606748b' XA module for the Apache 2 web server which enables HTTP authentication Xagainst information stored in a MySQL database. X XThere are a few different mod_auth_mysql modules in the ports tree. Some Xonly work with apache 1.3, some haven't been updated or maintained for a few Xyears. X XThis version of mod_auth_mysql is being maintained within the current XDebian Linux development and sees regular maintainance and updates. X XWWW: http://packages.qa.debian.org/m/mod-auth-mysql.html X X- Morton Jonuschat Xmjonuschat@gmail.com c2bcb625571e8f991bc45c3da606748b echo x - mod_auth_mysql_debian/distinfo sed 's/^X//' >mod_auth_mysql_debian/distinfo << 'd3dde000e2cd710fff7fd26d1e5f6f70' XMD5 (mod-auth-mysql_4.3.9.orig.tar.gz) = 9c1ecbe5fb64d4c93444311ff34bfe35 XSHA256 (mod-auth-mysql_4.3.9.orig.tar.gz) = ed0d42547808fe9a213cf62e93ffef65e518da774bb497138d126f2de4a54d2e XSIZE (mod-auth-mysql_4.3.9.orig.tar.gz) = 48479 d3dde000e2cd710fff7fd26d1e5f6f70 exit >Release-Note: >Audit-Trail: >Unformatted: