Sun, 29 Dec 2019 21:06:02 +0100
move backend initialization to new function
1 | 1 | /* |
2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. | |
3 | * | |
4 | * Copyright 2008 Sun Microsystems, Inc. All rights reserved. | |
5 | * | |
6 | * THE BSD LICENSE | |
7 | * | |
8 | * Redistribution and use in source and binary forms, with or without | |
9 | * modification, are permitted provided that the following conditions are met: | |
10 | * | |
11 | * Redistributions of source code must retain the above copyright notice, this | |
12 | * list of conditions and the following disclaimer. | |
13 | * Redistributions in binary form must reproduce the above copyright notice, | |
14 | * this list of conditions and the following disclaimer in the documentation | |
15 | * and/or other materials provided with the distribution. | |
16 | * | |
17 | * Neither the name of the nor the names of its contributors may be | |
18 | * used to endorse or promote products derived from this software without | |
19 | * specific prior written permission. | |
20 | * | |
21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
22 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
23 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
24 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER | |
25 | * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
26 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
27 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | |
28 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
29 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |
30 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |
31 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
32 | */ | |
33 | ||
34 | #ifndef BASE_UTIL_H | |
35 | #define BASE_UTIL_H | |
36 | ||
14
b8bf95b39952
New source folder layout
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
1
diff
changeset
|
37 | #include "../daemon/netsite.h" |
91 | 38 | #include <ucx/string.h> |
58
66c22e54aa90
webdav uses the vfs api
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
48
diff
changeset
|
39 | #include "pool.h" |
148
d861ee1455bf
removes some unused stuff
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
127
diff
changeset
|
40 | |
d861ee1455bf
removes some unused stuff
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
127
diff
changeset
|
41 | #ifdef XP_UNIX |
48
37a512d7b8f6
fixed some memory leaks
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
24
diff
changeset
|
42 | #include <pwd.h> |
148
d861ee1455bf
removes some unused stuff
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
127
diff
changeset
|
43 | #endif |
1 | 44 | |
45 | #ifndef NOINTNSAPI | |
46 | #define INTNSAPI | |
47 | #endif /* !NOINTNSAPI */ | |
48 | ||
49 | /* | |
50 | * util.h: A hodge podge of utility functions and standard functions which | |
51 | * are unavailable on certain systems | |
52 | * | |
53 | * Rob McCool | |
54 | */ | |
55 | ||
56 | /* Needed for various reentrant functions */ | |
57 | #define DEF_CTIMEBUF 26 | |
58 | #define DEF_ERRBUF 256 | |
59 | #define DEF_PWBUF 1024 | |
60 | ||
61 | #ifndef BASE_BUFFER_H | |
62 | //include "buffer.h" /* filebuf for getline */ | |
63 | #endif /* !BASE_BUFFER_H */ | |
64 | ||
65 | /* | |
66 | * UTIL_ITOA_SIZE is the minimum size for buffers passed to util_itoa(). | |
67 | */ | |
68 | #define UTIL_ITOA_SIZE 12 | |
69 | ||
70 | /* | |
71 | * UTIL_I64TOA_SIZE is the minimum size for buffers passed to util_i64toa(). | |
72 | */ | |
73 | #define UTIL_I64TOA_SIZE 21 | |
74 | ||
75 | /* --- Begin common function prototypes --- */ | |
76 | ||
77 | #ifdef INTNSAPI | |
78 | ||
24
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
79 | #ifdef __cplusplus |
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
80 | extern "C" { |
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
81 | #endif |
1 | 82 | |
127
84e206063b64
adds minimal websocket implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
119
diff
changeset
|
83 | size_t util_base64decode(char *bufcoded, size_t codedbytes, char *bufout); |
84e206063b64
adds minimal websocket implementation
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
119
diff
changeset
|
84 | char* util_base64encode(char *in, size_t len); |
62
c47e081b6c0f
added keyfile based authentication
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
58
diff
changeset
|
85 | |
1 | 86 | NSAPI_PUBLIC |
87 | int INTutil_init_PRNetAddr(PRNetAddr * naddr, char * ipstr, int iplen, int type); | |
88 | ||
89 | NSAPI_PUBLIC | |
90 | int INTutil_getline(filebuffer *buf, int lineno, int maxlen, char *l); | |
91 | ||
92 | NSAPI_PUBLIC char **INTutil_env_create(char **env, int n, int *pos); | |
93 | ||
94 | NSAPI_PUBLIC char *INTutil_env_str(const char *name, const char *value); | |
95 | ||
96 | NSAPI_PUBLIC void INTutil_env_replace(char **env, const char *name, const char *value); | |
97 | ||
98 | NSAPI_PUBLIC void INTutil_env_free(char **env); | |
99 | ||
100 | NSAPI_PUBLIC char **INTutil_env_copy(char **src, char **dst); | |
101 | ||
102 | NSAPI_PUBLIC char *INTutil_env_find(char **env, const char *name); | |
103 | ||
104 | NSAPI_PUBLIC char **util_argv_parse(const char *cmdline); | |
105 | ||
106 | NSAPI_PUBLIC char *INTutil_hostname(void); | |
107 | ||
108 | NSAPI_PUBLIC int INTutil_chdir2path(char *path); | |
109 | ||
110 | NSAPI_PUBLIC int INTutil_chdir(const char *path); | |
111 | ||
112 | NSAPI_PUBLIC char *INTutil_getcwd(void); | |
113 | ||
114 | NSAPI_PUBLIC int INTutil_is_mozilla(char *ua, char *major, char *minor); | |
115 | ||
116 | NSAPI_PUBLIC int INTutil_is_url(const char *url); | |
117 | ||
118 | NSAPI_PUBLIC int INTutil_mstr2num(const char *s); | |
119 | ||
120 | NSAPI_PUBLIC int INTutil_later_than(const struct tm *lms, const char *ims); | |
121 | ||
122 | NSAPI_PUBLIC int INTutil_time_equal(const struct tm *lms, const char *ims); | |
123 | ||
124 | NSAPI_PUBLIC int INTutil_str_time_equal(const char *t1, const char *t2); | |
125 | ||
126 | NSAPI_PUBLIC int INTutil_uri_is_evil(const char *t); | |
127 | ||
128 | NSAPI_PUBLIC int INTutil_uri_is_evil_internal(const char *t, int, int); | |
129 | ||
130 | NSAPI_PUBLIC void INTutil_uri_parse(char *uri); | |
131 | ||
132 | #ifdef XP_WIN32 | |
133 | NSAPI_PUBLIC int INTutil_uri_unescape_and_normalize(pool_handle_t *pool, char *s, char *unnormalized); | |
134 | #endif /* XP_WIN32 */ | |
135 | ||
136 | NSAPI_PUBLIC void INTutil_uri_normalize_slashes(char *s); | |
137 | ||
138 | NSAPI_PUBLIC void INTutil_uri_unescape (char *s); | |
139 | ||
140 | NSAPI_PUBLIC int INTutil_uri_unescape_strict (char *s); | |
141 | ||
142 | NSAPI_PUBLIC int INTutil_uri_unescape_plus (const char *src, char *trg, int len); | |
143 | ||
144 | NSAPI_PUBLIC char *INTutil_uri_escape(char *d, const char *s); | |
145 | ||
146 | NSAPI_PUBLIC char *INTutil_uri_strip_params(char *uri); | |
147 | ||
148 | NSAPI_PUBLIC char* util_canonicalize_uri(pool_handle_t *pool, const char *uri, int len, int *pcanonlen); | |
149 | ||
150 | NSAPI_PUBLIC char* util_canonicalize_redirect(pool_handle_t *pool, const char *baseUri, const char *newUri); | |
151 | ||
152 | NSAPI_PUBLIC char *INTutil_url_escape(char *d, const char *s); | |
153 | ||
154 | NSAPI_PUBLIC char *INTutil_sh_escape(char *s); | |
155 | ||
156 | NSAPI_PUBLIC int INTutil_mime_separator(char *sep); | |
157 | ||
158 | NSAPI_PUBLIC int INTutil_itoa(int i, char *a); | |
159 | ||
24
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
160 | NSAPI_PUBLIC int INTutil_i64toa(int64_t i, char *a); |
1 | 161 | |
162 | ||
163 | NSAPI_PUBLIC | |
164 | int INTutil_vsprintf(char *s, register const char *fmt, va_list args); | |
165 | ||
166 | NSAPI_PUBLIC int INTutil_sprintf(char *s, const char *fmt, ...); | |
167 | ||
168 | NSAPI_PUBLIC int INTutil_vsnprintf(char *s, int n, register const char *fmt, | |
169 | va_list args); | |
170 | ||
171 | NSAPI_PUBLIC int INTutil_snprintf(char *s, int n, const char *fmt, ...); | |
172 | ||
173 | NSAPI_PUBLIC int util_strlftime(char *dst, size_t dstsize, const char *format, const struct tm *t); | |
174 | ||
175 | NSAPI_PUBLIC int INTutil_strftime(char *s, const char *format, const struct tm *t); | |
176 | ||
177 | NSAPI_PUBLIC char *INTutil_strtok(char *s1, const char *s2, char **lasts); | |
178 | ||
179 | NSAPI_PUBLIC struct tm *INTutil_localtime(const time_t *clock, struct tm *res); | |
180 | ||
181 | NSAPI_PUBLIC char *INTutil_ctime(const time_t *clock, char *buf, int buflen); | |
182 | ||
183 | NSAPI_PUBLIC char *INTutil_strerror(int errnum, char *msg, int buflen); | |
184 | ||
185 | NSAPI_PUBLIC struct tm *INTutil_gmtime(const time_t *clock, struct tm *res); | |
186 | ||
187 | NSAPI_PUBLIC char *INTutil_asctime(const struct tm *tm,char *buf, int buflen); | |
188 | ||
189 | NSAPI_PUBLIC char *INTutil_cookie_find(char *cookie, const char *name); | |
190 | ||
191 | NSAPI_PUBLIC char *INTutil_cookie_next(char *cookie, char **name, char **value); | |
192 | ||
193 | NSAPI_PUBLIC char *INTutil_cookie_next_av_pair(char *cookie, char **name, char **value); | |
194 | ||
195 | NSAPI_PUBLIC void INTutil_random(void *buf, size_t sz); | |
196 | ||
197 | NSAPI_PUBLIC PRBool INTutil_format_http_version(const char *v, int *protv_num, char *buffer, int size); | |
198 | ||
199 | NSAPI_PUBLIC int INTutil_getboolean(const char *v, int def); | |
106
b122f34ddc80
added minimal ssl support
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
104
diff
changeset
|
200 | int util_getboolean_s(sstr_t s, int def); |
24
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
201 | |
119
155cbab9eefd
adds support for CGI with request bodies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
106
diff
changeset
|
202 | // new |
155cbab9eefd
adds support for CGI with request bodies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
106
diff
changeset
|
203 | NSAPI_PUBLIC int util_strtoint(char *str, int64_t *value); |
155cbab9eefd
adds support for CGI with request bodies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
106
diff
changeset
|
204 | |
24
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
205 | // TODO |
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
206 | //NSAPI_PUBLIC PRIntervalTime INTutil_getinterval(const char *v, PRIntervalTime def); |
1 | 207 | |
208 | #ifdef NEED_STRCASECMP | |
209 | NSAPI_PUBLIC int INTutil_strcasecmp(const char *one, const char *two); | |
210 | #endif /* NEED_STRCASECMP */ | |
211 | ||
212 | #ifdef NEED_STRNCASECMP | |
213 | NSAPI_PUBLIC int INTutil_strncasecmp(const char *one, const char *two, int n); | |
214 | #endif /* NEED_STRNCASECMP */ | |
215 | ||
216 | NSAPI_PUBLIC char *INTutil_strcasestr(char *str, const char *substr); | |
217 | ||
218 | NSAPI_PUBLIC size_t util_strlcpy(char *dst, const char *src, size_t dstsize); | |
219 | ||
220 | NSAPI_PUBLIC size_t util_strlcat(char *dst, const char *src, size_t dstsize); | |
221 | ||
222 | NSAPI_PUBLIC char *INTutil_uuencode(const char *src, int len); | |
223 | ||
224 | NSAPI_PUBLIC char *INTutil_uudecode(const char *src); | |
225 | ||
226 | NSAPI_PUBLIC char *util_strlower(char *s); | |
227 | ||
228 | NSAPI_PUBLIC char *util_decrement_string(char *s); | |
229 | ||
24
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
230 | NSAPI_PUBLIC int64_t util_atoi64(const char *a); |
1 | 231 | |
232 | NSAPI_PUBLIC char *util_html_escape(const char *s); | |
233 | ||
234 | NSAPI_PUBLIC int util_qtoi(const char *q, const char **p); | |
235 | ||
58
66c22e54aa90
webdav uses the vfs api
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
48
diff
changeset
|
236 | /* path utils */ |
66c22e54aa90
webdav uses the vfs api
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
48
diff
changeset
|
237 | NSAPI_PUBLIC |
66c22e54aa90
webdav uses the vfs api
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
48
diff
changeset
|
238 | sstr_t util_path_append(pool_handle_t *pool, char *path, char *child); |
63
66442f81f823
supports file system ACLs on Solaris
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
62
diff
changeset
|
239 | NSAPI_PUBLIC |
66442f81f823
supports file system ACLs on Solaris
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
62
diff
changeset
|
240 | sstr_t util_path_remove_last(sstr_t path); |
96
0185b13bf41f
added document-root and pfx2dir nametrans safs
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
91
diff
changeset
|
241 | NSAPI_PUBLIC |
0185b13bf41f
added document-root and pfx2dir nametrans safs
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
91
diff
changeset
|
242 | void util_add_ppath(sstr_t root, sstr_t path, pblock *vars); |
58
66c22e54aa90
webdav uses the vfs api
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
48
diff
changeset
|
243 | |
99 | 244 | /* ucx utils */ |
245 | UcxAllocator util_pool_allocator(pool_handle_t *pool); | |
246 | ||
104
a8acbb12f27c
implemented range requests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
99
diff
changeset
|
247 | int util_isdate(char *str); |
a8acbb12f27c
implemented range requests
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
99
diff
changeset
|
248 | |
1 | 249 | /* --- End common function prototypes --- */ |
250 | ||
251 | /* --- Begin Unix-only function prototypes --- */ | |
252 | ||
253 | #ifdef XP_UNIX | |
254 | ||
255 | NSAPI_PUBLIC int INTutil_can_exec(struct stat *finfo, uid_t uid, gid_t gid); | |
256 | ||
257 | NSAPI_PUBLIC | |
258 | struct passwd *INTutil_getpwnam(const char *name, struct passwd *result, | |
259 | char *buffer, int buflen); | |
260 | ||
261 | NSAPI_PUBLIC | |
262 | struct passwd *INTutil_getpwuid(uid_t uid, struct passwd *result, | |
263 | char *buffer, int buflen); | |
264 | ||
265 | NSAPI_PUBLIC pid_t INTutil_waitpid(pid_t pid, int *statptr, int options); | |
266 | ||
267 | #endif /* XP_UNIX */ | |
268 | ||
269 | /* --- End Unix-only function prototypes --- */ | |
270 | ||
271 | /* --- Begin Windows-only function prototypes --- */ | |
272 | ||
273 | #ifdef XP_WIN32 | |
274 | ||
275 | NSAPI_PUBLIC | |
276 | VOID INTutil_delete_directory(char *FileName, BOOL delete_directory); | |
277 | ||
278 | #endif /* XP_WIN32 */ | |
279 | ||
280 | /* --- End Windows-only function prototypes --- */ | |
281 | ||
24
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
282 | #ifdef __cplusplus |
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
283 | } |
1a7853a4257e
removed some NSPR dependencies
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
284 | #endif |
1 | 285 | |
286 | #ifdef __cplusplus | |
287 | ||
288 | NSAPI_PUBLIC char *util_host_port_suffix(char *h); | |
289 | ||
290 | NSAPI_PUBLIC const char *util_host_port_suffix(const char *h); | |
291 | ||
292 | #endif | |
293 | ||
294 | #define util_init_PRNetAddr INTutil_init_PRNetAddr | |
295 | #define util_getline INTutil_getline | |
296 | #define util_env_create INTutil_env_create | |
297 | #define util_env_str INTutil_env_str | |
298 | #define util_env_replace INTutil_env_replace | |
299 | #define util_env_free INTutil_env_free | |
300 | #define util_env_copy INTutil_env_copy | |
301 | #define util_env_find INTutil_env_find | |
302 | #define util_hostname INTutil_hostname | |
303 | #define util_chdir2path INTutil_chdir2path | |
304 | #define util_chdir INTutil_chdir | |
305 | #define util_getcwd INTutil_getcwd | |
306 | #define util_is_mozilla INTutil_is_mozilla | |
307 | #define util_is_url INTutil_is_url | |
308 | #define util_mstr2num INTutil_mstr2num | |
309 | #define util_later_than INTutil_later_than | |
310 | #define util_time_equal INTutil_time_equal | |
311 | #define util_str_time_equal INTutil_str_time_equal | |
312 | #define util_uri_is_evil INTutil_uri_is_evil | |
313 | #define util_uri_is_evil_internal INTutil_uri_is_evil_internal | |
314 | #define util_uri_parse INTutil_uri_parse | |
315 | #ifdef XP_WIN32 | |
316 | #define util_uri_unescape_and_normalize INTutil_uri_unescape_and_normalize | |
317 | #endif /* XP_WIN32 */ | |
318 | #define util_uri_normalize_slashes INTutil_uri_normalize_slashes | |
319 | #define util_uri_unescape INTutil_uri_unescape | |
320 | #define util_uri_unescape_strict INTutil_uri_unescape_strict | |
321 | #define util_uri_unescape_plus INTutil_uri_unescape_plus | |
322 | ||
323 | #define util_uri_escape INTutil_uri_escape | |
324 | #define util_uri_strip_params INTutil_uri_strip_params | |
325 | #define util_url_escape INTutil_url_escape | |
326 | #define util_sh_escape INTutil_sh_escape | |
327 | #define util_mime_separator INTutil_mime_separator | |
328 | #define util_itoa INTutil_itoa | |
329 | #define util_i64toa INTutil_i64toa | |
330 | #define util_vsprintf INTutil_vsprintf | |
331 | #define util_sprintf INTutil_sprintf | |
332 | #define util_vsnprintf INTutil_vsnprintf | |
333 | #define util_snprintf INTutil_snprintf | |
334 | #define util_strftime INTutil_strftime | |
335 | #define util_strcasecmp INTutil_strcasecmp | |
336 | #define util_strncasecmp INTutil_strncasecmp | |
337 | #define util_strcasestr INTutil_strcasestr | |
338 | #define util_strtok INTutil_strtok | |
339 | #define util_localtime INTutil_localtime | |
340 | #define util_ctime INTutil_ctime | |
341 | #define util_strerror INTutil_strerror | |
342 | #define util_gmtime INTutil_gmtime | |
343 | #define util_asctime INTutil_asctime | |
344 | #define util_uuencode INTutil_uuencode | |
345 | #define util_uudecode INTutil_uudecode | |
346 | ||
347 | #ifdef XP_UNIX | |
348 | #define util_can_exec INTutil_can_exec | |
349 | #define util_getpwnam INTutil_getpwnam | |
350 | #define util_getpwuid INTutil_getpwuid | |
351 | #define util_waitpid INTutil_waitpid | |
352 | #endif /* XP_UNIX */ | |
353 | ||
354 | #ifdef XP_WIN32 | |
355 | #define util_delete_directory INTutil_delete_directory | |
356 | #endif /* XP_WIN32 */ | |
357 | ||
358 | #ifdef NEED_STRCASECMP | |
359 | #define util_strcasecmp INTutil_strcasecmp | |
360 | #define strcasecmp INTutil_strcasecmp | |
361 | #endif /* NEED_STRCASECMP */ | |
362 | ||
363 | #ifdef NEED_STRINGS_H /* usually for strcasecmp */ | |
364 | #include <strings.h> | |
365 | #endif | |
366 | ||
367 | #ifdef NEED_STRNCASECMP | |
368 | #define util_strncasecmp INTutil_strncasecmp | |
369 | #define strncasecmp INTutil_strncasecmp | |
370 | #endif /* NEED_STRNCASECMP */ | |
371 | ||
372 | #define util_cookie_find INTutil_cookie_find | |
373 | #define util_cookie_next INTutil_cookie_next | |
374 | #define util_cookie_next_av_pair INTutil_cookie_next_av_pair | |
375 | ||
376 | #define util_random INTutil_random | |
377 | #define util_format_http_version INTutil_format_http_version | |
378 | #define util_getboolean INTutil_getboolean | |
379 | #define util_getinterval INTutil_getinterval | |
380 | ||
381 | #ifdef XP_WIN32 | |
382 | void set_fullpathname(PRBool b); | |
383 | #endif /* XP_WIN32 */ | |
384 | #endif /* INTNSAPI */ | |
385 | ||
386 | #endif /* !BASE_UTIL_H */ | |
387 | ||
388 |