Annotation of parser3/src/types/pa_vrequest.C, revision 1.14
1.2 paf 1: /** @file
1.5 paf 2: Parser: @b request class.
1.2 paf 3:
1.1 paf 4: Copyright(c) 2001 ArtLebedev Group(http://www.artlebedev.com)
1.11 paf 5: Author: Alexander Petrosyan <paf@design.ru>(http://paf.design.ru)
1.2 paf 6:
1.14 ! paf 7: $Id: pa_vrequest.C,v 1.13 2001/12/15 21:28:22 paf Exp $
1.1 paf 8: */
9:
10: #include "pa_vrequest.h"
11: #include "pa_request.h"
1.13 paf 12: #include "pa_charsets.h"
13: #include "pa_charset.h"
1.1 paf 14:
1.7 parser 15: // request: CLASS,method,field
1.12 paf 16: Value *VRequest::get_element(const String& name) {
17: // $charset
18: if(name==CHARSET_NAME)
1.13 paf 19: return NEW VString(pool().get_source_charset().name());
1.12 paf 20: else {
21: // $query $uri
22: const char *cstr=0;
23: if(name=="query")
24: cstr=frequest.info.query_string;
25: else if(name=="uri")
26: cstr=frequest.info.uri;
27:
28: String& string=*NEW String(pool());
29: string.APPEND_TAINTED(cstr?cstr:"", 0, "request", 0);
30: return NEW VString(string);
31: }
1.1 paf 32: }
33:
1.12 paf 34: void VRequest::put_element(const String& name, Value *value) {
35: // guard charset change
1.14 ! paf 36: if(name==CHARSET_NAME)
! 37: pool().set_source_charset(charsets->get_charset(value->as_string()));
! 38: else
1.12 paf 39: Value::put_element(name, value);
40: }
E-mail: