]> git.sur5r.net Git - openldap/blob - libraries/liblber/options.c
Missing LDAP_CONST from ldap_set_option() declaration.
[openldap] / libraries / liblber / options.c
1 /*
2  * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
3  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
4  */
5 #include "portable.h"
6
7 #include <stdlib.h>
8
9 #include "lber-int.h"
10
11 int ber_int_debug = 0;
12
13 int
14 ber_get_option(
15         void    *item,
16         int             option,
17         void    *outvalue)
18 {
19         BerElement *ber;
20         Sockbuf *sb;
21
22         if(outvalue == NULL) {
23                 /* no place to get to */
24                 return LBER_OPT_ERROR;
25         }
26
27         if(item == NULL) {
28                 if(option == LBER_OPT_BER_DEBUG) {
29                         * (int *) outvalue = ber_int_debug;
30                         return LBER_OPT_SUCCESS;
31                 }
32
33                 return LBER_OPT_ERROR;
34         }
35
36         ber = (BerElement *) item;
37         sb = (Sockbuf *) item;
38
39         switch(option) {
40         case LBER_OPT_BER_OPTIONS:
41                 * (int *) outvalue = ber->ber_options;
42                 return LBER_OPT_SUCCESS;
43
44         case LBER_OPT_BER_DEBUG:
45                 * (int *) outvalue = ber->ber_debug;
46                 return LBER_OPT_SUCCESS;
47
48         default:
49                 /* bad param */
50                 break;
51         }
52
53         return LBER_OPT_ERROR;
54 }
55
56 int
57 ber_set_option(
58         void    *item,
59         int             option,
60         LDAP_CONST void *invalue)
61 {
62         BerElement *ber;
63         Sockbuf *sb;
64
65         if(invalue == NULL) {
66                 /* no place to set from */
67                 return LBER_OPT_ERROR;
68         }
69
70         if(item == NULL) {
71                 if(option == LBER_OPT_BER_DEBUG) {
72                         ber_int_debug = * (int *) invalue;
73                         return LBER_OPT_SUCCESS;
74
75                 } else if(option == LBER_OPT_LOG_PRINT_FN) {
76                         ber_pvt_log_print = (BER_LOG_PRINT_FN) invalue;
77                         return LBER_OPT_SUCCESS;
78                 }
79
80                 return LBER_OPT_ERROR;
81         }
82
83         ber = (BerElement *) item;
84         sb = (Sockbuf *) item;
85
86         switch(option) {
87         case LBER_OPT_BER_OPTIONS:
88                 ber->ber_options = * (int *) invalue;
89                 return LBER_OPT_SUCCESS;
90
91         case LBER_OPT_BER_DEBUG:
92                 ber->ber_debug = * (int *) invalue;
93                 return LBER_OPT_SUCCESS;
94
95         default:
96                 /* bad param */
97                 break;
98         }
99
100         return LBER_OPT_ERROR;
101 }