ian%hixie.ch
56f854aaad
Fix fallout in the Input modules from the removal of implied properties
...
git-svn-id: svn://10.0.0.236/trunk@140398 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-27 19:50:40 +00:00
ian%hixie.ch
afb1a224ac
typo fix
...
git-svn-id: svn://10.0.0.236/trunk@140385 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-27 14:59:26 +00:00
ian%hixie.ch
d0e1d3a931
remove DESTROY code, rework the output system to use a single hash instead of passing arguments around, delay the loading of certain modules, fix some bugs with the removal of the built in property system, make the TemplateToolkit module only have one template object, and cache the precompiled documents, remove the HTTP output module, and other optimisations.
...
git-svn-id: svn://10.0.0.236/trunk@139517 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-15 14:14:21 +00:00
ian%hixie.ch
dcb58218de
Improve the Exception class so it can work out what 'eval' numbers map to; remove the 'properties' stuff since it was taking a good 4% of the overall time of PLIF applications. THIS WILL CAUSE HUGE PROBLEMS WITH PLIF CONSUMERS. I REPEAT, THIS **WILL** BREAK YOUR CODE. DO NOT UPDATE TO THIS CODE IF YOU DON'T WANT TO SPEND A LOT OF TIME UPDATING YOUR CODE\!\!\!
...
git-svn-id: svn://10.0.0.236/trunk@139447 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-14 13:08:43 +00:00
ian%hixie.ch
4015b54a02
Stop perl parsing source files that aren't used. (Lazy loading using __DATA__ blocks)
...
git-svn-id: svn://10.0.0.236/trunk@139442 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-14 07:50:18 +00:00
ian%hixie.ch
558798af98
More debugging information
...
git-svn-id: svn://10.0.0.236/trunk@139419 18797224-902f-48f8-a5cc-f745e15eee43
2003-03-14 02:16:09 +00:00
ian%hixie.ch
baa0546c6d
PATH_INFO support.
...
git-svn-id: svn://10.0.0.236/trunk@136100 18797224-902f-48f8-a5cc-f745e15eee43
2003-01-10 00:14:45 +00:00
ian%hixie.ch
2cee3c9a12
Mark GET and HEAD requests as idempotent. Commands still have to explicitly support this, of course.
...
git-svn-id: svn://10.0.0.236/trunk@135589 18797224-902f-48f8-a5cc-f745e15eee43
2002-12-23 11:47:20 +00:00
ian%hixie.ch
10d67334f2
Add support for cookies using the new getSessionData() API.
...
git-svn-id: svn://10.0.0.236/trunk@135588 18797224-902f-48f8-a5cc-f745e15eee43
2002-12-23 11:46:30 +00:00
ian%hixie.ch
c0c07ec40c
Minor fixups on the regexps. Add support for '--' to signal the end of the arguments (although at the moment it only cancels the previous argument rather than indicating the end of any flag arguments). Change the --batch-force-defaults to be the default --batch mode, and make the old --batch mode be called --batch-no-defaults. This could change again later.
...
git-svn-id: svn://10.0.0.236/trunk@135587 18797224-902f-48f8-a5cc-f745e15eee43
2002-12-23 11:45:37 +00:00
ian%hixie.ch
cebe0dd11b
since the default getMetaData() does the same now, removing this redundant implementation
...
git-svn-id: svn://10.0.0.236/trunk@135586 18797224-902f-48f8-a5cc-f745e15eee43
2002-12-23 11:42:57 +00:00
ian%hixie.ch
f17db356a9
Fix it so HEAD requests actually work rather than Apache aborting due to 'incomplete headers'.
...
git-svn-id: svn://10.0.0.236/trunk@134090 18797224-902f-48f8-a5cc-f745e15eee43
2002-11-19 06:54:35 +00:00
ian%hixie.ch
bf08137422
More debugging information, to make it easier to debug multiple PLIF-based projects that are outputting to the same error log.
...
git-svn-id: svn://10.0.0.236/trunk@133486 18797224-902f-48f8-a5cc-f745e15eee43
2002-11-09 15:26:41 +00:00
ian%hixie.ch
124d766c7e
Adding more debug code to make my life easier.
...
git-svn-id: svn://10.0.0.236/trunk@132909 18797224-902f-48f8-a5cc-f745e15eee43
2002-11-02 17:56:51 +00:00
ian%hixie.ch
6345ac6027
HTTP HEAD support (unfortunately Apache screws it up, but theoretically this should work, I think...)
...
git-svn-id: svn://10.0.0.236/trunk@131273 18797224-902f-48f8-a5cc-f745e15eee43
2002-10-06 22:06:51 +00:00
ian%hixie.ch
8e236f1b21
More debugging information at high verbosity settings.
...
git-svn-id: svn://10.0.0.236/trunk@129101 18797224-902f-48f8-a5cc-f745e15eee43
2002-09-09 19:22:10 +00:00
ian%hixie.ch
26b1d31c7e
XML RPC support. This is all you need to turn a PLIF application into a PLIF application with XML RPC.
...
git-svn-id: svn://10.0.0.236/trunk@128882 18797224-902f-48f8-a5cc-f745e15eee43
2002-09-05 17:04:03 +00:00
ian%hixie.ch
b037aed215
Split the CGI input module into one module per method and Content-Type. In the process, added support for MIME multipart POST, so in theory we now support file upload too.
...
git-svn-id: svn://10.0.0.236/trunk@128875 18797224-902f-48f8-a5cc-f745e15eee43
2002-09-05 16:18:38 +00:00
ian%hixie.ch
f436c3ecbc
Implement getArgumentsTree(), which returns a hash tree representing the first value of each unique argument name in a branch, using dots as the separator. Finally replaced the hardcoded non-extensible meta data stuff with a proper getMetaData() API. Implemented that in the various Input modules. Renamed 'parameter' to 'property' in the CGI Input module. Added '--batch-force-defaults' as an argument handled by the CommandLine Input module. Made CommandLine derive from Default instead of Arguments, so that it can pick up the default handling of metadata and default output protocol.
...
git-svn-id: svn://10.0.0.236/trunk@124722 18797224-902f-48f8-a5cc-f745e15eee43
2002-07-06 15:59:56 +00:00
ian%hixie.ch
93eb72753c
Primitive POST support (work in progress)
...
git-svn-id: svn://10.0.0.236/trunk@124375 18797224-902f-48f8-a5cc-f745e15eee43
2002-06-30 21:30:43 +00:00
ian%hixie.ch
8fb371cdfa
Cache the Term::ReadLine input device. On some systems, it has to be cached, otherwise you end up trying to open too many input handles or something like that. This also means we can have session history where available.
...
git-svn-id: svn://10.0.0.236/trunk@122183 18797224-902f-48f8-a5cc-f745e15eee43
2002-05-26 15:03:48 +00:00
ian%hixie.ch
cbbeb386bf
Add some null checking -- if the string is undefined, then turn it into the empty string. This avoids many undefined value warnings when the data provided by the user is incomplete.
...
git-svn-id: svn://10.0.0.236/trunk@122182 18797224-902f-48f8-a5cc-f745e15eee43
2002-05-26 15:02:33 +00:00
ian%hixie.ch
c68716f30e
Add support for converting + signs in URIs back to spaces.
...
git-svn-id: svn://10.0.0.236/trunk@120764 18797224-902f-48f8-a5cc-f745e15eee43
2002-05-04 01:02:19 +00:00
ian%hixie.ch
1fde83c771
Made all dependencies load their modules on demand rather than on startup (cuts down the page serving time by about 50%). Also removed some debugging statements in certain high profile areas.
...
git-svn-id: svn://10.0.0.236/trunk@109373 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-30 20:48:36 +00:00
ian%hixie.ch
10f906b791
Fixing an inconsistency between getArgument() and peekArgument(). peekArgument() now returns an empty list in an array context if there is no such argument, instead of undef. This makes it act like getArgument(), which just returns the list of values in an array context. Similarly, made the default implementation of peekArgument() whine about not being implemented instead of returning undef, since by design peekArgument() should return the same as getArgument() if the argument is present.
...
git-svn-id: svn://10.0.0.236/trunk@109360 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-30 16:13:00 +00:00
ian%hixie.ch
d65266d7a4
* Corrected some inaccurate comments I came across.
...
* Added support for group membership levels (now you can be a normal member, as before, but also a group op or a group admin) -- this affected the user data source, the mysql data source, and the user service.
* Added a getFieldsHierarchically() method to the user data source.
* Added a getFieldsByCategory() method to the user data source.
* Fixed a typo in some of the SQL in the rights management part of the MySQL user data source.
* Added support in the arguments input module for treating the arguments as dot-delimited trees and returning a specific branch.
* Added support in the passwords service for encrypting a specific password.
* Added a getFieldByID() method to the user service.
* Made the groups in the user service be indexed by both ID and Name.
* Implemented the user preferences component.
git-svn-id: svn://10.0.0.236/trunk@109234 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-29 18:03:38 +00:00
ian%hixie.ch
30f7d9e23f
Change createArgument so that we drop the default on the floor -- the default should only be used when explicitly requested (e.g. by the user in interactive mode), not in all cases. CommandLine.pm was in fact already assume that this was the case.
...
git-svn-id: svn://10.0.0.236/trunk@107851 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-10 22:04:34 +00:00
ian%hixie.ch
38d0af9333
Switching to batch mode involves changing the 'batch' argument, not the one being requested... ahem.
...
git-svn-id: svn://10.0.0.236/trunk@107849 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-10 21:59:13 +00:00
ian%hixie.ch
d793a48053
Handle the case where the user hits Ctrl+D during input, and the case where the user piped a file into us and the file was too short.
...
git-svn-id: svn://10.0.0.236/trunk@107847 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-10 21:53:49 +00:00
ian%hixie.ch
8429169df5
Removing unnecessary spammy debug output (this code works now... honest\!)
...
git-svn-id: svn://10.0.0.236/trunk@107770 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-09 21:22:32 +00:00
ian%hixie.ch
3d2d5f544f
Decode %XX-encoded strings.
...
git-svn-id: svn://10.0.0.236/trunk@107769 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-09 21:19:59 +00:00
ian%hixie.ch
ca0cb58027
Removing excess trailing spaces on one line, and moving a warn from level 5 ('important events') to level 8 ('frequent important events').
...
git-svn-id: svn://10.0.0.236/trunk@107749 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-09 17:03:40 +00:00
ian%hixie.ch
0e1edf614f
Also send default values to output.
...
git-svn-id: svn://10.0.0.236/trunk@107679 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-08 17:27:07 +00:00
ian%hixie.ch
738e081f7c
Implement default values for arguments. getArgument() and createArgument() now take two parameters like setArgument(). Changed the CommandLine module's createArgument() method so that if the user hits enter at the prompt, the default value is used. Added some comments to clarify what is going on with the 'batch' argument. Changed setArgument() and createArgument() in the Arguments module and createArgument() in the CommandLine module to be more efficient (less array copying).
...
git-svn-id: svn://10.0.0.236/trunk@107678 18797224-902f-48f8-a5cc-f745e15eee43
2001-11-08 17:09:11 +00:00
ian%hixie.ch
c054620213
Some more minor corrections to get it to run as well as compile... (removes some XXX comments and adds some error checking)
...
git-svn-id: svn://10.0.0.236/trunk@96275 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-03 15:27:16 +00:00
ian%hixie.ch
e283e3f98d
Fixing a gazillion syntax, logic and XML errors and adding some debug code. It compiles!
...
git-svn-id: svn://10.0.0.236/trunk@96274 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-03 14:49:41 +00:00
ian%hixie.ch
1c4b9ea728
* Added some comments (including some XXX comments where I realised we had missing code)
...
* Added implicit data to the hash passed to the string expander from the generic output service
* To support the implicit data, added a |hash| stub method to the Session.pm module (and changed the already implemented version in the descendant user service to take this into account)
* To support the implicit data, added |hash| and |getArguments| methods to the Input.pm module (and implemented |getArguments| in the Arguments.pm module)
* To support the implicit data, made the Program.pm module keep track of the executing command
* To support the implicit data, added |hash| and |name| methods to the Program.pm module (actually, |name| was already assumed to exist in other parts of the codebase)
* Corrected trivial semantic mistake in Program.pm's |verifyInput| method
* Added a way to get a user not by username but by a specific address (modifies the user service and the user data source and it's MySQL implementation)
* Implemented GenericOutputs.pm, an implementation of 'dispatcher.output.generic' and 'dataSource.strings.default' for some strings used by other parts of PLIF (currently only supports 'stdout' and 'http' protocols, and minimally at that)
* Implemented Login.pm, a helper module that implements user authentication, user creation and the sending of a new password if it is forgotten, a utility method |hasRight| to ensure that the authenticated user has a particular right (resulting in a message if not), and various routines to support all this.
git-svn-id: svn://10.0.0.236/trunk@96268 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-03 10:11:58 +00:00
ian%hixie.ch
72c3f78013
work in progress
...
git-svn-id: svn://10.0.0.236/trunk@94031 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-05 07:12:56 +00:00