~ubuntu-branches/ubuntu/trusty/libprelude/trusty

« back to all changes in this revision

Viewing changes to docs/api/html/libprelude-prelude-client.html

  • Committer: Bazaar Package Importer
  • Author(s): Alessio Treglia
  • Date: 2009-07-13 10:19:39 UTC
  • mfrom: (1.1.14 upstream) (2.3.1 sid)
  • Revision ID: james.westby@ubuntu.com-20090713101939-5qlosl9xkv0jn2a0
Tags: 0.9.24-1ubuntu1
* Merge from debian unstable, Ubuntu remaining changes:
  - debian/control: Replace libltdl3-dev with libltdl7-dev in the
    Build-Depends field.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
<head>
4
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
5
<title>prelude-client</title>
6
 
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
 
6
<meta name="generator" content="DocBook XSL Stylesheets V1.74.3">
7
7
<link rel="home" href="index.html" title="Prelude library Reference Manual">
8
8
<link rel="up" href="pt01.html" title="Part I. Using libprelude to interoperate with prelude-manager">
9
9
<link rel="prev" href="libprelude-prelude.html" title="prelude">
10
10
<link rel="next" href="pt02.html" title="Part II. Sending events with libprelude">
11
 
<meta name="generator" content="GTK-Doc V1.10 (XML mode)">
 
11
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
12
12
<link rel="stylesheet" href="style.css" type="text/css">
13
13
<link rel="part" href="pt01.html" title="Part I. Using libprelude to interoperate with prelude-manager">
14
14
<link rel="part" href="pt02.html" title="Part II. Sending events with libprelude">
28
28
<th width="100%" align="center">Prelude library Reference Manual</th>
29
29
<td><a accesskey="n" href="pt02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
30
30
</tr>
31
 
<tr><td colspan="5" class="shortcuts"><nobr><a href="#libprelude-prelude-client.synopsis" class="shortcut">Top</a>
32
 
                   | 
33
 
                  <a href="#libprelude-prelude-client.description" class="shortcut">Description</a></nobr></td></tr>
 
31
<tr><td colspan="5" class="shortcuts">
 
32
<a href="#libprelude-prelude-client.synopsis" class="shortcut">Top</a>
 
33
                 | 
 
34
                <a href="#libprelude-prelude-client.description" class="shortcut">Description</a>
 
35
</td></tr>
34
36
</table>
35
37
<div class="refentry" lang="en">
36
38
<a name="libprelude-prelude-client"></a><div class="titlepage"></div>
37
39
<div class="refnamediv"><table width="100%"><tr>
38
40
<td valign="top">
39
41
<h2><span class="refentrytitle"><a name="libprelude-prelude-client.top_of_page"></a>prelude-client</span></h2>
40
 
<p>prelude-client — 
41
 
Creating a Prelude Client</p>
 
42
<p>prelude-client — Creating a Prelude Client</p>
42
43
</td>
43
44
<td valign="top" align="right"></td>
44
45
</tr></table></div>
48
49
enum                <a class="link" href="libprelude-prelude-client.html#prelude-client-exit-status-t" title="enum prelude_client_exit_status_t">prelude_client_exit_status_t</a>;
49
50
enum                <a class="link" href="libprelude-prelude-client.html#prelude-client-flags-t" title="enum prelude_client_flags_t">prelude_client_flags_t</a>;
50
51
typedef             <a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a>;
51
 
