View/Edit #80:serve_page

Switch to edit mode.

Name(s): serve_page
1:  "This verb is called when the web server wants to serve a page."
2:  {object, dobjstr, iobjstr} = args
3:  caller:isa($webber) && caller == player || raise(E_PERM)
4:  if (x = index(dobjstr, "?"))
5:    prepstr = dobjstr[1..x - 1]
6:    dobjstr = dobjstr[x..$]
7:    dobj = $www:parse_CGI(dobjstr)
8:    if (!dobj && dobjstr != "?")
9:      "A form with a single element called 'isindex' is special."
10:     dobj = $www:parse_CGI("?isindex=" + dobjstr[2..$])
11:   endif
12: else
13:   prepstr = dobjstr
14:   dobjstr = ""
15:   dobj = {}
16: endif
17: prepstr = this:decode_cgi_bin(prepstr)
18: if (`player.content_type[1..9] ! E_RANGE' == "multipart")
19:   {iobj, multipart_types} = $www:parse_multipart(iobjstr, player.multipart_boundary)
20:   player.multipart_types = multipart_types
21: else
22:   iobj = $www:parse_CGI(iobjstr)
23: endif
24: for x in (this.spies)
25:   x:tell(player:title(), " now being served.")
26: endfor
27: if (!valid(object) || !$recycler:valid(object))
28:   object = $www.error
29:   dobjstr = iobjstr = prepstr = ""
30:   dobj = iobj = {}
31: endif
32: if (prepstr && prepstr[1] in {".", ":", "!", ",", ";", "%"} || (length(prepstr) > 2 && prepstr[1..3] in {"%3A", "%21", "%2C", "%3B"}))
33:   "Show Examine page instead."
34:   $www.exam:tell_www_page(object)
35: elseif (!object:has_callable_verb("tell_www_page"))
36:   "#1 and $garbage are special, they don't have web verbs"
37:   prepstr = ".:!"
38:   dobjstr = iobjstr = ""
39:   dobj = iobj = {}
40:   $www.exam:tell_www_page(object)
41: else
42:   object:tell_www_page()
43: endif
44: if (!object:isa($fastweb) || iobjstr || prepstr)
45:   "Don't bother logging FastWeb transactions."
46:   `$stats:log_www() ! ANY => this.owner:tell("$stats:log_www is blowing up!")'
47:   $www.total_hits = $www.total_hits + 1
48:   `object.www_counter = object.www_counter + 1 ! E_PROPNF'
49:   $wiz_utils:autoextend(object)
50: endif
51: "Last modified by Dax (#789) on Fri Dec 16 03:21:03 2005 MST."

Verb arguments: this none this
Verb perms: Readable eXecutable NOT-Debug
Verb owned by: Dax (#789)

You are not logged in.

[home | help | who | search | setup | code]