Commit Graph

271 Commits

Author SHA1 Message Date
ian%hixie.ch
7704309a18 Add support for post-processing output filters. Also, some minor clean-up. 2002-10-06 22:08:32 +00:00
ian%hixie.ch
a7bd00dfb1 HTTP HEAD support (unfortunately Apache screws it up, but theoretically this should work, I think...) 2002-10-06 22:06:51 +00:00
ian%hixie.ch
c327b415aa Typo: colon should be dot to be consistent with everything else in PLIF. 2002-09-19 18:23:36 +00:00
ian%hixie.ch
9fb1137821 Form submission cleanup: use ./ instead of blank actions, since some UAs leave the query string on POSTs with blank actions. Also switch some GETs to POSTs since we now support them. 2002-09-14 13:07:18 +00:00
ian%hixie.ch
d7fbc1c86c Add more debugging output to core parts of the run loop. 2002-09-14 12:47:02 +00:00
ian%hixie.ch
662bae0d99 The 'acknowledge' string could be used for more than blank requests. 2002-09-14 12:46:16 +00:00
ian%hixie.ch
25f761a622 Implement a way for requests to include referrer information. 2002-09-14 12:45:26 +00:00
ian%hixie.ch
4889c1fb44 To make debugging easier, move the level 9 output debugging dumps from failure cases in the datasources to always, in the generic output service. May need further tweaking later. 2002-09-12 11:45:17 +00:00
ian%hixie.ch
adba24c93e Adding a new way of executing database statements: attempt(). Works like execute() but doesn't raise an exception on failure. Check for failure by using the ResultsFrame's 'lastError' method. 2002-09-12 11:44:07 +00:00
ian%hixie.ch
ad095c7804 Add two new filters: One for theoretically valid URIs, and one for strings being embedded _into_ URIs. Note that the first overrides the Template::Filters version since that version is arguably incorrect. 2002-09-11 23:11:43 +00:00
ian%hixie.ch
791866856a Changing 'HTTP/1.1' to 'Status:' since we're now in a non-nph environment. 2002-09-09 19:23:04 +00:00
ian%hixie.ch
cae1696299 More debugging information at high verbosity settings. 2002-09-09 19:22:10 +00:00
ian%hixie.ch
2493903b1d Implementations should stop using nph- scripts now. (This may have more fallout.) 2002-09-09 15:38:05 +00:00
ian%hixie.ch
8ee8ff9e8b Return the HTTP headers as well in an array context. 2002-09-08 16:39:35 +00:00
ian%hixie.ch
6e7c01e16e Switch to using smart_encode, cos we are smart. Add support for <fault> in XML-RPC output to handle errors. 2002-09-06 10:37:17 +00:00
ian%hixie.ch
8091275c08 Add a comment to remind others of what I forgot... (that you probably need a propertyImpliedAccessAllowed to use methodMissing) 2002-09-06 02:01:48 +00:00
ian%hixie.ch
239d98ec13 Normalise the command argument so that we don't choke if it has a dot in it or something. (We don't always control what the command is, e.g. for XMLRPC.) 2002-09-06 02:00:26 +00:00
ian%hixie.ch
f865cddc1c Silly typo: the constructor arguments don't go on the class, duh 2002-09-06 01:54:14 +00:00
ian%hixie.ch
2a1af49e61 A wrapper around LWP::UserAgent and HTTP::Entities. (And maybe other things, in future.) 2002-09-05 21:16:24 +00:00
ian%hixie.ch
2c7166b3af Minor bug fixes: Make anonymous arguments start from 1 not 0; make a zero argument response have a response (a true boolean); make outputs with zero or one arguments be handled as outputs instead of implied property accesses. 2002-09-05 21:15:15 +00:00
ian%hixie.ch
3da4cfd8a2 Add a generic output: acknowledge. Used when nothing is particularily required as a response, e.g. for a one-way XMLRPC call. 2002-09-05 21:05:33 +00:00
ian%hixie.ch
6e682a075a XML RPC support. This is all you need to turn a PLIF application into a PLIF application with XML RPC. 2002-09-05 17:04:03 +00:00
ian%hixie.ch
533f6d4def Removing a few things which are now done or which will never be done. 2002-09-05 16:52:07 +00:00
ian%hixie.ch
8b10632835 Missing newline in the output. This was causing some hickups for some UAs (perfectly understandably...) 2002-09-05 16:27:04 +00:00
ian%hixie.ch
ded9adb65d Optimisation: move the importing of Template::Context to runtime. 2002-09-05 16:24:58 +00:00
ian%hixie.ch
1998746fe3 Untaint the statement as well as the values before handing them to the database, because some statements are made from tainted data. This should be made more secure at some point, because currently there's no checking of database statements. 2002-09-05 16:23:38 +00:00
ian%hixie.ch
e13d10f036 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. 2002-09-05 16:18:38 +00:00
ian%hixie.ch
aa2d09d401 Adding yet more layers to the output mechanism: now objects con hook in and do whatever they like to the output before it reaches the protocol (or generic) output service instance. Also, move the objects hash reset code to the end of the run loop so that an input device can add an object (before, the earliest you could add an object was the input verifier). 2002-09-05 16:11:25 +00:00
ian%hixie.ch
8db0d6ded5 Some minor code fixups with no semantic change. Also, fixed the getArgumentsAsString method to not screw up the output when there are empty arrays in the arguments hash (as can happen when you call createArgument, which happens when getArgument is called and the argument is missing) and when the arguments hash contains scalars. 2002-07-16 15:50:14 +00:00
ian%hixie.ch
a35d045656 Add support for a command which does nothing but pass its argument to the output system. This is especially useful for templates that want to show other templates without actually doing anything else, and so the command is called 'showTemplate'. 2002-07-16 15:46:28 +00:00
ian%hixie.ch
5a6c17d958 Let's try a different tactic in a scalar context. If there's no data, return undef. 2002-07-07 15:42:57 +00:00
ian%hixie.ch
299f260287 Update the string data source to use the new input metadata APIs 2002-07-07 00:13:29 +00:00
ian%hixie.ch
62165e7d5b Typo: adddress should be address. Doesn't make any particular difference to anything unless someone has already written automated installation scripts... 2002-07-06 17:59:10 +00:00
ian%hixie.ch
12d86e0428 Change the 'row' method of the ResultsFrame API to return an array in an array context, a hashref in a scalar context, and the value on its own if there is only one returned value. (Controversial change. This could introduce hard to spot regressions, and might be backed out at some point.) 2002-07-06 17:52:21 +00:00
ian%hixie.ch
c5ff59c053 Introduce the service.uaStringInterpreter.<protocol> service, which takes a UA string and splits it into name, version, manufacturer, platform and comment. This is the HTTP implementation of that service. 2002-07-06 17:49:22 +00:00
ian%hixie.ch
c931d0e91f Added the following filters to the Template Toolkit toolbox: htmlcomment, xmlcomment, xml, cdata, htmljs, js, css. Added support for named [% BLOCK %], which had been removed when the template processing code was overridden. 2002-07-06 16:14:58 +00:00
ian%hixie.ch
67ff1ef52d Remove XXX comment about needing an API to enable or disable UI elements, since that need has disappeared now that we use provide that information reliably in the user object. Also split a long line into two for no particular reason. 2002-07-06 16:12:42 +00:00
ian%hixie.ch
724d714a02 Changed the default handling of the generic output module. Now, if there's no generic dispatcher for an output command, it'll effectively synthesise one on the fly, using the method name as the string name and the arguments as an array of values for a 'data' variable. This means that applications can skip out on implementing a generic dispatcher now. Anyone using strings with dot separators (i.e. anyone writing libraries) still need to have generic output dispatcher methods though, to map the method call to a string name. 2002-07-06 16:05:48 +00:00
ian%hixie.ch
927a78dfd7 Made the SMTP 'timeout' value configurable at setup time (defaults to 5 seconds) 2002-07-06 16:02:07 +00:00
ian%hixie.ch
3f748a7c22 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. 2002-07-06 15:59:56 +00:00
ian%hixie.ch
7c56b08e2b Update to TemplateToolkit format 2002-06-30 21:35:27 +00:00
ian%hixie.ch
19251aa801 Include character set information in the HTTP headers 2002-06-30 21:34:57 +00:00
ian%hixie.ch
b0b0c2d2b3 HTTP needs RFC822 dates for its Date: line 2002-06-30 21:33:21 +00:00
ian%hixie.ch
24c018b496 Primitive POST support (work in progress) 2002-06-30 21:30:43 +00:00
ian%hixie.ch
f4a812c534 Oops, wrong repository... 2002-06-30 21:05:35 +00:00
ian%hixie.ch
71c3a67ce8 Initial checkin 2002-06-30 21:02:35 +00:00
ian%hixie.ch
ce4478beee Some versions of the Net::SMTP module handle the timeout by raising a SIG ALRM, so handle this case as well. Also increase the timeout by ten seconds since in the real world, some servers are actually that slow. We might need to make this asynchronous at some point. 2002-05-26 15:08:48 +00:00
ian%hixie.ch
42ac389024 Perl 5.005_03 compatability: the precedence of the not and comma operators changed at some point, so disambiguate this usage. 2002-05-26 15:05:37 +00:00
ian%hixie.ch
78a7589fdc 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. 2002-05-26 15:03:48 +00:00
ian%hixie.ch
8ffd16f0b1 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. 2002-05-26 15:02:33 +00:00