MiniVend 2.03d - Perl 5.004 and session fixes * Now compatible with Perl 5.004. * Sessions now can be handled in more than one way. The default is with the new directive DomainTail set to "yes". This qualifies the session ID with the major domain instead of the IP number (i.e. aol.com instead of 152.163.202.72). This should prevent problems with AOL and other ISPs who use multiple proxy servers. If you set DomainTail to 'no' and the new directive IpHead to 'yes', this will use the major two dot-quads of the IP number instead. This will work well for systems that have HostNameLookups off (on either the secure or non-secure server). To keep the old (unreliable for AOL) behavior, set DomainTail to 'no' in minivend.cfg. * Server should now be reliable on BSD. Uses the File::Counterfile module to keep server counts. The SafeSignals directive (minivend.cfg) can be set to 'no' if you wish to try this for other operating systems. MiniVend 2.03c - Minor change to 2.03b to fix sessions MiniVend 2.03b - Bug fixes * Made ready to run with Perl 5.004 by fixing SafeUntrap (will find correct version, use Opcode.pm style if version greater than 5.00320) and a few warnings * Added all patches from patch set A * Added patch that allows accesses from multiple proxy servers (i.e. AOL) while retaining session for SSL * Added Safe{'carts'} access method * Added 'do_tag' routine that allows access to tags within perl user subroutines. Called with: $data = do_tag("data arbitrary field1 $key"); MiniVend 2.03 - User reconfiguration and internet-domain server, * Re-configuring a catalog can now be done on an individual basis. No more server re-starts for a user to change their configuration. * MiniVend no longer requires DBM, though it is still best to use GDBM or DB_File if available. There is a file-based session storage message mechanism, and product databases can be stored in memory. This is automatically selected if appropriate. * Multi-server mechanism changed completely. Only one server runs when in quiescent state -- it forks additional servers as necessary, up to a limit you decide. This works around a memory leak in Safe.pm, the server can now run for months on end. * Runs on just about any Unix operating system with no changes, providing Perl 5.002 is available. This includes IRIX, which formerly would not run MiniVend. * Perl subroutines can now be defined on three levels, and directly called from MiniVend pages. Two use the Safe.pm module for enforcing security, while an administrator-enabled GlobalSub routine can run external programs for complete control. * mSQL support is now considered stable, and the databases can be updated by forms from within MiniVend. * The link CGI program may now use TCP-based sockets, which allows the link CGI to be located on a different machine than the MiniVend server. Be careful of security, though! * Perl link programs are provided for systems without a C compiler. (Solaris still needs a C compiler for File::Lock, unless it is already installed on Perl.) Not production quality -- user help would be appreciated. * Search sorting can be done right on the page from returned fields, and be sorted by field based on form options. * The [if ...] conditionals are much improved. Contained HTML can now be deferred until the last interpolation pass with the [post] [/post] tag pair. * New mv_click and mv_check special variables set multiple form parameters with a single form button. * Cookies are only sent once if enabled, preventing annoying multiple warnings if the user has them turned on. * If the user is going through multiple proxy servers (as AOL users do), the session will be stable. * If REMOTE_USER is present, the IP address will not be used for the session name, allowing the same user to connect to a saved session from any machine. * Many other minor bug fixes, improvements, and changes. - Server now runs on either UNIX-domain or internet domain sockets - mSQL arrayhash primitive added - More backend support hooks, can be integrated with Cybercash - Order quantities optionally fractional - Shopping carts can be manipulated by Perl [perl carts] - [uniq] and [sort opt] constructs added to search lists - Rudimentary search caching - Improved demo - Fixed [if explicit ...] tag (again) - Added TcpHost, TcpPort, HouseKeeping, SearchCache, Password, MasterHost, RemoteUser, FractionalItems, GlobalSub, Sub directives MiniVend 2.02 - Multiple Shopping Carts and mSQL * mSQL support * Added [msql hash|array|html|param] SQL code [/msql] , [msql list SQL code] substitution-list [/msql], [item-param n] tags * Added MsqlDB, MsqlProducts, CreditCardAuto, SeparateItems, Locale catalog directives * Untrapping of Safe op codes defined in global minivend.cfg with SafeUntrap directive (249 and 148 by default) * Better credit-card checksum validation, with conditional PGP encryption that can be embedded in order email * Fixed [if explicit ...] tag * Removed CreditCards directive * Greatly improved search reliability * Added search sorting * Multiple shopping carts (buy/sell) * Automatic installation of File::Lock module on Solaris * Improved PGP support * Removed standard Des capability * Improved stop script to kill non-responders (with -f option) and clean up sockets/pidfiles * Configuration bugs fixed (ownership and SampleUrl) * Added (if_loop_field) to [loop list], make separate from [item-list] still compatible with old * Loop lists can now be quoted values, still no embedded ] MiniVend 2.01 - Maintenance Release * Added modifier variables to user values * Encapsulated code to prevent dying on catalog config and execution * Improved makecat scripts * Corrected silly duplication of files * Improved [selected] and [checked] * Fixed minor demo problems * Changed IRIX locking to flock() * Changed configure to set ForkSearches to NO on SunOS and OSF/Alpha MiniVend 2.0 - The ISP release * Multiple independent and shared catalogs * Embedded Perl code using Safe.pm (still has memory leak?) * Range searching in the TextSearch module (add Glimpse) * Discount policy * UPS lookup shipping calculation * Multiple configurable attributes (size/color, etc) * Order profiling allows multi-level screens * New tags [loop item,item...]value[/loop], [modifier-name attribute] and [item-modifier attribute] * Added [else][/else] to [if_field] * Demo much improved * Removed MAT * No option for svend in installation, must install manually * No option for netstart * Made Solaris default to full support, still needs File::Lock * Fixed library ordering problem * Many reliability improvements MiniVend 1.03 - Multiple servers and disconnected searching * Multiple servers can be run for the same catalog * Searches are forked so single-server installations will not see delays while searching * Cookie support * Quantity price breaks * Revamped demo yet again * Order lists can be displayed anywhere * Nameable order and search pages * Accessories feature * Added TaxShipping, NonTaxableField, PriceField, DescriptionField, AlwaysSecure, ExtraSecure, HammerLock, MultiServer, PageCheck, PriceBreaks, MixMatch, Cookies, Specialpage, Database directives * Searches are now independent on database field * Fixed bugs in match paging * Arbitrary table-like text formatting with [row] [column] elements * Vend variables available with [if][else][/else][/if] * Configuration script now handles multiple installs, and GCC is recognized * Code somewhat modularized * Pages are checked for fatal errors before server starts??? * Static mode will be almost unusable unless the Apache Perl_fast mode is used (not supported or explained) * MAT now displays error logs??? * Unlimited databases * Special pages are mapped * [data database field key] tag added MiniVend 1.02 - SSL Security * Revamped demo to have fewer frames * Added CreditCards, EncryptProgram, FrameOrderPage, SecureOrderMsg, SecureURL directives to configuration * Added __secure suffix to target of [pagetarget] element, allows secure transmission of arbitrary pages * Added [process-target target secure] element * Added [secure-order] element * Improved "match exactly" search, removed bug that could crash program (not the system) * Added Imagemap behavior for forms, uses the mv_todo.map variable to pass "client-side" maps * Added TCP-based link program and Server.pm.tcp to allow TCP-based communication (no auto installation). THIS IS A SECURITY HOLE IF USING SSL AND DES @ Fixed bug causing session close if bad quantity entered MiniVend 1.01 - Extensive changes * Added [salestax], [subtotal] tags * Added CustomShipping, DefaultShipping, Backend, SalesTax, and Tracking directives * Added backend order entry in the tracking DBM database * Added order archiving in the tracking DBM database * Added page stats in the tracking DBM database * Added custom shipping charges with shipping.asc file * Added sales tax calcuation with salestax.asc file * Changed name of vendadm/avend to MAT * Documented all of the above * Added example backend order entry programs (bin/entord and bin/trackrpt) MiniVend 1.0a - Fixed minor configuration and catalog bugs 2/13/96 MiniVend 1.0 - Extensive changes to the documentation 2/11/96 and programs to change the name. * Added [random] element and Random directive for random messages embedded in pages * Added [help item] element and Help directive for inline help messages Version 0.2m8 * Added [body n] element and Mv_Background, Mv_TextColor, Mv_BgColor, Mv_LinkColor, and Mv_VlinkColor directives for user-customizeable appearance * Added [buttonbar n] element and ButtonBars directive for canned button bars Version 0.2m7 * Added Server.pm and Http.pm support, now much faster when running in server mode * Made locking more portable by using Vend::lock.pm module * Changed configure script to support server mode * Added VendRoot/etc dir to hold socket, pidfile, and conf files * Docs still don't discuss all this, next version Version 0.2m6 Splinter version by Mike Heins - February 3, 1996 * Added client-side imagemap support * Added tags [areatarget page target] [area page] * Added comma prices with PriceCommas directive * Configuration utility for installation * Improved documentation for all * Added frames demo * Deleted [search][/search] tag * Regularized variables over vendadm.pl, vendpage, vend.pl * Added password check on vendadm.pl * Changed default file names to make ready for NT version Version 0.2m5 Splinter version by Mike Heins - January 26, 1996 * Added frame support * Add tags [pagetarget page frame][/pagetarget] [frames-on] [frames-off] * vendadm(8L) utility added to help administer Vend Version 0.2m4 Splinter version by Mike Heins - December 28, 1995 * Subdirectory capabilty added ('/' added to $codere) * Search engine added to search product index (ASCII) * Search engine added to search page tree (glimpse, untested) * Add tags [search][/search] [search-list][/search-list] [item-link] * Product codes put in dbm files, with makedb command to make them from ASCII source * Fourth field (page location) added to product file * vendpage(8L) utility added to help maintain tree Version 0.2 svend.c cleaned up configuration directives now get correct default values Version 0.1 initial release