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>
31
<tr><td colspan="5" class="shortcuts"><nobr><a href="#libprelude-prelude-client.synopsis" class="shortcut">Top</a>
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>
34
<a href="#libprelude-prelude-client.description" class="shortcut">Description</a>
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>
39
41
<h2><span class="refentrytitle"><a name="libprelude-prelude-client.top_of_page"></a>prelude-client</span></h2>
41
Creating a Prelude Client</p>
42
<p>prelude-client — Creating a Prelude Client</p>
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);
99
100
<a name="libprelude-prelude-client.description"></a><h2>Description</h2>
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.
108
108
<pre class="programlisting">
110
110
prelude_client_t *client;
112
111
ret = prelude_client_new(&client, "my-analyzer");
113
112
if ( ! client ) {
114
113
prelude_perror(ret, "Unable to create a prelude client object");
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.
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:
140
137
<pre class="programlisting">
141
138
prelude_client_set_required_permission(client, PRELUDE_CONNECTION_PERMISSION_IDMEF_READ|PRELUDE_CONNECTION_PERMISSION_ADMIN_WRITE);
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.
150
147
<pre class="programlisting">
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.
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.
171
167
<div class="itemizedlist"><ul type="disc">
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.
195
in order to send it to the collector you are connected to.
204
197
<div class="informalexample"><pre class="programlisting">
205
198
prelude_client_send_idmef(client, idmef);
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.
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.
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>
227
218
<div class="informalexample"><pre class="programlisting">
228
219
prelude_client_destroy(client, PRELUDE_CLIENT_STATUS_EXIT_SUCCESS);
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.
238
228
<div class="refsect1" lang="en">
269
257
<pre class="programlisting">typedef struct prelude_client prelude_client_t;
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>
282
268
<div class="variablelist"><table border="0">
283
269
<col align="left" valign="top">
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>
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>
339
321
<div class="variablelist"><table border="0">
340
322
<col align="left" valign="top">
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>
459
437
<div class="variablelist"><table border="0">
460
438
<col align="left" valign="top">
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>
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>
488
463
<div class="variablelist"><table border="0">
489
464
<col align="left" valign="top">
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>
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>
513
487
<div class="variablelist"><table border="0">
514
488
<col align="left" valign="top">
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>
572
544
<div class="variablelist"><table border="0">
573
545
<col align="left" valign="top">
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>
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>
879
842
<div class="variablelist"><table border="0">
880
843
<col align="left" valign="top">
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>
933
894
<div class="variablelist"><table border="0">
934
895
<col align="left" valign="top">
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>
1026
982
<div class="variablelist"><table border="0">
1027
983
<col align="left" valign="top">