docs/api.mdwn
author Myhailo Danylenko <isbear@ukrpost.net>
Sun, 19 Aug 2012 15:28:43 +0300
changeset 48 ef69edc792be
child 50 2278dd806ad3
permissions -rw-r--r--
Rearrange docs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
[[!meta title="Lua-loudmouth API reference"]]
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
[[!toc]]
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
<a name="Some.common.principles"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
## Some common principles
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
Most methods can be used in two way:
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
* to get value they are invoked without their last argument. Returned value is either a value or pair of nil and error message.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
* to set value they are invoked with last arg (value) specified. Returned value in most cases is an object, on which operation is performed (to allow chain-initialization).
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
Every object have pointer method to return pointer (lightuserdata) to underlying C loudmouth structure.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
Every module have a bless method to convert given pointer (lightuserdata) to corresponding lua object.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
Every unique C loudmouth object have only one corresponding lua object. Thus, result of "[lm.message.bless](#lm.message.bless) ( message1:pointer () )" will be exactly message1 object (not its copy).
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
Where message handler object is expected, message handler function can be specified. However, you can unregister handler only if you have message handler object.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
<a name="lm.connection"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
## lm.connection
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
Central module, representing connection to the server.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
You should create a new connection object, then open it (establish
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
connection), then authenticate to the server.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
<a name="connection.state"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
### connection state
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
Stirng, representing current [connection state](#connection.state).  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
**Values:**  closed, opening, open, authenticating, authenticated  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    35
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
<a name="handler.priority"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    37
### handler priority
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    38
String, according to which handler will be placed into one
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    39
of three handler groups.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    40
**Values:**  last, normal, first  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    42
<a name="disconnect.reason"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
### disconnect reason
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    44
String, indicating the reason of disconnection occured.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    45
**Values:**  ok, ping time out, hup, error, resource conflict, invalid xml, unknown, ping_time_out, resource_conflict, invalid_xml  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    46
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
<a name="lm.connection.new"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48
### lm.connection.new
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    49
Creates a new connection (closed).  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    50
**Arguments:** string (server name), lightuserdata (C glib main context object, optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    51
**Return values:** [lm connection](#lm.connection) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    52
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    53
<a name="lm.connection.bless"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    54
### lm.connection.bless
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    55
Blesses given pointer to [lm connection](#lm.connection) object.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    56
Note: it adds a reference to connection.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    57
**Arguments:** lightuserdata (C [lm connection](#lm.connection) object)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    58
**Return values:** [lm connection](#lm.connection) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    59
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    60
<a name="connection.callback.function"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    61
### connection callback function
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    62
User function, that will be called on connection establishment operation end,
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    63
eg. successful/unsuccessful opening or authentication.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    64
**Arguments:** [lm connection](#lm.connection) object, boolean (success)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    65
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    66
<a name="connection:open"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    67
### connection:open
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    68
Opens connection to the server and then calls callback function.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    69
**Arguments:** [connection callback function](#connection.callback.function)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    70
**Return values:** [lm connection](#lm.connection) object or nil, string (error message)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    71
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    72
<a name="connection:authenticate"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    73
### connection:authenticate
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    74
Tries to authenticate against opened connection, then calls callback function.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    75
**Arguments:** string (username), string (password), string (resource), [connection callback function](#connection.callback.function)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    76
**Return values:** [lm connection](#lm.connection) object or nil, string (error message)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    77
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    78
<a name="connection:port"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    79
### connection:port
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    80
Gets or sets server port to connect.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    81
**Arguments:** integer (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    82
**Return values:** integer (when called with no args) or [lm connection](#lm.connection) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    83
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    84
<a name="connection:server"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    85
### connection:server
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    86
Gets or sets server to connect to.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    87
**Arguments:** string (optional, server name)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    88
**Return values:** string (when called with no args) or [lm connection](#lm.connection) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    89
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    90
<a name="connection:jid"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    91
### connection:jid
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    92
Gets or sets jid for connection.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    93
**Arguments:** string (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    94
**Return values:** string (when called with no args) or [lm connection](#lm.connection) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    95
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    96
<a name="connection:keep.alive.rate"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    97
### connection:keep_alive_rate
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    98
Gets or sets keep alive packets rate for connection.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    99
Note, that on some platforms there is no get function even in
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   100
loudmouth versions, that should have it according to documentation.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   101
integer (optional, seconds)
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   102
integer (when called with no args) or [lm connection](#lm.connection) object or nil, string (error message, when get function is not available in loudmouth)
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   103
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   104
<a name="connection:proxy"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   105
### connection:proxy
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   106
Gets or sets proxy server for connection.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   107
**Arguments:** [lm proxy](#lm.proxy) object (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   108
**Return values:** [lm proxy](#lm.proxy) object or nil (when called with no args) or [lm connection](#lm.connection) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   109
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   110
<a name="connection:ssl"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   111
### connection:ssl
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   112
Gets or sets ssl object for connection.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   113
**Arguments:** [lm ssl](#lm.ssl) object (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   114
**Return values:** [lm ssl](#lm.ssl) object or nil (when called with no args) or [lm connection](#lm.connection) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   115
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   116
<a name="connection:close"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   117
### connection:close
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   118
Close connection.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   119
**Return values:** [lm connection](#lm.connection) object or nil, string (error message)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   120
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   121
<a name="connection:status"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   122
### connection:status
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   123
Returns string, describing [connection state](#connection.state).  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   124
**Return values:** [connection state](#connection.state)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   125
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   126
<a name="connection:send"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   127
### connection:send
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   128
Sends message. If specified, handler function will be called upon receiving of response to this message.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   129
Handler function can be either a message handler object or just a message handler function.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   130
Message can be raw xml string. However, you cannot use it with handler function.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   131
In short:
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   132
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   133
* connection, errmsg = [connection:send](#connection:send) ( "raw xml" )
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   134
* connection, errmsg = [connection:send](#connection:send) ( message )
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   135
* connection, errmsg = [connection:send](#connection:send) ( message, function ( connection, message ) end )
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   136
* connection, errmsg = [connection:send](#connection:send) ( message, handler )
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   137
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   138
If connection is nil, errmsg contains error message.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   139
**Arguments:** [lm message](#lm.message) object/string, [message handler callback function](#message.handler.callback.function)/[lm message handler](#lm.message.handler) object (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   140
**Return values:** [lm connection](#lm.connection) object or nil, string (error message)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   141
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   142
<a name="connection:handler"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   143
### connection:handler
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   144
Registers or unregisters handler function for a given type of messages.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   145
To unregister handler, omit the priority argument.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   146
To unregister reply handler, omit [message type](#message.type) argument too.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   147
Handler function can be specified as plain function or message handler object.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   148
**Arguments:** [message handler callback function](#message.handler.callback.function) or [lm message handler](#lm.message.handler) object, [message type](#message.type) (optional), [handler priority](#handler.priority) (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   149
**Return values:** [lm connection](#lm.connection) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   150
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   151
<a name="disconnect.callback.function"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   152
### disconnect callback function
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   153
Function, that will be called when disconnection occurs.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   154
**Arguments:** [lm connection](#lm.connection) object, [disconnect reason](#disconnect.reason)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   155
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   156
<a name="connection:ondisconnect"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   157
### connection:ondisconnect
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   158
Sets callback, that will be called on connection disconnect.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   159
**Arguments:** [disconnect callback function](#disconnect.callback.function)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   160
**Return values:** [lm connection](#lm.connection) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   161
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   162
<a name="connection:open.wait"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   163
### connection:open_wait
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   164
Synchronous open call, that will block until connection will be opened.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   165
**Return values:** [lm connection](#lm.connection) object or nil, string (error message)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   166
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   167
<a name="connection:authenticate.wait"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   168
### connection:authenticate_wait
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   169
Synchronous authentication call, that will wait until the end of authentication.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   170
**Arguments:** string (username), string (password), string (resource)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   171
**Return values:** [lm connection](#lm.connection) object or nil, string (error message)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   172
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   173
<a name="connection:send.wait"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   174
### connection:send_wait
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   175
Synchronous call, that will send message and wait for reply to it.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   176
**Arguments:** [lm message](#lm.message) object    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   177
**Return values:** [lm message](#lm.message) object or nil, string (error message)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   178
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   179
<a name="connection:pointer"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   180
### connection:pointer
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   181
Returns pointer to underlying C loudmouth structure.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   182
**Return values:** lightuserdata  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   183
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   184
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   185
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   186
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   187
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   188
<a name="lm.message"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   189
## lm.message
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   190
Module, representing individual message.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   191
Message have a type and optionally a sub type.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   192
Message have a set common methods with message node,
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   193
these are name, next, prev, parent, value, child, children,
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   194
find_child, attribute, raw, xml and path. They just save
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   195
you typing :node() each time and save memory for
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   196
one node object.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   197
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   198
<a name="message.type"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   199
### message type
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   200
Message type (root tag type).  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   201
**Values:**  message, presence, iq, stream, stream error, stream features, auth, challenge, response, success, failure, proceed, starttls, unknown, stream:stream, stream:error, stream:features, stream_error, stream_features  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   202
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   203
<a name="message.sub.type"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   204
### message sub type
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   205
Message subtype, not all combinations of type and subtype are possible.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   206
**Values:**  not set, available, normal, chat, groupchat, headline, unavailable, probe, subscribe, unsubscribe, subscribed, unsubscribed, get, set, result, error, not_set  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   207
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   208
<a name="lm.message.new"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   209
### lm.message.new
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   210
Creates new message object.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   211
Note: you can specify nil as to argument to send message to server.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   212
**Arguments:** string (to), [message type](#message.type), [message sub type](#message.sub.type) (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   213
**Return values:** [lm message](#lm.message) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   214
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   215
<a name="message.table"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   216
### message table
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   217
Table describes xml structure of the message, the only exception is mtype key of root table.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   218
mtype is a string of form "<[message type](#message.type)>-<[message sub type](#message.sub.type)>", eg "iq-set".
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   219
Best way to learn how this table is organized, is just to look at next example:
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   220
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   221
	lm.message.create { mtype = 'iq-result', to = 'foo@bar.xyz',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   222
		command = { xmlns = 'http://jabber.org/protocol/commands', node = 'http://jabber.org/protocol/rc#set-status', status = 'executing', sessionid = 'set-status:aaa3',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   223
			x = { xmlns = 'jabber:x:data', type = 'form',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   224
				title = { "Change Status" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   225
				instructions = { "Choose the status and status message" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   226
				field = {{ type = 'hidden', var = 'FORM_TYPE',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   227
					value = { "http://jabber.org/protocol/rc" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   228
				},{ type = 'list-single', label = 'Status', var = 'status',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   229
					required = { },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   230
					value = { "online" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   231
					option = {{ label = 'Chat',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   232
						value = { "chat" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   233
					},{ label = 'Online',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   234
						value = { "online" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   235
					},{ label = 'Away',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   236
						value = { "away" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   237
					},{ label = 'Extended Away',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   238
						value = { "xa" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   239
					},{ label = 'Do Not Disturb',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   240
						value = { "dnd" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   241
					},{ label = 'Invisible',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   242
						value = { "invisible" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   243
					},{ label = 'Offline',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   244
						value = { "offline" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   245
					}},
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   246
				},{ type = 'text-single', label = 'Priority', var = 'status-priority',
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   247
					value = { "5" },
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   248
				},{ type = 'text-multi', label = 'Message', var = 'status-message' }},
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   249
			},
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   250
		},
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   251
	}
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   252
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   253
 
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   254
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   255
<a name="lm.message.create"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   256
### lm.message.create
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   257
Creates new message object and fills it from [message table](#message.table).
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   258
Note, that table fields are not checked for their types, so, on wrong input results may be undefined.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   259
**Arguments:** [message table](#message.table)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   260
**Return values:** [lm message](#lm.message) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   261
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   262
<a name="lm.message.bless"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   263
### lm.message.bless
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   264
Blesses given pointer to [lm message](#lm.message) object.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   265
**Arguments:** lightuserdata (C [lm message](#lm.message) object)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   266
**Return values:** [lm message](#lm.message) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   267
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   268
<a name="message:node"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   269
### message:node
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   270
Returns root node object of message.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   271
**Return values:** [lm message node](#lm.message.node) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   272
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   273
<a name="message:type"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   274
### message:type
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   275
Returns two strings: [message type](#message.type) and [message sub type](#message.sub.type).  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   276
**Return values:** [message type](#message.type), [message sub type](#message.sub.type)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   277
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   278
<a name="message:pointer"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   279
### message:pointer
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   280
Returns pointer to underlying C loudmouth structure.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   281
**Return values:** lightuserdata  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   282
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   283
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   284
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   285
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   286
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   287
<a name="lm.message.handler"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   288
## lm.message_handler
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   289
Module, representing message handling functions.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   290
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   291
<a name="message.handler.callback.function"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   292
### message handler callback function
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   293
Callback function, used on incoming messages.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   294
Should return true if message has been fully handled and no more
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   295
handlers should be called.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   296
**Arguments:** [lm connection](#lm.connection) object, [lm message](#lm.message) object    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   297
**Return values:** boolean  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   298
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   299
<a name="lm.message.handler.new"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   300
### lm.message_handler.new
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   301
Creates new message handler object.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   302
**Arguments:** [message handler callback function](#message.handler.callback.function)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   303
**Return values:** [lm message handler](#lm.message.handler) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   304
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   305
<a name="lm.message.handler.bless"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   306
### lm.message_handler.bless
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   307
Blesses given pointer to [lm message handler](#lm.message.handler) object.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   308
**Arguments:** lightuserdata (C [lm message handler](#lm.message.handler) object)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   309
**Return values:** [lm message handler](#lm.message.handler) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   310
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   311
<a name="message.handler:invalidate"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   312
### message_handler:invalidate
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   313
Invalidates handler.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   314
**Return values:** [lm message handler](#lm.message.handler) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   315
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   316
<a name="message.handler:valid"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   317
### message_handler:valid
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   318
Returns true if message handler is still valid.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   319
**Return values:** boolean  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   320
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   321
<a name="message.handler:pointer"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   322
### message_handler:pointer
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   323
Returns pointer to underlying C loudmouth structure.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   324
**Return values:** lightuserdata  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   325
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   326
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   327
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   328
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   329
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   330
<a name="lm.message.node"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   331
## lm.message_node
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   332
Object, representing xml node of the message.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   333
Cannot be created directly, only as a part of message tree.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   334
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   335
<a name="lm.message.node.bless"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   336
### lm.message_node.bless
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   337
Blesses given pointer to [lm message node](#lm.message.node) object.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   338
**Arguments:** lightuserdata (C [lm message node](#lm.message.node) object)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   339
**Return values:** [lm message node](#lm.message.node) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   340
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   341
<a name="message.node:name"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   342
### message_node:name
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   343
Gets a name of message node.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   344
**Return values:** string  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   345
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   346
<a name="message.node:next"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   347
### message_node:next
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   348
Gets next message node.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   349
**Return values:** [lm message node](#lm.message.node) object or nil  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   350
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   351
<a name="message.node:prev"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   352
### message_node:prev
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   353
Gets previous message node.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   354
**Return values:** [lm message node](#lm.message.node) object or nil  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   355
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   356
<a name="message.node:parent"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   357
### message_node:parent
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   358
Gets parent message node.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   359
**Return values:** [lm message node](#lm.message.node) object or nil  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   360
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   361
<a name="message.node:value"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   362
### message_node:value
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   363
Gets or sets a value of message node.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   364
**Arguments:** string (optional value)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   365
**Return values:** string (if called without arguments) or [lm message node](#lm.message.node) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   366
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   367
<a name="message.node:child"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   368
### message_node:child
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   369
Gets or creates child node object with given name.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   370
If name is omitted, first child node is returned.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   371
**Arguments:** string (name, optional), string (optional value)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   372
**Return values:** [lm message node](#lm.message.node) object or nil  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   373
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   374
<a name="message.node:children"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   375
### message_node:children
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   376
Returns iterator over child nodes of given node. Optionally filters childs by name.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   377
**Arguments:** string (name, optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   378
**Return values:** iterator function, [lm message node](#lm.message.node) object, nil  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   379
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   380
<a name="message.node:find.child"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   381
### message_node:find_child
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   382
Searches for node with a given name over all node subtree.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   383
**Arguments:** string (name)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   384
**Return values:** [lm message node](#lm.message.node) object or nil  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   385
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   386
<a name="message.node:raw"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   387
### message_node:raw
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   388
Gets or sets raw mode flag for node.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   389
When set, value of node will not be escaped.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   390
**Arguments:** boolean (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   391
**Values:** boolean (if called with no apguments) or [lm message node](#lm.message.node) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   392
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   393
<a name="message.node:attribute"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   394
### message_node:attribute
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   395
Gets or sets value of node attribute with a given name.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   396
**Arguments:** string (name), string (optional value)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   397
**Return values:** string (when called with one aprgument) or [lm message node](#lm.message.node) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   398
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   399
<a name="message.node:xml"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   400
### message_node:xml
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   401
Returns node representation in xml.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   402
**Return values:** string  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   403
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   404
<a name="message.node:path"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   405
### message_node:path
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   406
Returns node with specified path to it.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   407
If any element in a path cannot be found, it returns nil.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   408
**Arguments:** string (node name), ...    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   409
**Return values:** [lm message node](#lm.message.node) object or nil  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   410
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   411
<a name="message.node:pointer"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   412
### message_node:pointer
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   413
Returns pointer to underlying C structure.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   414
**Return values:** lightuserdata  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   415
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   416
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   417
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   418
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   419
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   420
<a name="lm.proxy"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   421
## lm.proxy
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   422
Object, containing information about proxy-server for connection.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   423
Create object, set it's parameters, and then attach to connection
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   424
with 'proxy' method.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   425
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   426
<a name="proxy.type"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   427
### proxy type
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   428
Stirng, specifying proxy-server type. The only type supported for now is http.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   429
**Values:**  http, none  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   430
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   431
<a name="lm.proxy.new"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   432
### lm.proxy.new
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   433
Creates new proxy object.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   434
Note, you should specify either none of args or both.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   435
**Arguments:** [proxy type](#proxy.type), string (optional proxy server name), integer (optional server port)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   436
**Return values:** [lm proxy](#lm.proxy) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   437
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   438
<a name="lm.proxy.bless"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   439
### lm.proxy.bless
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   440
Blesses given pointer to [lm proxy](#lm.proxy) object.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   441
**Arguments:** lightuserdata (C [lm proxy](#lm.proxy) object)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   442
**Return values:** [lm proxy](#lm.proxy) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   443
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   444
<a name="proxy:type"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   445
### proxy:type
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   446
Gets or sets proxy server type.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   447
**Arguments:** [proxy type](#proxy.type) (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   448
**Return values:** [proxy type](#proxy.type) (when called with no args) or [lm proxy](#lm.proxy) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   449
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   450
<a name="proxy:server"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   451
### proxy:server
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   452
Gets or sets proxy server name.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   453
**Arguments:** string (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   454
**Return values:** string (when called with no args) or [lm proxy](#lm.proxy) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   455
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   456
<a name="proxy:port"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   457
### proxy:port
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   458
Gets or sets proxy server port.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   459
**Arguments:** integer (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   460
**Return values:** integer (when called with no args) or [lm proxy](#lm.proxy) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   461
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   462
<a name="proxy:username"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   463
### proxy:username
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   464
Gets or sets username to authenticate to proxy server with.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   465
**Arguments:** string (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   466
**Return values:** string (when called with no args) or [lm proxy](#lm.proxy) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   467
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   468
<a name="proxy:password"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   469
### proxy:password
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   470
Gets or sets password to authenticate to proxy server with.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   471
**Arguments:** string (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   472
**Return values:** string (when called with no args) or [lm proxy](#lm.proxy) object  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   473
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   474
<a name="proxy:pointer"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   475
### proxy:pointer
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   476
Returns pointer to underlying C structure.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   477
**Return values:** lightuserdata  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   478
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   479
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   480
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   481
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   482
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   483
<a name="lm.ssl"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   484
## lm.ssl
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   485
Object, containing information about ssl abilities for connection.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   486
Create, set parameters, and attach to connection with 'ssl' method.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   487
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   488
<a name="ssl.status"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   489
### ssl status
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   490
String, representing what problem have current ssl session.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   491
**Values:**  no cert found, untrusted cert, cert expired, cert not activated, cert hostname mismatch, cert fingerprint mismatch, generic error  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   492
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   493
<a name="ssl.callback.function"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   494
### ssl callback function
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   495
User function, called when ssl error happens.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   496
**Arguments:** userdata ([lm ssl](#lm.ssl) object), [argument enum field](#argument.enum.field) ([ssl status](#ssl.status))    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   497
**Return values:** boolean (false if connection process should be terminated)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   498
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   499
<a name="lm.ssl.new"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   500
### lm.ssl.new
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   501
Creates new ssl object for use with connection.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   502
You can specify server key fingerprint, callback function for error handling,
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   503
both, or neither. Though, fingerprint should go before callback function.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   504
SSL fingerprint is a string like '01:23:45:67:89:AB:CD:EF:FE:DC:BA:98:76:54:32:10'.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   505
**Arguments:** string (optional ssl fingerprint), [ssl callback function](#ssl.callback.function) (optional)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   506
**Return values:** userdata ([lm ssl](#lm.ssl) object)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   507
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   508
<a name="lm.ssl.bless"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   509
### lm.ssl.bless
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   510
Blesses given pointer to [lm ssl](#lm.ssl) object.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   511
**Arguments:** lightuserdata (C [lm ssl](#lm.ssl) object)    
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   512
**Return values:** userdata ([lm ssl](#lm.ssl) object)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   513
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   514
<a name="lm.ssl.supported"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   515
### lm.ssl.supported
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   516
Indicates if SSL is supported by loudmouth library.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   517
**Return values:** boolean  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   518
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   519
<a name="ssl:fingerprint"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   520
### ssl:fingerprint
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   521
Returns fingerprint of remote server.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   522
**Return values:** string or nil  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   523
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   524
<a name="ssl:tls"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   525
### ssl:tls
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   526
Sets or returns use of starttls by this ssl object.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   527
**Arguments:** boolean (use starttls), boolean (require starttls)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   528
or  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   529
**Return values:** boolean (use starttls), boolean (require starttls)  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   530
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   531
<a name="ssl:pointer"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   532
### ssl:pointer
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   533
Returns pointer to underlying C structure.  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   534
**Return values:** lightuserdata  
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   535
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   536
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   537
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   538
- - -
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   539
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   540
<a name="argument.enum.field"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   541
## argument enum field
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   542
String that will be converted to number or just plain number, that will be passed as is.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   543
Note, that if enum name is not recognized no error will be raised and default vale will be used.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   544
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   545
<a name="return.enum.field"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   546
### return enum field
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   547
String. If no string found, plain number will be returned.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   548
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   549
<a name="argument.flags.field"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   550
### argument flags field
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   551
Can be just plain number, then it is passed as is.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   552
Can be a string, then it is recognized as a single enabled flag.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   553
Or can be a table of the following format:
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   554
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   555
* integer keys should have string values, that will be used as enabled flag names or numerical values, that will be just ORed;
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   556
* string keys should be flag names, that will be enabled, if corresponding value contains true value.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   557
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   558
<a name="returned.flags.field"></a>
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   559
### returned flags field
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   560
Is always a table with present flag names as keys with true values.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   561
Not present flags are not present in table either.
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   562
Not recognized values, if present, will be stored as a number in a first sequential table member (table[1]).
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   563
ef69edc792be Rearrange docs
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   564
- - -