FreeBSD Bugzilla – Attachment 74669 Details for
Bug 107974
[Maintainer Update] ftp/proftpd - Update to 1.3.1rc2
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 25.88 KB, created by
Beech Rintoul
on 2007-01-16 07:50:22 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Beech Rintoul
Created:
2007-01-16 07:50:22 UTC
Size:
25.88 KB
patch
obsolete
>diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/Makefile /usr/ports/ftp/proftpd/Makefile >--- /usr/ports/ftp/proftpd.orig/Makefile Sun Jan 7 08:37:15 2007 >+++ /usr/ports/ftp/proftpd/Makefile Fri Jan 12 11:04:18 2007 >@@ -6,8 +6,8 @@ > # > > PORTNAME= proftpd >-DISTVERSION= 1.3.1rc1 >-PORTREVISION= 3 >+DISTVERSION= 1.3.1rc2 >+PORTREVISION= > CATEGORIES= ftp > MASTER_SITES= ftp://ftp.proftpd.org/distrib/source/ \ > ftp://ftp.fastorama.com/mirrors/ftp.proftpd.org/distrib/source/ \ >diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/distinfo /usr/ports/ftp/proftpd/distinfo >--- /usr/ports/ftp/proftpd.orig/distinfo Thu Dec 21 13:13:40 2006 >+++ /usr/ports/ftp/proftpd/distinfo Fri Jan 12 15:34:06 2007 >@@ -1,3 +1,3 @@ >-MD5 (proftpd-1.3.1rc1.tar.bz2) = 08f4d526b46c84f10e9634d2d913052c >-SHA256 (proftpd-1.3.1rc1.tar.bz2) = 32cf852535c2ec55c5833c2766cbd0c6aba950ab2967565606e1df334736a766 >-SIZE (proftpd-1.3.1rc1.tar.bz2) = 1484138 >+MD5 (proftpd-1.3.1rc2.tar.bz2) = b117abb8fa7df8bc6d5e2ee85d97b4e0 >+SHA256 (proftpd-1.3.1rc2.tar.bz2) = 7494ea061ef28efc7afa63ffe0a80d598a55909d06dede9254e955c67e6440da >+SIZE (proftpd-1.3.1rc2.tar.bz2) = 1516464 >diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-configure /usr/ports/ftp/proftpd/files/patch-configure >--- /usr/ports/ftp/proftpd.orig/files/patch-configure Wed Dec 31 14:00:00 1969 >+++ /usr/ports/ftp/proftpd/files/patch-configure Mon Jan 15 22:08:39 2007 >@@ -0,0 +1,273 @@ >+--- configure.orig Tue Jan 9 19:55:21 2007 >++++ configure Mon Jan 15 22:06:53 2007 >+@@ -19246,8 +19246,7 @@ >+ >+ if test "$withval" != "no" ; then >+ >+- >+-for ac_func in getopt getopt_long >++for ac_func in getopt >+ do >+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` >+ echo "$as_me:$LINENO: checking for $ac_func" >&5 >+@@ -19495,6 +19494,108 @@ >+ done >+ >+ >++for ac_func in getopt_long >++do >++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` >++echo "$as_me:$LINENO: checking for $ac_func" >&5 >++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 >++if eval "test \"\${$as_ac_var+set}\" = set"; then >++ echo $ECHO_N "(cached) $ECHO_C" >&6 >++else >++ cat >conftest.$ac_ext <<_ACEOF >++/* confdefs.h. */ >++_ACEOF >++cat confdefs.h >>conftest.$ac_ext >++cat >>conftest.$ac_ext <<_ACEOF >++/* end confdefs.h. */ >++/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. >++ For example, HP-UX 11i <limits.h> declares gettimeofday. */ >++#define $ac_func innocuous_$ac_func >++ >++/* System header to define __stub macros and hopefully few prototypes, >++ which can conflict with char $ac_func (); below. >++ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since >++ <limits.h> exists even on freestanding compilers. */ >++ >++#ifdef __STDC__ >++# include <limits.h> >++#else >++# include <assert.h> >++#endif >++ >++#undef $ac_func >++ >++/* Override any gcc2 internal prototype to avoid an error. */ >++#ifdef __cplusplus >++extern "C" >++{ >++#endif >++/* We use char because int might match the return type of a gcc2 >++ builtin and then its argument prototype would still apply. */ >++char $ac_func (); >++/* The GNU C library defines this for functions which it implements >++ to always fail with ENOSYS. Some functions are actually named >++ something starting with __ and the normal name is an alias. */ >++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) >++choke me >++#else >++char (*f) () = $ac_func; >++#endif >++#ifdef __cplusplus >++} >++#endif >++ >++int >++main () >++{ >++return f != $ac_func; >++ ; >++ return 0; >++} >++_ACEOF >++rm -f conftest.$ac_objext conftest$ac_exeext >++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 >++ (eval $ac_link) 2>conftest.er1 >++ ac_status=$? >++ grep -v '^ *+' conftest.er1 >conftest.err >++ rm -f conftest.er1 >++ cat conftest.err >&5 >++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >++ (exit $ac_status); } && >++ { ac_try='test -z "$ac_c_werror_flag" >++ || test ! -s conftest.err' >++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 >++ (eval $ac_try) 2>&5 >++ ac_status=$? >++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >++ (exit $ac_status); }; } && >++ { ac_try='test -s conftest$ac_exeext' >++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 >++ (eval $ac_try) 2>&5 >++ ac_status=$? >++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >++ (exit $ac_status); }; }; then >++ eval "$as_ac_var=yes" >++else >++ echo "$as_me: failed program was:" >&5 >++sed 's/^/| /' conftest.$ac_ext >&5 >++ >++eval "$as_ac_var=no" >++fi >++rm -f conftest.err conftest.$ac_objext \ >++ conftest$ac_exeext conftest.$ac_ext >++fi >++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 >++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 >++if test `eval echo '${'$as_ac_var'}'` = yes; then >++ cat >>confdefs.h <<_ACEOF >++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 >++_ACEOF >++ >++fi >++done >++ >++ >+ cat >>confdefs.h <<\_ACEOF >+ #define PR_USE_SYSTEM_GETOPT 1 >+ _ACEOF >+@@ -19510,8 +19611,7 @@ >+ else >+ >+ >+- >+-for ac_func in getopt getopt_long >++for ac_func in getopt >+ do >+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` >+ echo "$as_me:$LINENO: checking for $ac_func" >&5 >+@@ -19759,6 +19859,108 @@ >+ done >+ >+ >++for ac_func in getopt_long >++do >++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` >++echo "$as_me:$LINENO: checking for $ac_func" >&5 >++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 >++if eval "test \"\${$as_ac_var+set}\" = set"; then >++ echo $ECHO_N "(cached) $ECHO_C" >&6 >++else >++ cat >conftest.$ac_ext <<_ACEOF >++/* confdefs.h. */ >++_ACEOF >++cat confdefs.h >>conftest.$ac_ext >++cat >>conftest.$ac_ext <<_ACEOF >++/* end confdefs.h. */ >++/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. >++ For example, HP-UX 11i <limits.h> declares gettimeofday. */ >++#define $ac_func innocuous_$ac_func >++ >++/* System header to define __stub macros and hopefully few prototypes, >++ which can conflict with char $ac_func (); below. >++ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since >++ <limits.h> exists even on freestanding compilers. */ >++ >++#ifdef __STDC__ >++# include <limits.h> >++#else >++# include <assert.h> >++#endif >++ >++#undef $ac_func >++ >++/* Override any gcc2 internal prototype to avoid an error. */ >++#ifdef __cplusplus >++extern "C" >++{ >++#endif >++/* We use char because int might match the return type of a gcc2 >++ builtin and then its argument prototype would still apply. */ >++char $ac_func (); >++/* The GNU C library defines this for functions which it implements >++ to always fail with ENOSYS. Some functions are actually named >++ something starting with __ and the normal name is an alias. */ >++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) >++choke me >++#else >++char (*f) () = $ac_func; >++#endif >++#ifdef __cplusplus >++} >++#endif >++ >++int >++main () >++{ >++return f != $ac_func; >++ ; >++ return 0; >++} >++_ACEOF >++rm -f conftest.$ac_objext conftest$ac_exeext >++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 >++ (eval $ac_link) 2>conftest.er1 >++ ac_status=$? >++ grep -v '^ *+' conftest.er1 >conftest.err >++ rm -f conftest.er1 >++ cat conftest.err >&5 >++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >++ (exit $ac_status); } && >++ { ac_try='test -z "$ac_c_werror_flag" >++ || test ! -s conftest.err' >++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 >++ (eval $ac_try) 2>&5 >++ ac_status=$? >++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >++ (exit $ac_status); }; } && >++ { ac_try='test -s conftest$ac_exeext' >++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 >++ (eval $ac_try) 2>&5 >++ ac_status=$? >++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 >++ (exit $ac_status); }; }; then >++ eval "$as_ac_var=yes" >++else >++ echo "$as_me: failed program was:" >&5 >++sed 's/^/| /' conftest.$ac_ext >&5 >++ >++eval "$as_ac_var=no" >++fi >++rm -f conftest.err conftest.$ac_objext \ >++ conftest$ac_exeext conftest.$ac_ext >++fi >++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 >++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 >++if test `eval echo '${'$as_ac_var'}'` = yes; then >++ cat >>confdefs.h <<_ACEOF >++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 >++_ACEOF >++ >++fi >++done >++ >++ >+ cat >>confdefs.h <<\_ACEOF >+ #define PR_USE_SYSTEM_GETOPT 1 >+ _ACEOF >+@@ -34961,11 +35163,6 @@ >+ #define PR_USE_SENDFILE 1 >+ _ACEOF >+ >+- else >+- cat >>confdefs.h <<\_ACEOF >+-#define PR_USE_SENDFILE 0 >+-_ACEOF >+- >+ fi >+ >+ case "$pr_cv_func_sendfile" in >+@@ -36560,20 +36757,6 @@ >+ fi >+ >+ inclib=`cat $srcdir/contrib/$moduledir/$srcinc | grep "\\\$Libraries:" | sed -e 's/^.*\$Libraries: \(.*\)\\$/\1/'` >+- else >+- incarch= >+- inclib= >+- fi >+- >+- srcinc_in="$srcinc.in" >+- if test -f $srcdir/contrib/$moduledir/$srcinc_in ; then >+- if test -z $srcarch -a -z $incarch ; then >+- incarch=`cat $srcdir/contrib/$moduledir/$srcinc_in | grep "\\\$Archive:" | sed -e 's/^.*\$Archive: \(.*\)\\$/\1/'` >+- else >+- incarch= >+- fi >+- >+- inclib=`cat $srcdir/contrib/$moduledir/$srcinc_in | grep "\\\$Libraries:" | sed -e 's/^.*\$Libraries: \(.*\)\\$/\1/'` >+ else >+ incarch= >+ inclib= >diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-configure.in /usr/ports/ftp/proftpd/files/patch-configure.in >--- /usr/ports/ftp/proftpd.orig/files/patch-configure.in Wed Dec 31 14:00:00 1969 >+++ /usr/ports/ftp/proftpd/files/patch-configure.in Mon Jan 15 22:07:58 2007 >@@ -0,0 +1,54 @@ >+--- configure.in.orig Tue Jan 9 18:45:08 2007 >++++ configure.in Mon Jan 15 22:07:06 2007 >+@@ -163,8 +163,9 @@ >+ ], >+ [ >+ if test "$withval" != "no" ; then >+- AC_CHECK_FUNCS(getopt getopt_long, >++ AC_CHECK_FUNCS(getopt, >+ [AC_CHECK_HEADERS(getopt.h) >++ AC_CHECK_FUNCS(getopt_long) >+ AC_DEFINE(PR_USE_SYSTEM_GETOPT, 1, >+ [Define if using system getopt support])], >+ [LIB_OBJS="$LIB_OBJS getopt.o getopt1.o"] >+@@ -172,8 +173,9 @@ >+ fi >+ ], >+ [ >+- AC_CHECK_FUNCS(getopt getopt_long, >++ AC_CHECK_FUNCS(getopt, >+ [AC_CHECK_HEADERS(getopt.h) >++ AC_CHECK_FUNCS(getopt_long) >+ AC_DEFINE(PR_USE_SYSTEM_GETOPT, 1, >+ [Define if using system getopt support])], >+ [LIB_OBJS="$LIB_OBJS getopt.o getopt1.o"] >+@@ -1486,8 +1488,6 @@ >+ if test "$pr_cv_func_sendfile" != "none"; then >+ AC_DEFINE(HAVE_SENDFILE) >+ AC_DEFINE(PR_USE_SENDFILE, 1) >+- else >+- AC_DEFINE(PR_USE_SENDFILE, 0) >+ fi >+ >+ case "$pr_cv_func_sendfile" in >+@@ -1815,20 +1815,6 @@ >+ else >+ incarch= >+ inclib= >+- fi >+- >+- srcinc_in="$srcinc.in" >+- if test -f $srcdir/contrib/$moduledir/$srcinc_in ; then >+- if test -z $srcarch -a -z $incarch ; then >+- incarch=`cat $srcdir/contrib/$moduledir/$srcinc_in | grep "\\\$Archive:" | sed -e 's/^.*\$Archive: \(.*\)\\$/\1/'` >+- else >+- incarch= >+- fi >+- >+- inclib=`cat $srcdir/contrib/$moduledir/$srcinc_in | grep "\\\$Libraries:" | sed -e 's/^.*\$Libraries: \(.*\)\\$/\1/'` >+- else >+- incarch= >+- inclib= >+ fi >+ >+ dnl If the module will be providing an archive (.a file), then remove it >diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-contrib-mod_sql.c /usr/ports/ftp/proftpd/files/patch-contrib-mod_sql.c >--- /usr/ports/ftp/proftpd.orig/files/patch-contrib-mod_sql.c Thu Jan 4 16:38:34 2007 >+++ /usr/ports/ftp/proftpd/files/patch-contrib-mod_sql.c Wed Dec 31 14:00:00 1969 >@@ -1,268 +0,0 @@ >---- contrib/mod_sql.c.orig Mon Dec 11 13:40:18 2006 >-+++ contrib/mod_sql.c Thu Jan 4 14:31:13 2007 >-@@ -23,7 +23,7 @@ >- * the resulting executable, without including the source code for OpenSSL in >- * the source distribution. >- * >-- * $Id: mod_sql.c,v 1.117 2006/12/11 22:40:18 castaglia Exp $ >-+ * $Id: mod_sql.c,v 1.121 2007/01/03 18:24:35 castaglia Exp $ >- */ >- >- #include "conf.h" >-@@ -104,8 +104,11 @@ >- >- module sql_module; >- >--static char *_sql_where(cmd_rec *, int, ...); >- #define SQL_MAX_STMT_LEN 4096 >-+ >-+static char *sql_prepare_where(int, cmd_rec *, int, ...); >-+#define SQL_PREPARE_WHERE_FL_NO_TAGS 0x00001 >-+ >- static char *resolve_long_tag(cmd_rec *, char *); >- static int resolve_numeric_tag(cmd_rec *, char *); >- static char *resolve_short_tag(cmd_rec *, char); >-@@ -752,10 +755,10 @@ >- return mr ? (char *) mr->data : NULL; >- } >- >--static char *_sql_where(cmd_rec *cmd, int cnt, ...) { >-+static char *sql_prepare_where(int flags, cmd_rec *cmd, int cnt, ...) { >- int i, flag; >- int curr_avail; >-- char *buf = "", *res, *tchar, *curr, *tmp; >-+ char *buf = "", *res, *tchar; >- va_list dummy; >- >- res = pcalloc(cmd->tmp_pool, SQL_MAX_STMT_LEN); >-@@ -774,31 +777,53 @@ >- } >- va_end(dummy); >- >-- /* Process variables in WHERE clauses, except any "%{num}" references. */ >-- curr = res; >-- curr_avail = SQL_MAX_STMT_LEN; >-- for (tmp = buf; *tmp; ) { >-- char *str; >-- modret_t *mr; >-+ if (!(flags & SQL_PREPARE_WHERE_FL_NO_TAGS)) { >-+ char *curr, *tmp; >- >-- if (*tmp == '%') { >-- char *tag = NULL; >-+ /* Process variables in WHERE clauses, except any "%{num}" references. */ >-+ curr = res; >-+ curr_avail = SQL_MAX_STMT_LEN; >-+ >-+ for (tmp = buf; *tmp; ) { >-+ char *str; >-+ modret_t *mr; >- >-- if (*(++tmp) == '{') { >-- char *query; >-+ if (*tmp == '%') { >-+ char *tag = NULL; >- >-- if (*tmp != '\0') >-- query = ++tmp; >-+ if (*(++tmp) == '{') { >-+ char *query; >- >-- while (*tmp && *tmp != '}') >-- tmp++; >-+ if (*tmp != '\0') >-+ query = ++tmp; >-+ >-+ while (*tmp && *tmp != '}') >-+ tmp++; >-+ >-+ tag = pstrndup(cmd->tmp_pool, query, (tmp - query)); >-+ if (tag) { >-+ str = resolve_long_tag(cmd, tag); >-+ if (!str) >-+ str = pstrdup(cmd->tmp_pool, ""); >-+ >-+ mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 2, "default", >-+ str), "sql_escapestring"); >-+ if (check_response(mr) < 0) >-+ return NULL; >- >-- tag = pstrndup(cmd->tmp_pool, query, (tmp - query)); >-- if (tag) { >-- str = resolve_long_tag(cmd, tag); >-- if (!str) >-- str = pstrdup(cmd->tmp_pool, ""); >-+ sstrcat(curr, mr->data, curr_avail); >-+ curr += strlen(mr->data); >-+ curr_avail -= strlen(mr->data); >-+ >-+ if (*tmp != '\0') >-+ tmp++; >-+ >-+ } else { >-+ return NULL; >-+ } >- >-+ } else { >-+ str = resolve_short_tag(cmd, *tmp); >- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 2, "default", >- str), "sql_escapestring"); >- if (check_response(mr) < 0) >-@@ -810,32 +835,18 @@ >- >- if (*tmp != '\0') >- tmp++; >-- >-- } else { >-- return NULL; >- } >- >- } else { >-- str = resolve_short_tag(cmd, *tmp); >-- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 2, "default", >-- str), "sql_escapestring"); >-- if (check_response(mr) < 0) >-- return NULL; >-- >-- sstrcat(curr, mr->data, curr_avail); >-- curr += strlen(mr->data); >-- curr_avail -= strlen(mr->data); >-- >-- if (*tmp != '\0') >-- tmp++; >-+ *curr++ = *tmp++; >-+ curr_avail--; >- } >-- >-- } else { >-- *curr++ = *tmp++; >-- curr_avail--; >- } >-+ *curr++ = '\0'; >-+ >-+ } else { >-+ res = buf; >- } >-- *curr++ = '\0'; >- >- return res; >- } >-@@ -1212,7 +1223,7 @@ >- } >- >- if (!cmap.usercustom) { >-- where = _sql_where(cmd, 2, usrwhere, cmap.userwhere); >-+ where = sql_prepare_where(0, cmd, 2, usrwhere, cmap.userwhere, NULL); >- >- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 5, "default", >- cmap.usrtable, cmap.usrfields, where, "1"), "sql_select"); >-@@ -1438,7 +1449,7 @@ >- return NULL; >- } >- >-- where = _sql_where(cmd, 2, grpwhere, cmap.groupwhere); >-+ where = sql_prepare_where(0, cmd, 2, grpwhere, cmap.groupwhere, NULL); >- >- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 5, "default", >- cmap.grptable, cmap.grpfield, where, "1"), "sql_select"); >-@@ -1456,7 +1467,7 @@ >- >- grpwhere = pstrcat(cmd->tmp_pool, cmap.grpfield, " = '", groupname, "'", >- NULL); >-- where = _sql_where(cmd, 2, grpwhere, cmap.groupwhere); >-+ where = sql_prepare_where(0, cmd, 2, grpwhere, cmap.groupwhere, NULL); >- >- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default", >- cmap.grptable, cmap.grpfields, where), "sql_select"); >-@@ -1530,7 +1541,7 @@ >- >- usrwhere = pstrcat(cmd->tmp_pool, cmap.usrfield, " = '", _sql_realuser(cmd), >- "'", NULL); >-- where = _sql_where(cmd, 2, usrwhere, cmap.userwhere); >-+ where = sql_prepare_where(0, cmd, 2, usrwhere, cmap.userwhere, NULL); >- >- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default", cmap.usrtable, >- query, where), "sql_update"); >-@@ -1606,7 +1617,8 @@ >- cmap.grpmembersfield, " = '", username, "'", NULL); >- } >- >-- where = _sql_where(cmd, 2, grpwhere, cmap.groupwhere); >-+ where = sql_prepare_where(SQL_PREPARE_WHERE_FL_NO_TAGS, cmd, 2, grpwhere, >-+ sql_prepare_where(0, cmd, 1, cmap.groupwhere, NULL), NULL); >- >- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default", >- cmap.grptable, cmap.grpfields, where), "sql_select"); >-@@ -1746,7 +1758,7 @@ >- static char *resolve_short_tag(cmd_rec *cmd, char tag) { >- char arg[256] = {'\0'}, *argp; >- >-- switch(tag) { >-+ switch (tag) { >- case 'A': { >- char *pass; >- >-@@ -2915,7 +2927,7 @@ >- /* single select or not? */ >- if (SQL_FASTUSERS) { >- /* retrieve our list of passwds */ >-- where = _sql_where(cmd, 1, cmap.userwhere); >-+ where = sql_prepare_where(0, cmd, 1, cmap.userwhere, NULL); >- >- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default", >- cmap.usrtable, cmap.usrfields, where), "sql_select"); >-@@ -2978,7 +2990,7 @@ >- } >- } else { >- /* retrieve our list of passwds */ >-- where = _sql_where(cmd, 1, cmap.userwhere); >-+ where = sql_prepare_where(0, cmd, 1, cmap.userwhere, NULL); >- >- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 4, "default", >- cmap.usrtable, cmap.usrfield, where), "sql_select"); >-@@ -3086,7 +3098,7 @@ >- >- if (SQL_FASTGROUPS) { >- /* retrieve our list of groups */ >-- where = _sql_where(cmd, 1, cmap.groupwhere); >-+ where = sql_prepare_where(0, cmd, 1, cmap.groupwhere, NULL); >- >- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 6, "default", >- cmap.grptable, cmap.grpfields, where, NULL), "sql_select"); >-@@ -3119,9 +3131,15 @@ >- } >- >- } else { >-- /* retrieve our list of groups */ >-- where = _sql_where(cmd, 1, cmap.groupwhere); >-- >-+ /* Retrieve our list of groups. */ >-+ if (cmap.groupwhere && >-+ strlen(cmap.groupwhere) > 0) { >-+ where = sql_prepare_where(0, cmd, 1, cmap.groupwhere, NULL); >-+ >-+ } else { >-+ where = NULL; >-+ } >-+ >- mr = _sql_dispatch(_sql_make_cmd(cmd->tmp_pool, 6, "default", >- cmap.grptable, cmap.grpfield, where, NULL, "DISTINCT"), "sql_select"); >- if (check_response(mr) < 0) >-@@ -3593,7 +3611,7 @@ >- >- usrwhere = pstrcat(cmd->tmp_pool, cmap.usrfield, " = '", _sql_realuser(cmd), >- "'", NULL); >-- where = _sql_where(cmd, 2, usrwhere, cmap.userwhere); >-+ where = sql_prepare_where(0, cmd, 2, usrwhere, cmap.userwhere, NULL); >- >- query = pstrcat(cmd->tmp_pool, cmap.sql_fstor, ", ", >- cmap.sql_fretr, ", ", cmap.sql_bstor, ", ", >-@@ -3627,7 +3645,7 @@ >- >- usrwhere = pstrcat(cmd->tmp_pool, cmap.usrfield, " = '", _sql_realuser(cmd), >- "'", NULL); >-- where = _sql_where(cmd, 2, usrwhere, cmap.userwhere); >-+ where = sql_prepare_where(0, cmd, 2, usrwhere, cmap.userwhere, NULL); >- >- query = pstrcat(cmd->tmp_pool, cmap.sql_frate, ", ", >- cmap.sql_fcred, ", ", cmap.sql_brate, ", ", >diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-getopt.c /usr/ports/ftp/proftpd/files/patch-getopt.c >--- /usr/ports/ftp/proftpd.orig/files/patch-getopt.c Sat Dec 30 13:45:40 2006 >+++ /usr/ports/ftp/proftpd/files/patch-getopt.c Wed Dec 31 14:00:00 1969 >@@ -1,20 +0,0 @@ >---- lib/getopt.c.orig Thu Feb 28 10:30:01 2002 >-+++ lib/getopt.c Tue Dec 26 13:39:53 2006 >-@@ -76,7 +76,7 @@ >- # endif >- #endif >- >--#ifndef _ >-+#if defined(PR_USE_NLS) && !defined(_) >- /* This is for other GNU distributions with internationalized messages. >- When compiling libc, the _ macro is predefined. */ >- # ifdef HAVE_LIBINTL_H >-@@ -85,6 +85,8 @@ >- # else >- # define _(msgid) (msgid) >- # endif >-+#else >-+# define _(msgid) (msgid) >- #endif >- >- /* This version of `getopt' appears to the caller like standard Unix `getopt' >diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-include-pidfile.h /usr/ports/ftp/proftpd/files/patch-include-pidfile.h >--- /usr/ports/ftp/proftpd.orig/files/patch-include-pidfile.h Wed Dec 31 14:00:00 1969 >+++ /usr/ports/ftp/proftpd/files/patch-include-pidfile.h Fri Jan 12 21:47:52 2007 >@@ -0,0 +1,71 @@ >+diff -u -r1.1 pidfile.h >+--- include/pidfile.h 11 Jan 2007 21:36:06 -0000 1.1 >++++ include/pidfile.h 13 Jan 2007 04:13:10 -0000 >+@@ -30,7 +30,7 @@ >+ #define PR_PIDFILE_H >+ >+ /* For internal use only. */ >+-int pidfile_remove(void); >+-void pidfile_write(void); >++int pr_pidfile_remove(void); >++void pr_pidfile_write(void); >+ >+ #endif /* PR_PIDFILE_H */ >+Index: src/main.c >+=================================================================== >+RCS file: /cvsroot/proftp/proftpd/src/main.c,v >+retrieving revision 1.298 >+diff -u -r1.298 main.c >+--- src/main.c 11 Jan 2007 21:36:06 -0000 1.298 >++++ src/main.c 13 Jan 2007 04:13:10 -0000 >+@@ -261,7 +261,7 @@ >+ PRIVS_ROOT >+ pr_delete_scoreboard(); >+ if (!nodaemon) >+- pidfile_remove(); >++ pr_pidfile_remove(); >+ PRIVS_RELINQUISH >+ } >+ >+@@ -1760,7 +1760,7 @@ >+ /* Do not need the pidfile any longer. */ >+ if (is_standalone && >+ !nodaemon) >+- pidfile_remove(); >++ pr_pidfile_remove(); >+ >+ /* Run any exit handlers registered in the master process here, so that >+ * they may have the benefit of root privs. More than likely these >+@@ -2261,7 +2261,7 @@ >+ pr_log_pri(PR_LOG_NOTICE, "ProFTPD %s (built %s) standalone mode STARTUP", >+ PROFTPD_VERSION_TEXT " " PR_STATUS, BUILD_STAMP); >+ >+- pidfile_write(); >++ pr_pidfile_write(); >+ daemon_loop(); >+ } >+ >+Index: src/pidfile.c >+=================================================================== >+RCS file: /cvsroot/proftp/proftpd/src/pidfile.c,v >+retrieving revision 1.2 >+diff -u -r1.2 pidfile.c >+--- src/pidfile.c 12 Jan 2007 05:40:37 -0000 1.2 >++++ src/pidfile.c 13 Jan 2007 04:13:10 -0000 >+@@ -32,7 +32,7 @@ >+ >+ static const char *pidfile_path = PR_PID_FILE_PATH; >+ >+-void pidfile_write(void) { >++void pr_pidfile_write(void) { >+ FILE *fh = NULL; >+ >+ pidfile_path = get_param_ptr(main_server->conf, "PidFile", FALSE); >+@@ -56,6 +56,6 @@ >+ } >+ } >+ >+-int pidfile_remove(void) { >++int pr_pidfile_remove(void) { >+ return unlink(pidfile_path); >+ } >diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/files/patch-utf8.c /usr/ports/ftp/proftpd/files/patch-utf8.c >--- /usr/ports/ftp/proftpd.orig/files/patch-utf8.c Thu Dec 21 13:13:40 2006 >+++ /usr/ports/ftp/proftpd/files/patch-utf8.c Wed Dec 31 14:00:00 1969 >@@ -1,110 +0,0 @@ >---- src/utf8.c.orig Wed Jun 14 15:33:19 2006 >-+++ src/utf8.c Wed Dec 13 08:40:35 2006 >-@@ -23,7 +23,7 @@ >- */ >- >- /* UTF8 encoding/decoding >-- * $Id: utf8.c,v 1.3 2006/06/14 23:33:19 castaglia Exp $ >-+ * $Id: utf8.c,v 1.4 2006/12/13 17:40:35 castaglia Exp $ >- */ >- >- #include "conf.h" >-@@ -38,12 +38,13 @@ >- # include <langinfo.h> >- #endif >- >-+#ifdef HAVE_ICONV_H >- static iconv_t decode_conv = (iconv_t) -1; >- static iconv_t encode_conv = (iconv_t) -1; >- >- static int utf8_convert(iconv_t conv, char *inbuf, size_t *inbuflen, >- char *outbuf, size_t *outbuflen) { >--#ifdef HAVE_ICONV >-+# ifdef HAVE_ICONV >- char *start = inbuf; >- >- while (inbuflen > 0) { >-@@ -61,14 +62,14 @@ >- break; >- } >- return 0; >--#else >-+# else >- errno = ENOSYS; >- return -1; >--#endif /* HAVE_ICONV */ >-+# endif /* HAVE_ICONV */ >- } >- >- int utf8_free(void) { >--#ifdef HAVE_ICONV >-+# ifdef HAVE_ICONV >- int res; >- >- /* Close the iconv handles. */ >-@@ -81,10 +82,10 @@ >- return -1; >- >- return 0; >--#else >-+# else >- errno = ENOSYS; >- return -1; >--#endif >-+# endif >- } >- >- int utf8_init(void) { >-@@ -111,7 +112,7 @@ >- "conversion"); >- #endif /* HAVE_NL_LANGINFO */ >- >--#ifdef HAVE_ICONV >-+# ifdef HAVE_ICONV >- /* Get the iconv handles. */ >- encode_conv = iconv_open(local_charset, "UTF-8"); >- if (encode_conv == (iconv_t) -1) >-@@ -122,13 +123,15 @@ >- return -1; >- >- return 0; >--#else >-+# else >- errno = ENOSYS; >- return -1; >--#endif /* HAVE_ICONV */ >-+# endif /* HAVE_ICONV */ >- } >-+#endif /* !HAVE_ICONV_H */ >- >- char *pr_utf8_decode(pool *p, const char *in, size_t inlen, size_t *outlen) { >-+#ifdef HAVE_ICONV_H >- size_t inbuflen, outbuflen; >- char *inbuf, outbuf[PR_TUNABLE_PATH_MAX*2], *res = NULL; >- >-@@ -156,9 +159,14 @@ >- memcpy(res, outbuf, *outlen); >- >- return res; >-+#else >-+ pr_trace_msg("utf8", 1, "missing iconv support, no UTF8 decoding possible"); >-+ return pstrdup(p, in); >-+#endif /* !HAVE_ICONV_H */ >- } >- >- char *pr_utf8_encode(pool *p, const char *in, size_t inlen, size_t *outlen) { >-+#ifdef HAVE_ICONV_H >- size_t inbuflen, outbuflen; >- char *inbuf, outbuf[PR_TUNABLE_PATH_MAX*2], *res; >- >-@@ -186,6 +194,10 @@ >- memcpy(res, outbuf, *outlen); >- >- return res; >-+#else >-+ pr_trace_msg("utf8", 1, "missing iconv support, no UTF8 encoding possible"); >-+ return pstrdup(p, in); >-+#endif /* !HAVE_ICONV_H */ >- } >- >- #endif /* PR_USE_NLS */ >diff -ruN --exclude=CVS /usr/ports/ftp/proftpd.orig/pkg-plist /usr/ports/ftp/proftpd/pkg-plist >--- /usr/ports/ftp/proftpd.orig/pkg-plist Sun Jan 7 08:37:15 2007 >+++ /usr/ports/ftp/proftpd/pkg-plist Mon Jan 15 22:19:35 2007 >@@ -15,6 +15,7 @@ > include/proftpd/default_paths.h > include/proftpd/dirtree.h > include/proftpd/display.h >+include/proftpd/env.h > include/proftpd/event.h > include/proftpd/feat.h > include/proftpd/fsio.h >@@ -35,9 +36,11 @@ > include/proftpd/netio.h > include/proftpd/options.h > include/proftpd/parser.h >+include/proftpd/pidfile.h > include/proftpd/pool.h > include/proftpd/pr-syslog.h > include/proftpd/privs.h >+include/proftpd/proctitle.h > include/proftpd/proftpd.h > include/proftpd/regexp.h > include/proftpd/response.h
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 107974
: 74669
Working