rldap 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/constants.h +2 -1
- data/ext/ldap.c +45 -39
- data/lib/ldap/version.rb +1 -1
- metadata +3 -3
data/ext/constants.h
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
#include <ldap.h>
|
2
|
+
|
1
3
|
#define DEFINE_CONST(s) rb_define_const(cLDAP, #s, INT2NUM(s))
|
2
4
|
|
3
5
|
/* options */
|
@@ -5,7 +7,6 @@ DEFINE_CONST(LDAP_OPT_API_FEATURE_INFO);
|
|
5
7
|
DEFINE_CONST(LDAP_OPT_API_INFO);
|
6
8
|
DEFINE_CONST(LDAP_OPT_CLIENT_CONTROLS);
|
7
9
|
DEFINE_CONST(LDAP_OPT_CONNECT_ASYNC);
|
8
|
-
DEFINE_CONST(LDAP_OPT_CONNECT_CB);
|
9
10
|
DEFINE_CONST(LDAP_OPT_DEBUG_LEVEL);
|
10
11
|
DEFINE_CONST(LDAP_OPT_DEFBASE);
|
11
12
|
DEFINE_CONST(LDAP_OPT_DEREF);
|
data/ext/ldap.c
CHANGED
@@ -15,37 +15,37 @@ static VALUE cLDAP_Message;
|
|
15
15
|
static VALUE eLDAP;
|
16
16
|
|
17
17
|
typedef struct {
|
18
|
-
LDAP*
|
18
|
+
LDAP *ld;
|
19
19
|
char connection;
|
20
20
|
} RLDAP_WRAP;
|
21
21
|
|
22
22
|
typedef struct {
|
23
|
-
LDAP*
|
24
|
-
LDAPMessage*
|
23
|
+
LDAP *ld;
|
24
|
+
LDAPMessage *mesg;
|
25
25
|
char freed;
|
26
26
|
} RLDAP_MSG_WRAP;
|
27
27
|
|
28
|
-
static RLDAP_WRAP*
|
28
|
+
static RLDAP_WRAP *get_wrapper(VALUE obj)
|
29
29
|
{
|
30
|
-
RLDAP_WRAP*
|
30
|
+
RLDAP_WRAP *wrapper;
|
31
31
|
Data_Get_Struct(obj, RLDAP_WRAP, wrapper);
|
32
32
|
return wrapper;
|
33
33
|
}
|
34
34
|
|
35
|
-
static RLDAP_MSG_WRAP*
|
35
|
+
static RLDAP_MSG_WRAP *get_msg_wrapper(VALUE obj)
|
36
36
|
{
|
37
37
|
RLDAP_MSG_WRAP* wrapper;
|
38
38
|
Data_Get_Struct(obj, RLDAP_MSG_WRAP, wrapper);
|
39
39
|
return wrapper;
|
40
40
|
}
|
41
41
|
|
42
|
-
static void free_wrapper(RLDAP_WRAP*
|
42
|
+
static void free_wrapper(RLDAP_WRAP *wrapper)
|
43
43
|
{
|
44
44
|
ldap_memfree(wrapper->ld);
|
45
45
|
xfree(wrapper);
|
46
46
|
}
|
47
47
|
|
48
|
-
static void free_msg_wrapper(RLDAP_MSG_WRAP*
|
48
|
+
static void free_msg_wrapper(RLDAP_MSG_WRAP *wrapper)
|
49
49
|
{
|
50
50
|
if (wrapper->freed == Qfalse)
|
51
51
|
ldap_msgfree(wrapper->mesg);
|
@@ -59,7 +59,7 @@ static void rldap_raise(int errno)
|
|
59
59
|
rb_exc_raise(e);
|
60
60
|
}
|
61
61
|
|
62
|
-
static VALUE ldapmessage2obj(LDAP*
|
62
|
+
static VALUE ldapmessage2obj(LDAP *ld, LDAPMessage *msg);
|
63
63
|
|
64
64
|
/* class LDAP */
|
65
65
|
|
@@ -72,7 +72,7 @@ static VALUE rldap_err2string(VALUE klass, VALUE rerrno)
|
|
72
72
|
|
73
73
|
static VALUE rldap_alloc(VALUE klass)
|
74
74
|
{
|
75
|
-
RLDAP_WRAP*
|
75
|
+
RLDAP_WRAP *wrapper;
|
76
76
|
VALUE obj;
|
77
77
|
|
78
78
|
obj = Data_Make_Struct(klass, RLDAP_WRAP, 0, free_wrapper, wrapper);
|
@@ -81,12 +81,12 @@ static VALUE rldap_alloc(VALUE klass)
|
|
81
81
|
return obj;
|
82
82
|
}
|
83
83
|
|
84
|
-
static VALUE rldap_initialize(int argc, VALUE*
|
84
|
+
static VALUE rldap_initialize(int argc, VALUE *argv, VALUE obj)
|
85
85
|
{
|
86
86
|
VALUE rhost, rport;
|
87
|
-
char*
|
87
|
+
char *host;
|
88
88
|
int port;
|
89
|
-
RLDAP_WRAP*
|
89
|
+
RLDAP_WRAP *wrapper;
|
90
90
|
|
91
91
|
rb_scan_args(argc, argv, "11", &rhost, &rport);
|
92
92
|
|
@@ -97,14 +97,14 @@ static VALUE rldap_initialize(int argc, VALUE* argv, VALUE obj)
|
|
97
97
|
host = StringValuePtr(rhost);
|
98
98
|
port = FIX2INT(rport);
|
99
99
|
|
100
|
-
wrapper->ld =
|
100
|
+
wrapper->ld = (LDAP *)ldap_init(host, port);
|
101
101
|
|
102
102
|
return obj;
|
103
103
|
}
|
104
104
|
|
105
105
|
static VALUE rldap_start_tls(VALUE obj)
|
106
106
|
{
|
107
|
-
RLDAP_WRAP*
|
107
|
+
RLDAP_WRAP *wrapper;
|
108
108
|
int retval;
|
109
109
|
|
110
110
|
wrapper = get_wrapper(obj);
|
@@ -117,12 +117,10 @@ static VALUE rldap_start_tls(VALUE obj)
|
|
117
117
|
|
118
118
|
static VALUE rldap_search(VALUE obj, VALUE rbase, VALUE rfilter)
|
119
119
|
{
|
120
|
-
RLDAP_WRAP*
|
121
|
-
char*
|
122
|
-
char* filter;
|
120
|
+
RLDAP_WRAP *wrapper;
|
121
|
+
char *base, *filter;
|
123
122
|
int retval, count, i;
|
124
|
-
LDAPMessage*
|
125
|
-
LDAPMessage* msg;
|
123
|
+
LDAPMessage *res, *msg;
|
126
124
|
VALUE ary;
|
127
125
|
|
128
126
|
wrapper = get_wrapper(obj);
|
@@ -156,12 +154,12 @@ static VALUE rldap_search(VALUE obj, VALUE rbase, VALUE rfilter)
|
|
156
154
|
|
157
155
|
static VALUE rldap_set_option(VALUE obj, VALUE roption, VALUE rvalue)
|
158
156
|
{
|
159
|
-
RLDAP_WRAP*
|
157
|
+
RLDAP_WRAP *wrapper;
|
160
158
|
int retval;
|
161
159
|
int option;
|
162
160
|
int ival;
|
163
|
-
char*
|
164
|
-
void*
|
161
|
+
char *sval;
|
162
|
+
void *val;
|
165
163
|
|
166
164
|
wrapper = get_wrapper(obj);
|
167
165
|
option = FIX2INT(roption);
|
@@ -184,7 +182,7 @@ static VALUE rldap_set_option(VALUE obj, VALUE roption, VALUE rvalue)
|
|
184
182
|
|
185
183
|
static VALUE rldap_errno(VALUE obj)
|
186
184
|
{
|
187
|
-
RLDAP_WRAP*
|
185
|
+
RLDAP_WRAP *wrapper;
|
188
186
|
int errno;
|
189
187
|
|
190
188
|
wrapper = get_wrapper(obj);
|
@@ -196,7 +194,7 @@ static VALUE rldap_errno(VALUE obj)
|
|
196
194
|
|
197
195
|
int rldap_errno_c(VALUE obj)
|
198
196
|
{
|
199
|
-
RLDAP_WRAP*
|
197
|
+
RLDAP_WRAP *wrapper;
|
200
198
|
int errno;
|
201
199
|
|
202
200
|
wrapper = get_wrapper(obj);
|
@@ -210,7 +208,7 @@ int rldap_errno_c(VALUE obj)
|
|
210
208
|
static VALUE ldapmessage2obj(LDAP* ld, LDAPMessage* msg)
|
211
209
|
{
|
212
210
|
VALUE obj;
|
213
|
-
RLDAP_MSG_WRAP*
|
211
|
+
RLDAP_MSG_WRAP *wrapper;
|
214
212
|
|
215
213
|
obj = Data_Make_Struct(cLDAP_Message, RLDAP_MSG_WRAP, 0, free_msg_wrapper, wrapper);
|
216
214
|
wrapper->mesg = msg;
|
@@ -222,26 +220,27 @@ static VALUE ldapmessage2obj(LDAP* ld, LDAPMessage* msg)
|
|
222
220
|
|
223
221
|
static VALUE rldap_msg_dn(VALUE obj)
|
224
222
|
{
|
225
|
-
RLDAP_MSG_WRAP*
|
226
|
-
char*
|
223
|
+
RLDAP_MSG_WRAP *wrapper;
|
224
|
+
char *dn;
|
225
|
+
VALUE rdn;
|
227
226
|
|
228
227
|
wrapper = get_msg_wrapper(obj);
|
229
228
|
|
230
229
|
dn = ldap_get_dn(wrapper->ld, wrapper->mesg);
|
230
|
+
rdn = rb_str_new2(dn);
|
231
|
+
ldap_memfree(dn);
|
231
232
|
|
232
|
-
return
|
233
|
+
return rdn;
|
233
234
|
}
|
234
235
|
|
235
236
|
static VALUE rldap_msg_get_val(VALUE obj, VALUE key)
|
236
237
|
{
|
237
|
-
RLDAP_MSG_WRAP*
|
238
|
-
char*
|
239
|
-
BerValue**
|
240
|
-
VALUE ary;
|
238
|
+
RLDAP_MSG_WRAP *wrapper;
|
239
|
+
char *attr, *strval;
|
240
|
+
BerValue **values;
|
241
|
+
VALUE ary, str;
|
241
242
|
int i, length;
|
242
|
-
BerValue*
|
243
|
-
char* strval;
|
244
|
-
VALUE str;
|
243
|
+
BerValue *value;
|
245
244
|
|
246
245
|
wrapper = get_msg_wrapper(obj);
|
247
246
|
attr = StringValuePtr(key);
|
@@ -268,11 +267,16 @@ static VALUE rldap_msg_get_val(VALUE obj, VALUE key)
|
|
268
267
|
|
269
268
|
static VALUE rldap_msg_keys(VALUE obj)
|
270
269
|
{
|
271
|
-
RLDAP_MSG_WRAP*
|
272
|
-
char*
|
273
|
-
BerElement*
|
270
|
+
RLDAP_MSG_WRAP *wrapper;
|
271
|
+
char *attr;
|
272
|
+
BerElement *ber;
|
274
273
|
VALUE ary;
|
275
274
|
|
275
|
+
ary = rb_iv_get(obj, "@keys");
|
276
|
+
|
277
|
+
if (ary != Qnil)
|
278
|
+
return ary;
|
279
|
+
|
276
280
|
wrapper = get_msg_wrapper(obj);
|
277
281
|
ary = rb_ary_new();
|
278
282
|
|
@@ -284,6 +288,8 @@ static VALUE rldap_msg_keys(VALUE obj)
|
|
284
288
|
|
285
289
|
ber_free(ber, 0);
|
286
290
|
|
291
|
+
rb_iv_set(obj, "@keys", ary);
|
292
|
+
|
287
293
|
return ary;
|
288
294
|
}
|
289
295
|
|
data/lib/ldap/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Henrik Hodne
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-09-25 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|