fix bad free
[oweals/gnunet.git] / src / include / gnunet_client_lib.h
1 /*
2      This file is part of GNUnet.
3      Copyright (C) 2001-2013, 2016 GNUnet e.V.
4
5      GNUnet is free software: you can redistribute it and/or modify it
6      under the terms of the GNU Affero General Public License as published
7      by the Free Software Foundation, either version 3 of the License,
8      or (at your option) any later version.
9
10      GNUnet is distributed in the hope that it will be useful, but
11      WITHOUT ANY WARRANTY; without even the implied warranty of
12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13      Affero General Public License for more details.
14     
15      You should have received a copy of the GNU Affero General Public License
16      along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 /**
20  * @author Christian Grothoff
21  *
22  * @file
23  * Functions related to accessing services
24
25  * @defgroup client  Client library
26  * Generic client-side communication with services
27  *
28  * @see [Documentation](https://gnunet.org/ipc)
29  *
30  * @{
31  */
32
33 #ifndef GNUNET_CLIENT_LIB_H
34 #define GNUNET_CLIENT_LIB_H
35
36 #ifdef __cplusplus
37 extern "C"
38 {
39 #if 0                           /* keep Emacsens' auto-indent happy */
40 }
41 #endif
42 #endif
43
44 #include "gnunet_mq_lib.h"
45
46
47 /**
48  * Create a message queue to connect to a GNUnet service.
49  * If handlers are specfied, receive messages from the connection.
50  *
51  * @param connection the client connection
52  * @param handlers handlers for receiving messages, can be NULL
53  * @param error_handler error handler
54  * @param error_handler_cls closure for the @a error_handler
55  * @return the message queue, NULL on error
56  */
57 struct GNUNET_MQ_Handle *
58 GNUNET_CLIENT_connect (const struct GNUNET_CONFIGURATION_Handle *cfg,
59                        const char *service_name,
60                        const struct GNUNET_MQ_MessageHandler *handlers,
61                        GNUNET_MQ_ErrorHandler error_handler,
62                        void *error_handler_cls);
63
64
65 #if 0                           /* keep Emacsens' auto-indent happy */
66 {
67 #endif
68 #ifdef __cplusplus
69 }
70 #endif
71
72 /* ifndef GNUNET_CLIENT_LIB_H */
73 #endif
74
75 /** @} */ /* end of group client */
76
77 /* end of gnunet_client_lib.h */