Deleted Added
full compact
store.c (72445) store.c (78527)
1/*
1/*
2 * Copyright (c) 1997-2000 Kungliga Tekniska H�gskolan
2 * Copyright (c) 1997-2001 Kungliga Tekniska H�gskolan
3 * (Royal Institute of Technology, Stockholm, Sweden).
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#include "krb5_locl.h"
35
3 * (Royal Institute of Technology, Stockholm, Sweden).
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#include "krb5_locl.h"
35
36RCSID("$Id: store.c,v 1.34 2000/04/11 00:46:09 assar Exp $");
36RCSID("$Id: store.c,v 1.35 2001/05/11 13:01:43 joda Exp $");
37
37
38#define BYTEORDER_IS(SP, V) (((SP)->flags & KRB5_STORAGE_BYTEORDER_MASK) == (V))
39#define BYTEORDER_IS_LE(SP) BYTEORDER_IS((SP), KRB5_STORAGE_BYTEORDER_LE)
40#define BYTEORDER_IS_BE(SP) BYTEORDER_IS((SP), KRB5_STORAGE_BYTEORDER_BE)
41#define BYTEORDER_IS_HOST(SP) (BYTEORDER_IS((SP), KRB5_STORAGE_BYTEORDER_HOST) || \
42 krb5_storage_is_flags((SP), KRB5_STORAGE_HOST_BYTEORDER))
43
38void
39krb5_storage_set_flags(krb5_storage *sp, krb5_flags flags)
40{
41 sp->flags |= flags;
42}
43
44void
45krb5_storage_clear_flags(krb5_storage *sp, krb5_flags flags)
46{
47 sp->flags &= ~flags;
48}
49
50krb5_boolean
51krb5_storage_is_flags(krb5_storage *sp, krb5_flags flags)
52{
53 return (sp->flags & flags) == flags;
54}
55
44void
45krb5_storage_set_flags(krb5_storage *sp, krb5_flags flags)
46{
47 sp->flags |= flags;
48}
49
50void
51krb5_storage_clear_flags(krb5_storage *sp, krb5_flags flags)
52{
53 sp->flags &= ~flags;
54}
55
56krb5_boolean
57krb5_storage_is_flags(krb5_storage *sp, krb5_flags flags)
58{
59 return (sp->flags & flags) == flags;
60}
61
62void
63krb5_storage_set_byteorder(krb5_storage *sp, krb5_flags byteorder)
64{
65 sp->flags &= ~KRB5_STORAGE_BYTEORDER_MASK;
66 sp->flags |= byteorder;
67}
68
69krb5_flags
70krb5_storage_get_byteorder(krb5_storage *sp, krb5_flags byteorder)
71{
72 return sp->flags & KRB5_STORAGE_BYTEORDER_MASK;
73}
74
75
56ssize_t
57_krb5_put_int(void *buffer, unsigned long value, size_t size)
58{
59 unsigned char *p = buffer;
60 int i;
61 for (i = size - 1; i >= 0; i--) {
62 p[i] = value & 0xff;
63 value >>= 8;

--- 46 unchanged lines hidden (view full) ---

110}
111
112static krb5_error_code
113krb5_store_int(krb5_storage *sp,
114 int32_t value,
115 size_t len)
116{
117 int ret;
76ssize_t
77_krb5_put_int(void *buffer, unsigned long value, size_t size)
78{
79 unsigned char *p = buffer;
80 int i;
81 for (i = size - 1; i >= 0; i--) {
82 p[i] = value & 0xff;
83 value >>= 8;

--- 46 unchanged lines hidden (view full) ---

130}
131
132static krb5_error_code
133krb5_store_int(krb5_storage *sp,
134 int32_t value,
135 size_t len)
136{
137 int ret;
118 unsigned char v[4];
138 unsigned char v[16];
119
139
140 if(len > sizeof(v))
141 return EINVAL;
120 _krb5_put_int(v, value, len);
121 ret = sp->store(sp, v, len);
122 if (ret != len)
123 return (ret<0)?errno:KRB5_CC_END;
124 return 0;
125}
126
127krb5_error_code
128krb5_store_int32(krb5_storage *sp,
129 int32_t value)
130{
142 _krb5_put_int(v, value, len);
143 ret = sp->store(sp, v, len);
144 if (ret != len)
145 return (ret<0)?errno:KRB5_CC_END;
146 return 0;
147}
148
149krb5_error_code
150krb5_store_int32(krb5_storage *sp,
151 int32_t value)
152{
131 if(krb5_storage_is_flags(sp, KRB5_STORAGE_HOST_BYTEORDER))
153 if(BYTEORDER_IS_HOST(sp))
132 value = htonl(value);
154 value = htonl(value);
155 else if(BYTEORDER_IS_LE(sp))
156 value = bswap32(value);
133 return krb5_store_int(sp, value, 4);
134}
135
136static krb5_error_code
137krb5_ret_int(krb5_storage *sp,
138 int32_t *value,
139 size_t len)
140{

--- 10 unchanged lines hidden (view full) ---

151
152krb5_error_code
153krb5_ret_int32(krb5_storage *sp,
154 int32_t *value)
155{
156 krb5_error_code ret = krb5_ret_int(sp, value, 4);
157 if(ret)
158 return ret;
157 return krb5_store_int(sp, value, 4);
158}
159
160static krb5_error_code
161krb5_ret_int(krb5_storage *sp,
162 int32_t *value,
163 size_t len)
164{

--- 10 unchanged lines hidden (view full) ---

175
176krb5_error_code
177krb5_ret_int32(krb5_storage *sp,
178 int32_t *value)
179{
180 krb5_error_code ret = krb5_ret_int(sp, value, 4);
181 if(ret)
182 return ret;
159 if(krb5_storage_is_flags(sp, KRB5_STORAGE_HOST_BYTEORDER))
160 *value = ntohl(*value);
183 if(BYTEORDER_IS_HOST(sp))
184 *value = htonl(*value);
185 else if(BYTEORDER_IS_LE(sp))
186 *value = bswap32(*value);
161 return 0;
162}
163
164krb5_error_code
165krb5_store_int16(krb5_storage *sp,
166 int16_t value)
167{
187 return 0;
188}
189
190krb5_error_code
191krb5_store_int16(krb5_storage *sp,
192 int16_t value)
193{
168 if(krb5_storage_is_flags(sp, KRB5_STORAGE_HOST_BYTEORDER))
194 if(BYTEORDER_IS_HOST(sp))
169 value = htons(value);
195 value = htons(value);
196 else if(BYTEORDER_IS_LE(sp))
197 value = bswap16(value);
170 return krb5_store_int(sp, value, 2);
171}
172
173krb5_error_code
174krb5_ret_int16(krb5_storage *sp,
175 int16_t *value)
176{
177 int32_t v;
178 int ret;
179 ret = krb5_ret_int(sp, &v, 2);
180 if(ret)
181 return ret;
182 *value = v;
198 return krb5_store_int(sp, value, 2);
199}
200
201krb5_error_code
202krb5_ret_int16(krb5_storage *sp,
203 int16_t *value)
204{
205 int32_t v;
206 int ret;
207 ret = krb5_ret_int(sp, &v, 2);
208 if(ret)
209 return ret;
210 *value = v;
183 if(krb5_storage_is_flags(sp, KRB5_STORAGE_HOST_BYTEORDER))
184 *value = ntohs(*value);
211 if(BYTEORDER_IS_HOST(sp))
212 *value = htons(*value);
213 else if(BYTEORDER_IS_LE(sp))
214 *value = bswap16(*value);
185 return 0;
186}
187
188krb5_error_code
189krb5_store_int8(krb5_storage *sp,
190 int8_t value)
191{
192 int ret;

--- 442 unchanged lines hidden ---
215 return 0;
216}
217
218krb5_error_code
219krb5_store_int8(krb5_storage *sp,
220 int8_t value)
221{
222 int ret;

--- 442 unchanged lines hidden ---