<a class="link" href="libprelude-prelude-ident.html#prelude-ident-t" title="prelude_ident_t">prelude_ident_t</a>*    <a class="link" href="libprelude-prelude-client.html#prelude-client-get-unique-ident" title="prelude_client_get_unique_ident ()">prelude_client_get_unique_ident</a>     (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
 
52
<a class="link" href="libprelude-prelude-ident.html#prelude-ident-t" title="prelude_ident_t">prelude_ident_t</a> *   <a class="link" href="libprelude-prelude-client.html#prelude-client-get-unique-ident" title="prelude_client_get_unique_ident ()">prelude_client_get_unique_ident</a>     (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
52
53
void                <a class="link" href="libprelude-prelude-client.html#prelude-client-set-connection-pool" title="prelude_client_set_connection_pool ()">prelude_client_set_connection_pool</a>  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client,
53
54
                                                         <a class="link" href="libprelude-prelude-connection-pool.html#prelude-connection-pool-t" title="prelude_connection_pool_t">prelude_connection_pool_t</a> *pool);
54
 
<a class="link" href="libprelude-prelude-connection-pool.html#prelude-connection-pool-t" title="prelude_connection_pool_t">prelude_connection_pool_t</a>* <a class="link" href="libprelude-prelude-client.html#prelude-client-get-connection-pool" title="prelude_client_get_connection_pool ()">prelude_client_get_connection_pool</a>
 
55
<a class="link" href="libprelude-prelude-connection-pool.html#prelude-connection-pool-t" title="prelude_connection_pool_t">prelude_connection_pool_t</a> * <a class="link" href="libprelude-prelude-client.html#prelude-client-get-connection-pool" title="prelude_client_get_connection_pool ()">prelude_client_get_connection_pool</a>
55
56
                                                        (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
56
57
int                 <a class="link" href="libprelude-prelude-client.html#prelude-client-start" title="prelude_client_start ()">prelude_client_start</a>                (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
57
58
int                 <a class="link" href="libprelude-prelude-client.html#prelude-client-init" title="prelude_client_init ()">prelude_client_init</a>                 (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
58
59
int                 <a class="link" href="libprelude-prelude-client.html#prelude-client-new" title="prelude_client_new ()">prelude_client_new</a>                  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> **client,
59
60
                                                         const char *profile);
60
 
<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a>*   <a class="link" href="libprelude-prelude-client.html#prelude-client-ref" title="prelude_client_ref ()">prelude_client_ref</a>                  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
61
 
<a class="link" href="libprelude-idmef-tree-wrap.html#idmef-analyzer-t" title="idmef_analyzer_t">idmef_analyzer_t</a>*   <a class="link" href="libprelude-prelude-client.html#prelude-client-get-analyzer" title="prelude_client_get_analyzer ()">prelude_client_get_analyzer</a>         (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
62
 
<a class="link" href="libprelude-prelude-client.html#prelude-client-flags-t" title="enum prelude_client_flags_t">prelude_client_flags_t</a> <a class="link" href="libprelude-prelude-client.html#prelude-client-get-flags" title="prelude_client_get_flags ()">prelude_client_get_flags</a>         (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
 
61
<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *  <a class="link" href="libprelude-prelude-client.html#prelude-client-ref" title="prelude_client_ref ()">prelude_client_ref</a>                  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
 
62
<a class="link" href="libprelude-idmef-tree-wrap.html#idmef-analyzer-t" title="idmef_analyzer_t">idmef_analyzer_t</a> *  <a class="link" href="libprelude-prelude-client.html#prelude-client-get-analyzer" title="prelude_client_get_analyzer ()">prelude_client_get_analyzer</a>         (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
 
63
<a class="link" href="libprelude-prelude-client.html#prelude-client-flags-t" title="enum prelude_client_flags_t">prelude_client_flags_t</a>  <a class="link" href="libprelude-prelude-client.html#prelude-client-get-flags" title="prelude_client_get_flags ()">prelude_client_get_flags</a>        (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
63
64
void                <a class="link" href="libprelude-prelude-client.html#prelude-client-set-required-permission" title="prelude_client_set_required_permission ()">prelude_client_set_required_permission</a>
64
65
                                                        (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client,
65
66
                                                         <a class="link" href="libprelude-prelude-connection.html#prelude-connection-permission-t" title="enum prelude_connection_permission_t">prelude_connection_permission_t</a> permission);
66
 
<a class="link" href="libprelude-prelude-connection.html#prelude-connection-permission-t" title="enum prelude_connection_permission_t">prelude_connection_permission_t</a> <a class="link" href="libprelude-prelude-client.html#prelude-client-get-required-permission" title="prelude_client_get_required_permission ()">prelude_client_get_required_permission</a>
 
67
<a class="link" href="libprelude-prelude-connection.html#prelude-connection-permission-t" title="enum prelude_connection_permission_t">prelude_connection_permission_t</a>  <a class="link" href="libprelude-prelude-client.html#prelude-client-get-required-permission" title="prelude_client_get_required_permission ()">prelude_client_get_required_permission</a>
67
68
                                                        (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
68
69
void                <a class="link" href="libprelude-prelude-client.html#prelude-client-send-msg" title="prelude_client_send_msg ()">prelude_client_send_msg</a>             (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client,
69
70
                                                         <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t">prelude_msg_t</a> *msg);
83
84
                                                         <a class="link" href="libprelude-prelude-client.html#prelude-client-flags-t" title="enum prelude_client_flags_t">prelude_client_flags_t</a> flags);
84
85
int                 <a class="link" href="libprelude-prelude-client.html#prelude-client-set-config-filename" title="prelude_client_set_config_filename ()">prelude_client_set_config_filename</a>  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client,
85
86
                                                         const char *filename);
86
 
const char*         <a class="link" href="libprelude-prelude-client.html#prelude-client-get-config-filename" title="prelude_client_get_config_filename ()">prelude_client_get_config_filename</a>  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
 
87
const char *        <a class="link" href="libprelude-prelude-client.html#prelude-client-get-config-filename" title="prelude_client_get_config_filename ()">prelude_client_get_config_filename</a>  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
87
88
<a class="link" href="libprelude-prelude-inttypes.html#prelude-bool-t" title="enum prelude_bool_t">prelude_bool_t</a>      <a class="link" href="libprelude-prelude-client.html#prelude-client-is-setup-needed" title="prelude_client_is_setup_needed ()">prelude_client_is_setup_needed</a>      (int error);
88
 
<a class="link" href="libprelude-prelude-client-profile.html#prelude-client-profile-t" title="prelude_client_profile_t">prelude_client_profile_t</a>* <a class="link" href="libprelude-prelude-client.html#prelude-client-get-profile" title="prelude_client_get_profile ()">prelude_client_get_profile</a>    (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
 
89
<a class="link" href="libprelude-prelude-client-profile.html#prelude-client-profile-t" title="prelude_client_profile_t">prelude_client_profile_t</a> * <a class="link" href="libprelude-prelude-client.html#prelude-client-get-profile" title="prelude_client_get_profile ()">prelude_client_get_profile</a>   (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
89
90
int                 <a class="link" href="libprelude-prelude-client.html#prelude-client-new-msgbuf" title="prelude_client_new_msgbuf ()">prelude_client_new_msgbuf</a>           (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client,
90
91
                                                         <a class="link" href="libprelude-prelude-msgbuf.html#prelude-msgbuf-t" title="prelude_msgbuf_t">prelude_msgbuf_t</a> **msgbuf);
91
92
int                 <a class="link" href="libprelude-prelude-client.html#prelude-client-handle-msg-default" title="prelude_client_handle_msg_default ()">prelude_client_handle_msg_default</a>   (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client,
92
93
                                                         <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t">prelude_msg_t</a> *msg,
93
94
                                                         <a class="link" href="libprelude-prelude-msgbuf.html#prelude-msgbuf-t" title="prelude_msgbuf_t">prelude_msgbuf_t</a> *msgbuf);
94
 
const char*         <a class="link" href="libprelude-prelude-client.html#prelude-client-get-setup-error" title="prelude_client_get_setup_error ()">prelude_client_get_setup_error</a>      (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
 
95
const char *        <a class="link" href="libprelude-prelude-client.html#prelude-client-get-setup-error" title="prelude_client_get_setup_error ()">prelude_client_get_setup_error</a>      (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
95
96
void                <a class="link" href="libprelude-prelude-client.html#prelude-client-print-setup-error" title="prelude_client_print_setup_error ()">prelude_client_print_setup_error</a>    (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);
96
97
</pre>
97
98
</div>
99
100
<a name="libprelude-prelude-client.description"></a><h2>Description</h2>
100
101
<p>
101
102
In order to send or to read data from a Prelude collector (prelude-manager),
102
 
you will need to create a <a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t"><span class="type">prelude_client_t</span></a> object. This object will be necessary 
 
103
you will need to create a <a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t"><span class="type">prelude_client_t</span></a> object. This object will be necessary
103
104
for most of the work you are going to do with prelude.
104
105
</p>
105
106
<p>
106
 
 
107
107
</p>
108
108
<pre class="programlisting">
109
109
int ret;
110
110
prelude_client_t *client;
111
 
        
112
111
ret = prelude_client_new(&amp;client, "my-analyzer");
113
112
if ( ! client ) {
114
113
        prelude_perror(ret, "Unable to create a prelude client object");
116
115
}
117
116
</pre>
118
117
<p>
119
 
 
120
118
This will create a new client object, whose default profile is my-analyzer.
121
119
This default profile might be overriden using the --prelude --profile profile_name option on your
122
120
command line as parsed by <a class="link" href="libprelude-prelude.html#prelude-init" title="prelude_init ()"><code class="function">prelude_init()</code></a>.
128
126
</p>
129
127
<p>
130
128
The default required permission for the created client are set to PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE
131
 
and PRELUDE_CONNECTION_PERMISSION_ADMIN_READ, which mean the client will reject any certificate where 
132
 
permission are set to anything less than this. You can change the default required permission using the 
 
129
and PRELUDE_CONNECTION_PERMISSION_ADMIN_READ, which mean the client will reject any certificate where
 
130
permission are set to anything less than this. You can change the default required permission using the
133
131
<a class="link" href="libprelude-prelude-client.html#prelude-client-set-required-permission" title="prelude_client_set_required_permission ()"><code class="function">prelude_client_set_required_permission()</code></a> function.
134
132
</p>
135
133
<p>
136
134
As an example, if you want to create a client that will read alert from a Manager, and accept administrative
137
135
option request you should use:
138
 
 
139
136
</p>
140
137
<pre class="programlisting">
141
138
prelude_client_set_required_permission(client, PRELUDE_CONNECTION_PERMISSION_IDMEF_READ|PRELUDE_CONNECTION_PERMISSION_ADMIN_WRITE);
143
140
<p>
144
141
</p>
145
142
<p>
146
 
Once the client is created and you have everything setup, you will need to start your client. 
147
 
The <a class="link" href="libprelude-prelude-client.html#prelude-client-start" title="prelude_client_start ()"><code class="function">prelude_client_start()</code></a> function is responsible for this, and will trigger the connection to 
 
143
Once the client is created and you have everything setup, you will need to start your client.
 
144
The <a class="link" href="libprelude-prelude-client.html#prelude-client-start" title="prelude_client_start ()"><code class="function">prelude_client_start()</code></a> function is responsible for this, and will trigger the connection to
148
145
the configured manager, and send the initial client heartbeat.
149
146
</p>
150
147
<pre class="programlisting">
155
152
}
156
153
</pre>
157
154
<p>
158
 
Additionally, it is possible to set additional client flags, however, you should be careful 
159
 
since some of theses flags (marked asynchronous) will result in creating an internal thread, 
160
 
which should only be done after an eventual fork of the program since threads are not copied 
 
155
Additionally, it is possible to set additional client flags, however, you should be careful
 
156
since some of theses flags (marked asynchronous) will result in creating an internal thread,
 
157
which should only be done after an eventual fork of the program since threads are not copied
161
158
accross a fork call.
162
159
</p>
163
160
<p>
164
 
The prelude library will also register an internal timer in order to send heartbeat message at 
165
 
the defined interval. Timer registered by the library itself or by the program will either be called 
166
 
automatically if the <span class="type">PRELUDE_CLIENT_FLAGS_ASYNC_TIMER</span> flags is set, otherwise, the program is responsible 
167
 
for calling the <a class="link" href="libprelude-prelude-timer.html#prelude-timer-wake-up" title="prelude_timer_wake_up ()"><code class="function">prelude_timer_wake_up()</code></a> function every second from it's main loop, in order to check the 
 
161
The prelude library will also register an internal timer in order to send heartbeat message at
 
162
the defined interval. Timer registered by the library itself or by the program will either be called
 
163
automatically if the <span class="type">PRELUDE_CLIENT_FLAGS_ASYNC_TIMER</span> flags is set, otherwise, the program is responsible
 
164
for calling the <a class="link" href="libprelude-prelude-timer.html#prelude-timer-wake-up" title="prelude_timer_wake_up ()"><code class="function">prelude_timer_wake_up()</code></a> function every second from it's main loop, in order to check the
168
165
registered timer.
169
 
 
170
166
</p>
171
167
<div class="itemizedlist"><ul type="disc">
172
168
<li>
180
176
<li>See <a class="link" href="libprelude-prelude-client.html#prelude-client-flags-t" title="enum prelude_client_flags_t"><span class="type">prelude_client_flags_t</span></a> for a list of available flags.</li>
181
177
</ul></div>
182
178
<p>
183
 
 
184
179
</p>
185
180
<pre class="programlisting">
186
181
ret = prelude_client_set_flags(client, PRELUDE_CLIENT_FLAGS_ASYNC_SEND|PRELUDE_CLIENT_FLAGS_ASYNC_TIMER);
190
185
}
191
186
</pre>
192
187
<p>
193
 
 
194
188
</p>
195
189
<p>
196
190
For documentation on how to create IDMEF message, please see <a class="link" href="libprelude-idmef-tree-wrap.html#idmef-message-t" title="idmef_message_t"><span class="type">idmef_message_t</span></a>
198
192
</p>
199
193
<p>
200
194
Once you created and IDMEF message, you should use the <a class="link" href="libprelude-prelude-client.html#prelude-client-send-idmef" title="prelude_client_send_idmef ()"><code class="function">prelude_client_send_idmef()</code></a> function
201
 
in order to send it to the collector you are connected to. 
202
 
 
 
195
in order to send it to the collector you are connected to.
203
196
</p>
204
197
<div class="informalexample"><pre class="programlisting">
205
198
prelude_client_send_idmef(client, idmef);
207
200
<p>
208
201
</p>
209
202
<p>
210
 
In case the analyzer you are developing is not a persistant analyzer (meaning an 
211
 
analyzer that is not supposed to exit), it is important that you call the <a class="link" href="libprelude-prelude-client.html#prelude-client-destroy" title="prelude_client_destroy ()"><code class="function">prelude_client_destroy()</code></a> 
212
 
function prior to exiting. This function have the side effect of sending an heartbeat to the remote 
 
203
In case the analyzer you are developing is not a persistant analyzer (meaning an
 
204
analyzer that is not supposed to exit), it is important that you call the <a class="link" href="libprelude-prelude-client.html#prelude-client-destroy" title="prelude_client_destroy ()"><code class="function">prelude_client_destroy()</code></a>
 
205
function prior to exiting. This function have the side effect of sending an heartbeat to the remote
213
206
manager, as well as an information regarding the analyzer state.
214
207
</p>
215
208
<p>
216
 
This state information is important since an analyzer not reporting a successful exit status, 
 
209
This state information is important since an analyzer not reporting a successful exit status,
217
210
or an analyzer which stop sending heartbeat at all will be reported as having a problem.
218
 
 
219
211
</p>
220
212
<div class="itemizedlist"><ul type="disc">
221
213
<li>PRELUDE_CLIENT_STATUS_EXIT_SUCCESS - Exiting the sensor is the expected behavior.</li>
222
214
<li>PRELUDE_CLIENT_STATUS_EXIT_FAILED - There is something wrong going on, notice the security analyst.</li>
223
215
</ul></div>
224
 
<p> 
225
 
 
 
216
<p>
226
217
</p>
227
218
<div class="informalexample"><pre class="programlisting">
228
219
prelude_client_destroy(client, PRELUDE_CLIENT_STATUS_EXIT_SUCCESS);
229
220
</pre></div>
230
221
<p>
231
 
 
232
 
As a side note, please remember that a persistant sensor should never use this function 
233
 
(except maybe if it is working in batch mode), unless it want to report the 
234
 
PRELUDE_CLIENT_STATUS_EXIT_FAILED exit status. This is also the case if your persistant sensor 
235
 
is interrupted by a signal. 
 
222
As a side note, please remember that a persistant sensor should never use this function
 
223
(except maybe if it is working in batch mode), unless it want to report the
 
224
PRELUDE_CLIENT_STATUS_EXIT_FAILED exit status. This is also the case if your persistant sensor
 
225
is interrupted by a signal.
236
226
</p>
237
227
</div>
238
228
<div class="refsect1" lang="en">
245
235
} prelude_client_exit_status_t;
246
236
</pre>
247
237
<p>
248
 
 
249
238
</p>
250
239
</div>
251
240
<hr>
260
249
} prelude_client_flags_t;
261
250
</pre>
262
251
<p>
263
 
 
264
252
</p>
265
253
</div>
266
254
<hr>
269
257
<pre class="programlisting">typedef struct prelude_client prelude_client_t;
270
258
</pre>
271
259
<p>
272
 
 
273
260
</p>
274
261
</div>
275
262
<hr>
276
263
<div class="refsect2" lang="en">
277
264
<a name="prelude-client-get-unique-ident"></a><h3>prelude_client_get_unique_ident ()</h3>
278
 
<pre class="programlisting"><a class="link" href="libprelude-prelude-ident.html#prelude-ident-t" title="prelude_ident_t">prelude_ident_t</a>*    prelude_client_get_unique_ident     (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
 
265
<pre class="programlisting"><a class="link" href="libprelude-prelude-ident.html#prelude-ident-t" title="prelude_ident_t">prelude_ident_t</a> *   prelude_client_get_unique_ident     (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
279
266
<p>
280
 
 
281
267
</p>
282
268
<div class="variablelist"><table border="0">
283
269
<col align="left" valign="top">
290
276
<tr>
291
277
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
292
278
<td>
293
 
 
294
 
 
295
279
</td>
296
280
</tr>
297
281
</tbody>
307
291
should send message too. This might be usefull in case you don't want
308
292
this to be automated by <a class="link" href="libprelude-prelude-client.html#prelude-client-init" title="prelude_client_init ()"><code class="function">prelude_client_init()</code></a>.</p>
309
293
<p>
310
 
 
311
294
</p>
312
295
<div class="variablelist"><table border="0">
313
296
<col align="left" valign="top">
328
311
<hr>
329
312
<div class="refsect2" lang="en">
330
313
<a name="prelude-client-get-connection-pool"></a><h3>prelude_client_get_connection_pool ()</h3>
331
 
<pre class="programlisting"><a class="link" href="libprelude-prelude-connection-pool.html#prelude-connection-pool-t" title="prelude_connection_pool_t">prelude_connection_pool_t</a>* prelude_client_get_connection_pool
 
314
<pre class="programlisting"><a class="link" href="libprelude-prelude-connection-pool.html#prelude-connection-pool-t" title="prelude_connection_pool_t">prelude_connection_pool_t</a> * prelude_client_get_connection_pool
332
315
                                                        (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
333
316
<p>
334
317
Return a pointer to the <a class="link" href="libprelude-prelude-connection-pool.html#prelude-connection-pool-t" title="prelude_connection_pool_t"><span class="type">prelude_connection_pool_t</span></a> object used by <em class="parameter"><code>client</code></em>
335
318
to send messages.</p>
336
319
<p>
337
 
 
338
320
</p>
339
321
<div class="variablelist"><table border="0">
340
322
<col align="left" valign="top">
366
348
will be called and thus this function might fail if the
367
349
client was not registered.</p>
368
350
<p>
369
 
 
370
351
</p>
371
352
<div class="variablelist"><table border="0">
372
353
<col align="left" valign="top">
400
381
<p>
401
382
<a class="link" href="libprelude-prelude-client.html#prelude-client-start" title="prelude_client_start ()"><code class="function">prelude_client_start()</code></a> will call <a class="link" href="libprelude-prelude-client.html#prelude-client-init" title="prelude_client_init ()"><code class="function">prelude_client_init()</code></a> for you if needed.</p>
402
383
<p>
403
 
 
404
384
</p>
405
385
<div class="variablelist"><table border="0">
406
386
<col align="left" valign="top">
426
406
<p>
427
407
This function initialize the <em class="parameter"><code>client</code></em> object.</p>
428
408
<p>
429
 
 
430
409
</p>
431
410
<div class="variablelist"><table border="0">
432
411
<col align="left" valign="top">
452
431
<hr>
453
432
<div class="refsect2" lang="en">
454
433
<a name="prelude-client-ref"></a><h3>prelude_client_ref ()</h3>
455
 
<pre class="programlisting"><a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a>*   prelude_client_ref                  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
 
434
<pre class="programlisting"><a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *  prelude_client_ref                  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
456
435
<p>
457
 
 
458
436
</p>
459
437
<div class="variablelist"><table border="0">
460
438
<col align="left" valign="top">
467
445
<tr>
468
446
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
469
447
<td>
470
 
 
471
 
 
472
448
</td>
473
449
</tr>
474
450
</tbody>
477
453
<hr>
478
454
<div class="refsect2" lang="en">
479
455
<a name="prelude-client-get-analyzer"></a><h3>prelude_client_get_analyzer ()</h3>
480
 
<pre class="programlisting"><a class="link" href="libprelude-idmef-tree-wrap.html#idmef-analyzer-t" title="idmef_analyzer_t">idmef_analyzer_t</a>*   prelude_client_get_analyzer         (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
 
456
<pre class="programlisting"><a class="link" href="libprelude-idmef-tree-wrap.html#idmef-analyzer-t" title="idmef_analyzer_t">idmef_analyzer_t</a> *  prelude_client_get_analyzer         (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
481
457
<p>
482
458
Provide access to the <a class="link" href="libprelude-idmef-tree-wrap.html#idmef-analyzer-t" title="idmef_analyzer_t"><span class="type">idmef_analyzer_t</span></a> object associated to <em class="parameter"><code>client</code></em>.
483
459
This analyzer object is sent along with every alerts and heartbeats emited
484
460
by this client. The analyzer object is created by <a class="link" href="libprelude-prelude-client.html#prelude-client-init" title="prelude_client_init ()"><code class="function">prelude_client_init()</code></a>.</p>
485
461
<p>
486
 
 
487
462
</p>
488
463
<div class="variablelist"><table border="0">
489
464
<col align="left" valign="top">
504
479
<hr>
505
480
<div class="refsect2" lang="en">
506
481
<a name="prelude-client-get-flags"></a><h3>prelude_client_get_flags ()</h3>
507
 
<pre class="programlisting"><a class="link" href="libprelude-prelude-client.html#prelude-client-flags-t" title="enum prelude_client_flags_t">prelude_client_flags_t</a> prelude_client_get_flags         (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
 
482
<pre class="programlisting"><a class="link" href="libprelude-prelude-client.html#prelude-client-flags-t" title="enum prelude_client_flags_t">prelude_client_flags_t</a>  prelude_client_get_flags        (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
508
483
<p>
509
484
Get flags set through <a class="link" href="libprelude-prelude-client.html#prelude-client-set-flags" title="prelude_client_set_flags ()"><code class="function">prelude_client_set_flags()</code></a>.</p>
510
485
<p>
511
 
 
512
486
</p>
513
487
<div class="variablelist"><table border="0">
514
488
<col align="left" valign="top">
541
515
If the client certificate for connecting to one of the specified manager doesn't have theses permission
542
516
the client will reject the certificate and ask for registration.</p>
543
517
<p>
544
 
 
545
518
</p>
546
519
<div class="variablelist"><table border="0">
547
520
<col align="left" valign="top">
562
535
<hr>
563
536
<div class="refsect2" lang="en">
564
537
<a name="prelude-client-get-required-permission"></a><h3>prelude_client_get_required_permission ()</h3>
565
 
<pre class="programlisting"><a class="link" href="libprelude-prelude-connection.html#prelude-connection-permission-t" title="enum prelude_connection_permission_t">prelude_connection_permission_t</a> prelude_client_get_required_permission
 
538
<pre class="programlisting"><a class="link" href="libprelude-prelude-connection.html#prelude-connection-permission-t" title="enum prelude_connection_permission_t">prelude_connection_permission_t</a>  prelude_client_get_required_permission
566
539
                                                        (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
567
540
<p>
568
541
</p>
569
542
<p>
570
 
 
571
543
</p>
572
544
<div class="variablelist"><table border="0">
573
545
<col align="left" valign="top">
598
570
was set using <a class="link" href="libprelude-prelude-client.html#prelude-client-set-flags" title="prelude_client_set_flags ()"><code class="function">prelude_client_set_flags()</code></a> in which case the caller should
599
571
not call <a class="link" href="libprelude-prelude-msg.html#prelude-msg-destroy" title="prelude_msg_destroy ()"><code class="function">prelude_msg_destroy()</code></a> on <em class="parameter"><code>msg</code></em>.</p>
600
572
<p>
601
 
 
602
573
</p>
603
574
<div class="variablelist"><table border="0">
604
575
<col align="left" valign="top">
630
601
a message is received. A <em class="parameter"><code>timeout</code></em> of 0 mean that it will return
631
602
immediatly.</p>
632
603
<p>
633
 
 
634
604
</p>
635
605
<div class="variablelist"><table border="0">
636
606
<col align="left" valign="top">
667
637
Use if you want to override the default function used to
668
638
automatically send heartbeat to <em class="parameter"><code>client</code></em> peers.</p>
669
639
<p>
670
 
 
671
640
</p>
672
641
<div class="variablelist"><table border="0">
673
642
<col align="left" valign="top">
697
666
The message will be sent asynchronously if <em class="parameter"><code>PRELUDE_CLIENT_FLAGS_ASYNC_SEND</code></em>
698
667
was set using <a class="link" href="libprelude-prelude-client.html#prelude-client-set-flags" title="prelude_client_set_flags ()"><code class="function">prelude_client_set_flags()</code></a>.</p>
699
668
<p>
700
 
 
701
669
</p>
702
670
<div class="variablelist"><table border="0">
703
671
<col align="left" valign="top">
729
697
a message is received. A <em class="parameter"><code>timeout</code></em> of 0 mean that it will return
730
698
immediatly.</p>
731
699
<p>
732
 
 
733
700
</p>
734
701
<div class="variablelist"><table border="0">
735
702
<col align="left" valign="top">
775
742
Please note that your are not supposed to run this function
776
743
from a signal handler.</p>
777
744
<p>
778
 
 
779
745
</p>
780
746
<div class="variablelist"><table border="0">
781
747
<col align="left" valign="top">
809
775
<a class="link" href="libprelude-prelude-client.html#prelude-client-set-flags" title="prelude_client_set_flags ()"><code class="function">prelude_client_set_flags()</code></a> in the same process you want to use the
810
776
asynchronous API from. Threads aren't copied accross <code class="function">fork()</code>.</p>
811
777
<p>
812
 
 
813
778
</p>
814
779
<div class="variablelist"><table border="0">
815
780
<col align="left" valign="top">
843
808
configuration file to use for <em class="parameter"><code>client</code></em>. The format of the configuration file need
844
809
to be compatible with the Prelude format.</p>
845
810
<p>
846
 
 
847
811
</p>
848
812
<div class="variablelist"><table border="0">
849
813
<col align="left" valign="top">
869
833
<hr>
870
834
<div class="refsect2" lang="en">
871
835
<a name="prelude-client-get-config-filename"></a><h3>prelude_client_get_config_filename ()</h3>
872
 
<pre class="programlisting">const char*         prelude_client_get_config_filename  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
 
836
<pre class="programlisting">const char *        prelude_client_get_config_filename  (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
873
837
<p>
874
838
Return the filename where <em class="parameter"><code>client</code></em> configuration is stored.
875
839
This filename is originally set by the <a class="link" href="libprelude-prelude-client.html#prelude-client-new" title="prelude_client_new ()"><code class="function">prelude_client_new()</code></a> function.</p>
876
840
<p>
877
 
 
878
841
</p>
879
842
<div class="variablelist"><table border="0">
880
843
<col align="left" valign="top">
905
868
the <a class="link" href="libprelude-prelude-client.html#prelude-client-start" title="prelude_client_start ()"><code class="function">prelude_client_start()</code></a> function, to know if the analyzer
906
869
need to be registered.</p>
907
870
<p>
908
 
 
909
871
</p>
910
872
<div class="variablelist"><table border="0">
911
873
<col align="left" valign="top">
926
888
<hr>
927
889
<div class="refsect2" lang="en">
928
890
<a name="prelude-client-get-profile"></a><h3>prelude_client_get_profile ()</h3>
929
 
<pre class="programlisting"><a class="link" href="libprelude-prelude-client-profile.html#prelude-client-profile-t" title="prelude_client_profile_t">prelude_client_profile_t</a>* prelude_client_get_profile    (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
 
891
<pre class="programlisting"><a class="link" href="libprelude-prelude-client-profile.html#prelude-client-profile-t" title="prelude_client_profile_t">prelude_client_profile_t</a> * prelude_client_get_profile   (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
930
892
<p>
931
 
 
932
893
</p>
933
894
<div class="variablelist"><table border="0">
934
895
<col align="left" valign="top">
941
902
<tr>
942
903
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
943
904
<td>
944
 
 
945
 
 
946
905
</td>
947
906
</tr>
948
907
</tbody>
954
913
<pre class="programlisting">int                 prelude_client_new_msgbuf           (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client,
955
914
                                                         <a class="link" href="libprelude-prelude-msgbuf.html#prelude-msgbuf-t" title="prelude_msgbuf_t">prelude_msgbuf_t</a> **msgbuf);</pre>
956
915
<p>
957
 
 
958
916
</p>
959
917
<div class="variablelist"><table border="0">
960
918
<col align="left" valign="top">
972
930
<tr>
973
931
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
974
932
<td>
975
 
 
976
 
 
977
933
</td>
978
934
</tr>
979
935
</tbody>
986
942
                                                         <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t">prelude_msg_t</a> *msg,
987
943
                                                         <a class="link" href="libprelude-prelude-msgbuf.html#prelude-msgbuf-t" title="prelude_msgbuf_t">prelude_msgbuf_t</a> *msgbuf);</pre>
988
944
<p>
989
 
 
990
945
</p>
991
946
<div class="variablelist"><table border="0">
992
947
<col align="left" valign="top">
1009
964
<tr>
1010
965
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1011
966
<td>
1012
 
 
1013
 
 
1014
967
</td>
1015
968
</tr>
1016
969
</tbody>
1019
972
<hr>
1020
973
<div class="refsect2" lang="en">
1021
974
<a name="prelude-client-get-setup-error"></a><h3>prelude_client_get_setup_error ()</h3>
1022
 
<pre class="programlisting">const char*         prelude_client_get_setup_error      (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
 
975
<pre class="programlisting">const char *        prelude_client_get_setup_error      (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
 
976
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
 
977
<h3 class="title">Warning</h3>
 
978
<p><code class="literal">prelude_client_get_setup_error</code> is deprecated and should not be used in newly-written code.</p>
 
979
</div>
1023
980
<p>
1024
 
 
1025
981
</p>
1026
982
<div class="variablelist"><table border="0">
1027
983
<col align="left" valign="top">
1034
990
<tr>
1035
991
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1036
992
<td>
1037
 
 
1038
 
 
1039
993
</td>
1040
994
</tr>
1041
995
</tbody>
1046
1000
<a name="prelude-client-print-setup-error"></a><h3>prelude_client_print_setup_error ()</h3>
1047
1001
<pre class="programlisting">void                prelude_client_print_setup_error    (<a class="link" href="libprelude-prelude-client.html#prelude-client-t" title="prelude_client_t">prelude_client_t</a> *client);</pre>
1048
1002
<p>
1049
 
 
1050
1003
</p>
1051
1004
<div class="variablelist"><table border="0">
1052
1005
<col align="left" valign="top">
1053
1006
<tbody><tr>
1054
1007
<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
1055
1008
<td>
1056
 
 
1057
 
 
1058
1009
</td>
1059
1010
</tr></tbody>
1060
1011
</table></div>
1063
1014
<div class="refsect1" lang="en">
1064
1015
<a name="libprelude-prelude-client.see-also"></a><h2>See Also</h2>
1065
1016
<p>
1066
 
 
1067
1017
<a class="link" href="libprelude-idmef-tree-wrap.html#idmef-message-t" title="idmef_message_t"><span class="type">idmef_message_t</span></a>
1068
1018
<a class="link" href="libprelude-idmef-path.html#idmef-path-t" title="idmef_path_t"><span class="type">idmef_path_t</span></a>
1069
 
 
1070
1019
</p>
1071
1020
</div>
1072
1021
</div>
1073
1022
<div class="footer">
1074
1023
<hr>
1075
 
          Generated by GTK-Doc V1.10</div>
 
1024
          Generated by GTK-Doc V1.11</div>
1076
1025
</body>
1077
1026
</html>