1 _info?> body<= request mode. p?> {'name'} eq $v } @vars) { my $mode = $v->{'name'}; $ret .= "

$mode
\n\n"; $ret .= "\n"; $ret .= "\n"; $ret .= "\n"; unshift (@{$v->{'props'}->{'request'}}, { 'name' => "mode", 'props' => { 'des' => "The protocol request mode: $mode", } }, { 'name' => "user", 'props' => { 'des' => "Username. Leading and trailing whitespace is ignored, as is case.", } }, { 'name' => "password", 'props' => { 'des' => "Password in plain-text. Either this needs to be sent, or hpassword.", } }, { 'name' => "hpassword", 'props' => { 'des' => "Alternative to plain-text password. Password as an MD5 hex digest. Not perfectly secure, but defeats the most simple of network sniffers.", } }, { 'name' => "ver", 'props' => { 'des' => "Protocol version supported by the client; assumed to be 0 if not specified. See this document for details on the protocol version.", 'optional' => 1, } }, ); unshift (@{$v->{'props'}->{'response'}}, { 'name' => "success", 'props' => { 'des' => "OK on success or FAIL when there's an error. When there's an error, see errmsg for the error text. The absence of this variable should also be considered an error.", } }, { 'name' => "errmsg", 'props' => { 'des' => "The error message if success was FAIL, not present if OK. If the success variable isn't present, this variable most likely won't be either (in the case of a server error), and clients should just report \"Server Error, try again later.\".", } }, ); foreach my $rr (qw(request response)) { $ret .= "\n"; foreach (@{$v->{'props'}->{$rr}}) { my $des = $_->{'props'}->{'des'}; $des =~ s!\[special\[logprops\]\]!logprops!; $ret .= ""; $ret .= ""; $ret .= "\n"; } } $ret .= "
Description
$v->{'props'}->{'des'}
" . ucfirst($rr) . "
$_->{'name'}"; if ($_->{'props'}->{'optional'}) { $ret .= "(Optional) "; } $ret .= $des; $ret .= "
\n"; } return $ret; _code?> Back to Protocol Modes.
Back to Protocol Documentation.
Back to Developer Area. <=body page?>