r26194: Wrap the events subsystem in a separate file.
[samba.git] / source4 / libcli / swig / libcli_nbt.i
1 /* 
2    Unix SMB/CIFS implementation.
3
4    Swig interface to libcli_nbt library.
5
6    Copyright (C) 2006 Tim Potter <tpot@samba.org>
7
8      ** NOTE! The following LGPL license applies to the tdb
9      ** library. This does NOT imply that all of Samba is released
10      ** under the LGPL
11    
12    This library is free software; you can redistribute it and/or
13    modify it under the terms of the GNU Lesser General Public
14    License as published by the Free Software Foundation; either
15    version 3 of the License, or (at your option) any later version.
16
17    This library is distributed in the hope that it will be useful,
18    but WITHOUT ANY WARRANTY; without even the implied warranty of
19    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20    Lesser General Public License for more details.
21
22    You should have received a copy of the GNU Lesser General Public
23    License along with this library; if not, see <http://www.gnu.org/licenses/>.
24 */
25
26 %module libcli_nbt
27
28 %{
29
30 #include "includes.h"
31 #include "lib/talloc/talloc.h"
32 #include "libcli/nbt/libnbt.h"
33 #include "param/param.h"
34
35 /* Undo strcpy safety macro as it's used by swig )-: */
36
37 #undef strcpy
38
39 %}
40
41 %import "stdint.i"
42 %import "../util/errors.i"
43 %import "../../lib/talloc/talloc.i"
44 %import "../../lib/events/events.i"
45
46 /* Function prototypes */
47 struct nbt_name_socket *nbt_name_socket_init(TALLOC_CTX *mem_ctx, 
48                                              struct event_context *event_ctx);
49
50 enum nbt_name_type {
51         NBT_NAME_CLIENT=0x00,
52         NBT_NAME_MS=0x01,
53         NBT_NAME_USER=0x03,
54         NBT_NAME_SERVER=0x20,
55         NBT_NAME_PDC=0x1B,
56         NBT_NAME_LOGON=0x1C,
57         NBT_NAME_MASTER=0x1D,
58         NBT_NAME_BROWSER=0x1E
59 };
60
61 struct nbt_name {
62         const char *name;
63         const char *scope;
64         enum nbt_name_type type;
65 };
66
67 %rename(data_in) in;
68 %rename(data_out) out;
69
70 struct nbt_name_query {
71         struct {
72                 struct nbt_name name;
73                 const char *dest_addr;
74                 bool broadcast;
75                 bool wins_lookup;
76                 int timeout; /* in seconds */
77                 int retries;
78         } in;
79         struct {
80                 const char *reply_from;
81                 struct nbt_name name;
82                 int16_t num_addrs;
83                 const char **reply_addrs;
84         } out;
85 };
86
87 %include "carrays.i"
88 %array_functions(char *, char_ptr_array);
89
90 NTSTATUS do_nbt_name_query(struct nbt_name_socket *nbtsock, 
91                            TALLOC_CTX *mem_ctx, struct nbt_name_query *io);
92
93 %{
94 NTSTATUS do_nbt_name_query(struct nbt_name_socket *nbtsock, 
95                            TALLOC_CTX *mem_ctx, struct nbt_name_query *io)
96 {
97         return nbt_name_query(nbtsock, mem_ctx, io);
98 }
99 %}