[PATCHES] 8.0.0b1: configure.in cygipc
Attached is a cygipc patch against 8.0.0p1 and 7.4.5: The cygipc patch should also be applied to the 7.4.x branch (if there will be some more releases): cygipc is deprecated in cygwin, replaced by cygserver added test to check for running cygserver and the required server in $CYGWIN. Otherwise build for cygipc, but print a warning. replaced AC_CHECK_LIB(cygipc, shmget) by a better logic to detect cygserver, and only use cygipc if cygserver fails. ** BTW: My current set of CYGWIN-PATCHES I'm working on is at http://xarch.tu-graz.ac.at/home/rurban/software/cygwin/postgresql/postgresql-7.4.5-1/ and http://xarch.tu-graz.ac.at/home/rurban/software/cygwin/postgresql/postgresql-8.0.0beta1-1/ but the 8.0.0b1 patchset is not finished yet. -- Reini Urban http://xarch.tu-graz.ac.at/home/rurban/ 2004-08-26 00:15:41 [EMAIL PROTECTED] cygipc is deprecated in cygwin, replaced by cygserver added test to check for running cygserver and the required server in $CYGWIN. Otherwise build for cygipc, but print a warning. --- postgresql-8.0.0beta1/configure.in~ 2004-08-09 00:27:12.0 +0100 +++ postgresql-8.0.0beta1/configure.in 2004-08-25 22:57:24.984375000 +0100 @@ -622,7 +622,26 @@ # Solaris: AC_SEARCH_LIBS(fdatasync, [rt posix4]) # Cygwin: -AC_CHECK_LIB(cygipc, shmget) +# Cygwin: +# TODO: check for early version where only cygipc was supported +if test $PORTNAME = cygwin +then +if test -z `ps -W |grep cygserver` +then + AC_MSG_WARN([ +*** cygserver not running! Checking for cygipc, but this is deprecated.]) + AC_CHECK_LIB(cygipc, shmget, [], + [AC_MSG_ERROR([cygipc library not found and cygserver not running. +And be sure to run cygserver and have server in the CYGWIN environment variable.])]) +else + if ! test `echo $CYGWIN|grep server` + then + AC_MSG_ERROR([cygserver is running, but the CYGWIN environment variable +does not contain server]) + fi +fi +fi + # WIN32: if test $PORTNAME = win32 then --- postgresql-8.0.0beta1/configure~2004-08-09 00:27:10.0 +0100 +++ postgresql-8.0.0beta1/configure 2004-08-25 23:12:25.359375000 +0100 @@ -5681,6 +6265,15 @@ fi # Cygwin: +# TODO: check for early version where only cygipc was supported +if test $PORTNAME = cygwin +then +if test -z `ps -W |grep cygserver` +then + { echo $as_me:$LINENO: WARNING: +*** cygserver not running! Checking for cygipc, but this is deprecated. 5 +echo $as_me: WARNING: +*** cygserver not running! Checking for cygipc, but this is deprecated. 2;} echo $as_me:$LINENO: checking for shmget in -lcygipc 5 echo $ECHO_N checking for shmget in -lcygipc... $ECHO_C 6 @@ -5690,8 +6283,11 @@ ac_check_lib_save_LIBS=$LIBS LIBS=-lcygipc $LIBS cat conftest.$ac_ext _ACEOF -#line $LINENO configure -#include confdefs.h +/* confdefs.h. */ +_ACEOF +cat confdefs.h conftest.$ac_ext +cat conftest.$ac_ext _ACEOF +/* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus @@ -5700,12 +6296,6 @@ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shmget (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern C -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif int main () { @@ -5716,10 +6306,20 @@ _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo $as_me:$LINENO: \$ac_link\) 5 - (eval $ac_link) 25 + (eval $ac_link) 2conftest.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) 25 + 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) 25 @@ -5729,10 +6329,12 @@ ac_cv_lib_cygipc_shmget=yes else echo $as_me: failed program was: 5 -cat conftest.$ac_ext 5 +sed 's/^/| /' conftest.$ac_ext 5 + ac_cv_lib_cygipc_shmget=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo $as_me:$LINENO: result: $ac_cv_lib_cygipc_shmget 5 @@ -5744,8 +6346,25 @@ LIBS=-lcygipc $LIBS +else + { { echo $as_me:$LINENO: error: cygipc library not found and cygserver not running. +And be sure to run cygserver and have \server\ in the CYGWIN environment variable. 5 +echo $as_me: error: cygipc library not found and cygserver not running. +And be sure to run cygserver and have \server\ in the CYGWIN environment variable. 2;} + { (exit 1); exit 1; }; } fi +else + if
Re: [PATCHES] 8.0.0b1: configure.in cygipc
Reini Urban wrote: cygipc is deprecated in cygwin, replaced by cygserver added test to check for running cygserver and the required server in $CYGWIN. Otherwise build for cygipc, but print a warning. configure checks the build environment, not the run time environment. It's completely irrelevant whether cygserver is running when building PostgreSQL. -- Peter Eisentraut http://developer.postgresql.org/~petere/ ---(end of broadcast)--- TIP 7: don't forget to increase your free space map settings
Re: [PATCHES] 8.0.0b1: configure.in cygipc
Peter Eisentraut schrieb: Reini Urban wrote: cygipc is deprecated in cygwin, replaced by cygserver added test to check for running cygserver and the required server in $CYGWIN. Otherwise build for cygipc, but print a warning. configure checks the build environment, not the run time environment. It's completely irrelevant whether cygserver is running when building PostgreSQL. I know, but I didn't want to indroduce yet another --with-cygipc configure switch, and the run-time detection is just decent a helper. But my patch is still valid: The current cygipc check is wrong when cygserver is running. If cygserver is not running, it displays a warning when using the cygipc library. Later we really should check the cygwin release version and decide on that. That will require `uname -r` parsing. Ok? -- Reini Urban http://xarch.tu-graz.ac.at/home/rurban/ ---(end of broadcast)--- TIP 7: don't forget to increase your free space map settings
Re: [PATCHES] [pgsql-hackers-win32] postmaster.pid
-Original Message- From: Magnus Hagander [mailto:[EMAIL PROTECTED] Sent: 25 August 2004 14:59 To: Tom Lane Cc: Dave Page; [EMAIL PROTECTED] Subject: RE: [pgsql-hackers-win32] postmaster.pid Ok, if you say so :-) I had the general impression we wanted that. But then let's go with the send-signal-0-down-the-pipe-and-ignore-it-in-the-backend. :-) Here's the massive 1 byte change required to do just that :-) Regards, Dave. === RCS file: /projects/cvsroot/pgsql-server/src/port/kill.c,v retrieving revision 1.2 diff -u -r1.2 kill.c --- kill.c 24 Jun 2004 18:53:48 - 1.2 +++ kill.c 26 Aug 2004 14:07:49 - @@ -26,7 +26,7 @@ BYTEsigRet = 0; DWORD bytes; - if (sig = PG_SIGNAL_COUNT || sig = 0) + if (sig = PG_SIGNAL_COUNT || sig 0) { errno = EINVAL; return -1; ---(end of broadcast)--- TIP 2: you can get off all lists at once with the unregister command (send unregister YourEmailAddressHere to [EMAIL PROTECTED])
Re: [PATCHES] [pgsql-hackers-win32] Service startup delay
-Original Message- From: Bruce Momjian [mailto:[EMAIL PROTECTED] Sent: 26 August 2004 02:44 To: Max Dunn Cc: Dave Page; 'Barry Lind'; [EMAIL PROTECTED] Subject: Re: [pgsql-hackers-win32] Service startup delay Another issue is that when installing the Postgres service with pg_ctl register -w the -w parameter was not put in the registry ImagePath value for the Postgres service. (I added it manually to test.) So I suspect that pg_ctl register will need to be enhanced to add the -w parameter to the registry settings. Would a Win32 guy look at this? No problem. Regards, Dave. === RCS file: /projects/cvsroot/pgsql-server/src/bin/pg_ctl/pg_ctl.c,v retrieving revision 1.25 diff -u -r1.25 pg_ctl.c --- pg_ctl.c21 Aug 2004 03:12:55 - 1.25 +++ pg_ctl.c26 Aug 2004 14:37:13 - @@ -832,6 +832,9 @@ strcat(cmdLine,\); } + if (do_wait) + strcat(cmdLine, -w); + if (post_opts) { strcat(cmdLine, ); @@ -1038,7 +1041,7 @@ printf(_( %s status [-D DATADIR]\n), progname); printf(_( %s killSIGNALNAME PROCESSID\n), progname); #ifdef WIN32 - printf(_( %s register [-N servicename] [-U username] [-P password] [-D DATADIR] [-o \OPTIONS\]\n), progname); + printf(_( %s register [-N servicename] [-U username] [-P password] [-D DATADIR] [-w] [-o \OPTIONS\]\n), progname); printf(_( %s unregister [-N servicename]\n), progname); #endif printf(_(Common options:\n)); ---(end of broadcast)--- TIP 4: Don't 'kill -9' the postmaster
Re: [PATCHES] [pgsql-hackers-win32] postmaster.pid
Should we (if only for the sake of completeness) make the converse one-byte change in port/win32/signal.c? It says: void pg_queue_signal(int signum) { if (signum = PG_SIGNAL_COUNT || signum 0) return; ... ISTM we should not ever queue any event for signal 0. cheers andrew Dave Page wrote: -Original Message- From: Magnus Hagander [mailto:[EMAIL PROTECTED] Sent: 25 August 2004 14:59 To: Tom Lane Cc: Dave Page; [EMAIL PROTECTED] Subject: RE: [pgsql-hackers-win32] postmaster.pid Ok, if you say so :-) I had the general impression we wanted that. But then let's go with the send-signal-0-down-the-pipe-and-ignore-it-in-the-backend. :-) Here's the massive 1 byte change required to do just that :-) Regards, Dave. === RCS file: /projects/cvsroot/pgsql-server/src/port/kill.c,v retrieving revision 1.2 diff -u -r1.2 kill.c --- kill.c 24 Jun 2004 18:53:48 - 1.2 +++ kill.c 26 Aug 2004 14:07:49 - @@ -26,7 +26,7 @@ BYTEsigRet = 0; DWORD bytes; - if (sig = PG_SIGNAL_COUNT || sig = 0) + if (sig = PG_SIGNAL_COUNT || sig 0) { errno = EINVAL; return -1; ---(end of broadcast)--- TIP 2: you can get off all lists at once with the unregister command (send unregister YourEmailAddressHere to [EMAIL PROTECTED]) ---(end of broadcast)--- TIP 4: Don't 'kill -9' the postmaster
Re: [PATCHES] [pgsql-hackers-win32] postmaster.pid
-Original Message- From: Andrew Dunstan [mailto:[EMAIL PROTECTED] Sent: 26 August 2004 15:43 To: Dave Page Cc: Magnus Hagander; Tom Lane; [EMAIL PROTECTED]; PostgreSQL-patches Subject: Re: [PATCHES] [pgsql-hackers-win32] postmaster.pid Should we (if only for the sake of completeness) make the converse one-byte change in port/win32/signal.c? It says: void pg_queue_signal(int signum) { if (signum = PG_SIGNAL_COUNT || signum 0) return; ... ISTM we should not ever queue any event for signal 0. That was my original intention, however Magnus thought it best just to let it be queued and subsequently ignored by the backend - thinking about it 15 minutes later I can't for the life of me think why that's any better... Regards, Dave. Index: backend/port/win32/signal.c === RCS file: /projects/cvsroot/pgsql-server/src/backend/port/win32/signal.c,v retrieving revision 1.4 diff -u -r1.4 signal.c --- backend/port/win32/signal.c 24 Jun 2004 21:02:42 - 1.4 +++ backend/port/win32/signal.c 26 Aug 2004 14:58:25 - @@ -162,7 +162,7 @@ void pg_queue_signal(int signum) { - if (signum = PG_SIGNAL_COUNT || signum 0) + if (signum = PG_SIGNAL_COUNT || signum = 0) return; EnterCriticalSection(pg_signal_crit_sec); Index: port/kill.c === RCS file: /projects/cvsroot/pgsql-server/src/port/kill.c,v retrieving revision 1.2 diff -u -r1.2 kill.c --- port/kill.c 24 Jun 2004 18:53:48 - 1.2 +++ port/kill.c 26 Aug 2004 14:58:28 - @@ -26,7 +26,7 @@ BYTEsigRet = 0; DWORD bytes; - if (sig = PG_SIGNAL_COUNT || sig = 0) + if (sig = PG_SIGNAL_COUNT || sig 0) { errno = EINVAL; return -1; ---(end of broadcast)--- TIP 8: explain analyze is your friend
Re: [PATCHES] [pgsql-hackers-win32] postmaster.pid
Shouldn't be necessary. We can do it, but it makes no real difference :-) It just ends up queued, but since there is no signal #0, it will never get dispatched. But it certainly wouldn't break things to do it either :-) //Magnus Should we (if only for the sake of completeness) make the converse one-byte change in port/win32/signal.c? It says: void pg_queue_signal(int signum) { if (signum = PG_SIGNAL_COUNT || signum 0) return; ... ISTM we should not ever queue any event for signal 0. cheers andrew Dave Page wrote: -Original Message- From: Magnus Hagander [mailto:[EMAIL PROTECTED] Sent: 25 August 2004 14:59 To: Tom Lane Cc: Dave Page; [EMAIL PROTECTED] Subject: RE: [pgsql-hackers-win32] postmaster.pid Ok, if you say so :-) I had the general impression we wanted that. But then let's go with the send-signal-0-down-the-pipe-and-ignore-it-in-the-backend. :-) Here's the massive 1 byte change required to do just that :-) Regards, Dave. === RCS file: /projects/cvsroot/pgsql-server/src/port/kill.c,v retrieving revision 1.2 diff -u -r1.2 kill.c --- kill.c 24 Jun 2004 18:53:48 - 1.2 +++ kill.c 26 Aug 2004 14:07:49 - @@ -26,7 +26,7 @@ BYTEsigRet = 0; DWORD bytes; -if (sig = PG_SIGNAL_COUNT || sig = 0) +if (sig = PG_SIGNAL_COUNT || sig 0) { errno = EINVAL; return -1; ---(end of broadcast)--- TIP 2: you can get off all lists at once with the unregister command (send unregister YourEmailAddressHere to [EMAIL PROTECTED]) ---(end of broadcast)--- TIP 6: Have you searched our list archives? http://archives.postgresql.org
Re: [PATCHES] [pgsql-hackers-win32] postmaster.pid
Dave Page [EMAIL PROTECTED] writes: ISTM we should not ever queue any event for signal 0. That was my original intention, however Magnus thought it best just to let it be queued and subsequently ignored by the backend - thinking about it 15 minutes later I can't for the life of me think why that's any better... Are there any error cases that we would miss detecting if it didn't go that far? regards, tom lane ---(end of broadcast)--- TIP 7: don't forget to increase your free space map settings
[PATCHES] Backported the very useful oracle_compat.c from postgres 8.0 beta to 7.4.5
Dear all! I'm new to the list, so please excuse if I repost this patch. In the found the _very_ useful oracle_compat.c function which implements correct UPPER(), LOWER() and INITCAP() for multibyte charactersets. This change is very important for everyone who uses multilingual databases, because it makes case insensitive search possible (like Ärzte and ärzte). We have tested the patch in our work, and we did not see any problems so far. I think Postgres without that patch is buggy. Thank you to Tom (who wrote the code) for the great work. The attached patch will patch the current stable version 7.4.5 Best whishes, Johannes --- postgresql-7.4.5/src/backend/utils/adt/oracle_compat.c 2003-08-08 23:42:06.0 +0200 +++ postgresql-8.0.0beta1/src/backend/utils/adt/oracle_compat.c 2004-06-07 00:17:01.0 +0200 @@ -9,23 +9,145 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql-server/src/backend/utils/adt/oracle_compat.c,v 1.48 2003/08/08 21:42:06 momjian Exp $ + * $PostgreSQL: pgsql-server/src/backend/utils/adt/oracle_compat.c,v 1.53 2004/06/06 22:17:01 tgl Exp $ * *- */ #include postgres.h #include ctype.h +#include limits.h +/* + * towlower() and friends should be in wctype.h, but some pre-C99 systems + * declare them in wchar.h. + */ +#ifdef HAVE_WCHAR_H +#include wchar.h +#endif +#ifdef HAVE_WCTYPE_H +#include wctype.h +#endif #include utils/builtins.h #include mb/pg_wchar.h +/* + * If the system provides the needed functions for wide-character manipulation + * (which are all standardized by C99), then we implement upper/lower/initcap + * using wide-character functions. Otherwise we use the traditional ctype.h + * functions, which of course will not work as desired in multibyte character + * sets. Note that in either case we are effectively assuming that the + * database character encoding matches the encoding implied by LC_CTYPE. + * + * We assume if we have these two functions, we have their friends too, and + * can use the wide-character method. + */ +#if defined(HAVE_WCSTOMBS) defined(HAVE_TOWLOWER) +#define USE_WIDE_UPPER_LOWER +#endif + static text *dotrim(const char *string, int stringlen, const char *set, int setlen, bool doltrim, bool dortrim); +#ifdef USE_WIDE_UPPER_LOWER + +/* + * Convert a TEXT value into a palloc'd wchar string. + */ +static wchar_t * +texttowcs(const text *txt) +{ + int nbytes = VARSIZE(txt) - VARHDRSZ; + char *workstr; + wchar_t*result; + size_t ncodes; + + /* Overflow paranoia */ + if (nbytes 0 || + nbytes (int) (INT_MAX / sizeof(wchar_t)) - 1) + ereport(ERROR, + (errcode(ERRCODE_OUT_OF_MEMORY), +errmsg(out of memory))); + + /* Need a null-terminated version of the input */ + workstr = (char *) palloc(nbytes + 1); + memcpy(workstr, VARDATA(txt), nbytes); + workstr[nbytes] = '\0'; + + /* Output workspace cannot have more codes than input bytes */ + result = (wchar_t *) palloc((nbytes + 1) * sizeof(wchar_t)); + + /* Do the conversion */ + ncodes = mbstowcs(result, workstr, nbytes + 1); + + if (ncodes == (size_t) -1) + { + /* +* Invalid multibyte character encountered. We try to give a useful +* error message by letting pg_verifymbstr check the string. But +* it's possible that the string is OK to us, and not OK to mbstowcs +* --- this suggests that the LC_CTYPE locale is different from the +* database encoding. Give a generic error message if verifymbstr +* can't find anything wrong. +*/ + pg_verifymbstr(workstr, nbytes, false); + ereport(ERROR, + (errcode(ERRCODE_CHARACTER_NOT_IN_REPERTOIRE), +errmsg(invalid multibyte character for locale))); + } + + Assert(ncodes = (size_t) nbytes); + + return result; +} + + +/* + * Convert a wchar string into a palloc'd TEXT value. The wchar string + * must be zero-terminated, but we also require the caller to pass the string + * length, since it will know it anyway in current uses. + */ +static text * +wcstotext(const wchar_t *str, int ncodes) +{ + text *result; + size_t nbytes; + + /* Overflow paranoia */ + if (ncodes 0 || + ncodes (int) ((INT_MAX - VARHDRSZ) / MB_CUR_MAX) - 1) + ereport(ERROR, + (errcode(ERRCODE_OUT_OF_MEMORY), +errmsg(out of memory))); + + /* Make workspace certainly large enough for result */ + result = (text *) palloc((ncodes + 1) * MB_CUR_MAX + VARHDRSZ); + +
Re: [PATCHES] [pgsql-hackers-win32] postmaster.pid
-Original Message- From: Tom Lane [mailto:[EMAIL PROTECTED] Sent: 26 August 2004 16:24 To: Dave Page Cc: Andrew Dunstan; Magnus Hagander; [EMAIL PROTECTED]; PostgreSQL-patches Subject: Re: [PATCHES] [pgsql-hackers-win32] postmaster.pid Dave Page [EMAIL PROTECTED] writes: ISTM we should not ever queue any event for signal 0. That was my original intention, however Magnus thought it best just to let it be queued and subsequently ignored by the backend - thinking about it 15 minutes later I can't for the life of me think why that's any better... Are there any error cases that we would miss detecting if it didn't go that far? None that I can think of. If we managed to open the pipe and get the zero back, then we've proved the process is there and is postgres. Regards Dave. ---(end of broadcast)--- TIP 4: Don't 'kill -9' the postmaster
Re: [PATCHES] [HACKERS] pg_hba.conf and IP-MASK
OK, doc patch attached and applied that prefers CIDR format for pg_hba.conf. --- Andrew Dunstan wrote: Tom Lane said: Andrew Dunstan [EMAIL PROTECTED] writes: Since our defaults don't use old-style masks any more, I would be tempted to remove the column labels for IP-ADDRESS and IP-MASK, and instead put in a single heading of IP-ADDRESS/CIDR-MASK. I don't know why there is any debate about this. When I said fix the comments to agree with the code, the column headings were certainly one of the things I had in mind. You should have done that in the original patch. Then I apologise. As I think I indicated, my time is very limited right now. So rather than submit things that are incomplete I will be refraining from pretty much any pg work for a while - I already did a lot more that I originally set as my goals for this release. cheers andrew ---(end of broadcast)--- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly -- Bruce Momjian| http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup.| Newtown Square, Pennsylvania 19073 Index: doc/src/sgml/client-auth.sgml === RCS file: /cvsroot/pgsql-server/doc/src/sgml/client-auth.sgml,v retrieving revision 1.65 diff -c -c -r1.65 client-auth.sgml *** doc/src/sgml/client-auth.sgml 23 Mar 2004 01:23:48 - 1.65 --- doc/src/sgml/client-auth.sgml 26 Aug 2004 16:11:06 - *** *** 86,97 A record may have one of the seven formats synopsis local replaceabledatabase/replaceable replaceableuser/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional host replaceabledatabase/replaceable replaceableuser/replaceable replaceableIP-address/replaceable replaceableIP-mask/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional hostsslreplaceabledatabase/replaceable replaceableuser/replaceable replaceableIP-address/replaceable replaceableIP-mask/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional hostnossl replaceabledatabase/replaceable replaceableuser/replaceable replaceableIP-address/replaceable replaceableIP-mask/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional - host replaceabledatabase/replaceable replaceableuser/replaceable replaceableIP-address/replaceable/replaceableIP-masklen/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional - hostsslreplaceabledatabase/replaceable replaceableuser/replaceable replaceableIP-address/replaceable/replaceableIP-masklen/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional - hostnossl replaceabledatabase/replaceable replaceableuser/replaceable replaceableIP-address/replaceable/replaceableIP-masklen/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional /synopsis The meaning of the fields is as follows: --- 86,97 A record may have one of the seven formats synopsis local replaceabledatabase/replaceable replaceableuser/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional + host replaceabledatabase/replaceable replaceableuser/replaceable replaceableCIDR-address/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional + hostsslreplaceabledatabase/replaceable replaceableuser/replaceable replaceableCIDR-address/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional + hostnossl replaceabledatabase/replaceable replaceableuser/replaceable replaceableCIDR-address/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional host replaceabledatabase/replaceable replaceableuser/replaceable replaceableIP-address/replaceable replaceableIP-mask/replaceable replaceableauthentication-method/replaceable optionalreplaceableauthentication-option/replaceable/optional hostsslreplaceabledatabase/replaceable replaceableuser/replaceable
[PATCHES] Contrib Shared varaibles
After taking some suggestions, I added a number of routines. Please test and tell me what you think. (Yes, I know the API is poorly named, have any suggestions?) sharedvar-040826.tgz Description: application/unix-tar ---(end of broadcast)--- TIP 8: explain analyze is your friend