https://bugs.openldap.org/show_bug.cgi?id=9943
Issue ID: 9943 Summary: pw-radius Product: OpenLDAP Version: 2.4.57 Hardware: x86_64 OS: Linux Status: UNCONFIRMED Keywords: needs_review Severity: normal Priority: --- Component: libraries Assignee: bugs@openldap.org Reporter: earyutin@gmail.com Target Milestone: ---
Good evening, dear developers!
I'm using Debian 11 Faced with the problem of compiling the module for authorization through FreeRadius, users connecting to OpenLDAP.
There is little information on the net, but I managed to find the following: https://github.com/openldap/openldap/blob/master/contrib/slapd-modules/passw...
moduleload pw-radius.so gcc -shared -I../../../include -Wall -g -o pw-radius.so radius.c -lradius
Installed: apt install slapd ldap-utils
Version: slapd -V @(#) $OpenLDAP: slapd 2.4.57+dfsg-3+deb11u1
gcc -shared -I /usr/lib/ldap/ -Wall -g -o pw-radius.so radius.c -lradius gcc: error: radius.c: No such file or directory
1. Download "openldap-2.5.13.tgz" 2. tar -zxvf openldap-2.5.13.tgz 3. find /root/openldap-2.5.13/ -name "radius.c" /root/openldap-2.5.13/contrib/slapd-modules/passwd/radius.c 4. cd /root/openldap-2.5.13/contrib/slapd-modules/passwd/ 5. gcc -shared -I ../../../include -Wall -g -o pw-radius.so radius.c -lradius"
Errors appear 5.1. radius.c:16:10: fatal error: portable.h: No such file or directory 16 | #include "portable.h"
5.2. find /root/openldap-2.5.13/ -name "portable.*" /root/openldap-2.5.13/include/portable.hin
5.3. cp /root/openldap-2.5.13/include/portable.hin /root/openldap-2.5.13/include/portable.h
5.4. gcc -shared -I ../../../include -Wall -g -o pw-radius.so radius.c -lradius"
5.5. In file included from radius.c:16: ../../../include/portable.h:1188:10: fatal error: ldap_features.h: No such file or directory 1188 | #include "ldap_features.h"
5.6. find /root/openldap-2.5.13/ -name "ldap_features.*" /root/openldap-2.5.13/include/ldap_features.hin cp /root/openldap-2.5.13/include/ldap_features.hin /root/openldap-2.5.13/include/ldap_features.h
...
After changing the names of all bad files, a bunch of errors come out:
gcc -shared -I ../../../include -Wall -g -o pw-radius.so radius.c -lradius
In file included from ../../../include/lber.h:29, from radius.c:20: ../../../include/lber_types.h:42:9: error: unknown type name ‘LBER_INT_T’ 42 | typedef LBER_INT_T ber_int_t; | ^~~~~~~~~~ ../../../include/lber_types.h:45:27: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ber_sint_t’ 45 | typedef signed LBER_INT_T ber_sint_t; | ^~~~~~~~~~ ../../../include/lber_types.h:46:29: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ber_uint_t’ 46 | typedef unsigned LBER_INT_T ber_uint_t; | ^~~~~~~~~~ ../../../include/lber_types.h:49:29: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ber_tag_t’ 49 | typedef unsigned LBER_TAG_T ber_tag_t; | ^~~~~~~~~ ../../../include/lber_types.h:52:9: error: unknown type name ‘LBER_SOCKET_T’ 52 | typedef LBER_SOCKET_T ber_socket_t; | ^~~~~~~~~~~~~ ../../../include/lber_types.h:55:29: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ber_len_t’ 55 | typedef unsigned LBER_LEN_T ber_len_t; | ^~~~~~~~~ ../../../include/lber_types.h:58:27: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ber_slen_t’ 58 | typedef signed LBER_LEN_T ber_slen_t; | ^~~~~~~~~~ In file included from ../../../include/portable.hin:1187, from radius.c:16: ../../../include/lber.h:121:42: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 121 | typedef void* (BER_MEMALLOC_FN) LDAP_P(( ber_len_t size, void *ctx )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:122:43: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 122 | typedef void* (BER_MEMCALLOC_FN) LDAP_P(( ber_len_t n, ber_len_t size, void *ctx )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:122:56: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 122 | typedef void* (BER_MEMCALLOC_FN) LDAP_P(( ber_len_t n, ber_len_t size, void *ctx )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:123:53: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 123 | typedef void* (BER_MEMREALLOC_FN) LDAP_P(( void *p, ber_len_t size, void *ctx )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ In file included from radius.c:20: ../../../include/lber.h:127:2: error: unknown type name ‘BER_MEMALLOC_FN’ 127 | BER_MEMALLOC_FN *bmf_malloc; | ^~~~~~~~~~~~~~~ ../../../include/lber.h:128:2: error: unknown type name ‘BER_MEMCALLOC_FN’ 128 | BER_MEMCALLOC_FN *bmf_calloc; | ^~~~~~~~~~~~~~~~ ../../../include/lber.h:129:2: error: unknown type name ‘BER_MEMREALLOC_FN’ 129 | BER_MEMREALLOC_FN *bmf_realloc; | ^~~~~~~~~~~~~~~~~ ../../../include/lber.h:191:2: error: expected specifier-qualifier-list before ‘ber_slen_t’ 191 | ber_slen_t (*sbi_read)( Sockbuf_IO_Desc *sbiod, void *buf, | ^~~~~~~~~~ ../../../include/lber.h:213:2: error: unknown type name ‘ber_len_t’ 213 | ber_len_t bv_len; | ^~~~~~~~~ In file included from ../../../include/portable.hin:1187, from radius.c:16: ../../../include/lber.h:230:25: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 230 | LDAP_CONST char *data, ber_len_t len )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:244:9: error: unknown type name ‘ber_tag_t’ 244 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:248:9: error: unknown type name ‘ber_tag_t’ 248 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:251:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 251 | ber_len_t *len )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:253:9: error: unknown type name ‘ber_tag_t’ 253 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:256:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 256 | ber_len_t *len )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:258:9: error: unknown type name ‘ber_tag_t’ 258 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:263:9: error: unknown type name ‘ber_tag_t’ 263 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:268:9: error: unknown type name ‘ber_tag_t’ 268 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:273:9: error: unknown type name ‘ber_tag_t’ 273 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:278:9: error: unknown type name ‘ber_tag_t’ 278 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:288:9: error: unknown type name ‘ber_tag_t’ 288 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:292:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 292 | ber_len_t *len )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:301:9: error: unknown type name ‘ber_tag_t’ 301 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:307:9: error: unknown type name ‘ber_tag_t’ 307 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:312:9: error: unknown type name ‘ber_tag_t’ 312 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:317:9: error: unknown type name ‘ber_tag_t’ 317 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:321:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 321 | ber_len_t *len )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:323:9: error: unknown type name ‘ber_tag_t’ 323 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:327:9: error: unknown type name ‘ber_tag_t’ 327 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:332:9: error: unknown type name ‘ber_tag_t’ 332 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:335:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 335 | ber_len_t *len, | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:338:9: error: unknown type name ‘ber_tag_t’ 338 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:341:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 341 | ber_len_t *len, | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:344:9: error: unknown type name ‘ber_tag_t’ 344 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:371:2: error: unknown type name ‘ber_tag_t’; did you mean ‘ber_int_t’? 371 | ber_tag_t tag )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:377:2: error: unknown type name ‘ber_tag_t’; did you mean ‘ber_int_t’? 377 | ber_tag_t tag )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:383:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 383 | ber_len_t len, | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:384:2: error: unknown type name ‘ber_tag_t’; did you mean ‘ber_int_t’? 384 | ber_tag_t tag )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:390:2: error: unknown type name ‘ber_tag_t’; did you mean ‘ber_int_t’? 390 | ber_tag_t tag )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:396:2: error: unknown type name ‘ber_tag_t’; did you mean ‘ber_int_t’? 396 | ber_tag_t tag )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:402:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 402 | ber_len_t bitlen, | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:403:2: error: unknown type name ‘ber_tag_t’; did you mean ‘ber_int_t’? 403 | ber_tag_t tag )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:408:2: error: unknown type name ‘ber_tag_t’; did you mean ‘ber_int_t’? 408 | ber_tag_t tag )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:414:2: error: unknown type name ‘ber_tag_t’; did you mean ‘ber_int_t’? 414 | ber_tag_t tag )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:419:2: error: unknown type name ‘ber_tag_t’; did you mean ‘ber_int_t’? 419 | ber_tag_t tag )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:424:2: error: unknown type name ‘ber_tag_t’; did you mean ‘ber_int_t’? 424 | ber_tag_t tag )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:445:9: error: unknown type name ‘ber_slen_t’ 445 | LBER_F( ber_slen_t ) | ^~~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:448:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 448 | ber_len_t len )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:450:9: error: unknown type name ‘ber_slen_t’ 450 | LBER_F( ber_slen_t ) | ^~~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:454:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 454 | ber_len_t len )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:456:9: error: unknown type name ‘ber_slen_t’ 456 | LBER_F( ber_slen_t ) | ^~~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:460:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 460 | ber_len_t len, | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:501:9: error: unknown type name ‘ber_tag_t’ 501 | LBER_F( ber_tag_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:504:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 504 | ber_len_t *len, | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:600:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 600 | ber_len_t s )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:605:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 605 | ber_len_t s )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:609:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 609 | ber_len_t n, | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:610:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 610 | ber_len_t s )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:643:21: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 643 | LDAP_CONST char *, ber_len_t len, int duplicate, struct berval *bv)); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:647:21: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 647 | LDAP_CONST char *, ber_len_t len, int duplicate, struct berval *bv)); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:656:9: error: unknown type name ‘ber_len_t’ 656 | LBER_F( ber_len_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber.h:658:22: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 658 | LDAP_CONST char *s, ber_len_t len )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber.h:662:22: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 662 | LDAP_CONST char *s, ber_len_t l )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ In file included from radius.c:21: ../../../include/lber_pvt.h:45:2: error: unknown type name ‘ber_len_t’ 45 | ber_len_t buf_size; | ^~~~~~~~~ ../../../include/lber_pvt.h:46:2: error: unknown type name ‘ber_len_t’ 46 | ber_len_t buf_ptr; | ^~~~~~~~~ ../../../include/lber_pvt.h:47:2: error: unknown type name ‘ber_len_t’ 47 | ber_len_t buf_end; | ^~~~~~~~~ In file included from ../../../include/portable.hin:1187, from radius.c:16: ../../../include/lber_pvt.h:66:9: error: unknown type name ‘ber_slen_t’ 66 | LBER_F( ber_slen_t ) | ^~~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber_pvt.h:76:51: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 76 | ber_pvt_sb_grow_buffer LDAP_P(( Sockbuf_Buf *buf, ber_len_t minsize )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber_pvt.h:78:9: error: unknown type name ‘ber_len_t’ 78 | LBER_F( ber_len_t ) | ^~~~~~~~~ ../../../include/ldap_cdefs.h:136:31: note: in definition of macro ‘LBER_F’ 136 | # define LBER_F(type) extern type | ^~~~ ../../../include/lber_pvt.h:79:59: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 79 | ber_pvt_sb_copy_out LDAP_P(( Sockbuf_Buf *sbb, char *buf, ber_len_t len )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber_pvt.h:89:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 89 | ber_len_t s, void *ctx)); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber_pvt.h:94:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 94 | ber_len_t s, void *ctx )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber_pvt.h:98:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 98 | ber_len_t n, | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber_pvt.h:99:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 99 | ber_len_t s, void *ctx )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber_pvt.h:128:21: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 128 | LDAP_CONST char *, ber_len_t len, int dup, struct berval *bv, void *ctx)); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lber_pvt.h:132:21: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 132 | LDAP_CONST char *, ber_len_t len, int dup, struct berval *bv, void *ctx)); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ In file included from ../../../include/lutil.h:21, from radius.c:22: ../../../include/ac/socket.h:233:46: error: unknown type name ‘uid_t’ 233 | LDAP_LUTIL_F( int ) lutil_getpeereid( int s, uid_t *, gid_t * ); | ^~~~~ ../../../include/ac/socket.h:233:55: error: unknown type name ‘gid_t’ 233 | LDAP_LUTIL_F( int ) lutil_getpeereid( int s, uid_t *, gid_t * ); | ^~~~~ ../../../include/ac/socket.h:238:18: error: field ‘sa_addr’ has incomplete type 238 | struct sockaddr sa_addr; | ^~~~~~~ ../../../include/ac/socket.h:239:21: error: field ‘sa_in_addr’ has incomplete type 239 | struct sockaddr_in sa_in_addr; | ^~~~~~~~~~ In file included from ../../../include/portable.hin:1187, from radius.c:16: ../../../include/lutil.h:68:2: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 68 | ber_len_t nbytes )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ ../../../include/lutil.h:137:51: error: unknown type name ‘ber_len_t’; did you mean ‘ber_int_t’? 137 | lutil_passwd_generate LDAP_P(( struct berval *pw, ber_len_t )); | ^~~~~~~~~ ../../../include/ldap_cdefs.h:32:25: note: in definition of macro ‘LDAP_P’ 32 | # define LDAP_P(protos) protos | ^~~~~~ radius.c:27:10: fatal error: radlib.h: No such file or directory 27 | #include <radlib.h>
Help me please. Thank you !