src/server/util/util.c

branch
webdav
changeset 338
c62ea2a2133b
parent 285
96e53bd94958
child 382
9e2289c77b04
equal deleted inserted replaced
337:d934c2eb6a76 338:c62ea2a2133b
53 53
54 #include "../daemon/netsite.h" 54 #include "../daemon/netsite.h"
55 #include "../public/nsapi.h" 55 #include "../public/nsapi.h"
56 #include <ucx/string.h> 56 #include <ucx/string.h>
57 #include <ucx/mempool.h> 57 #include <ucx/mempool.h>
58 #include <ucx/utils.h>
58 59
59 #include "pblock.h" 60 #include "pblock.h"
60 #include "util.h" 61 #include "util.h"
61 62
62 #include <openssl/bio.h> 63 #include <openssl/bio.h>
286 va_list args; 287 va_list args;
287 va_start(args, fmt); 288 va_start(args, fmt);
288 return vsnprintf(s, n, fmt, args); 289 return vsnprintf(s, n, fmt, args);
289 } 290 }
290 291
292 NSAPI_PUBLIC int util_vasprintf(pool_handle_t *pool, char **s, const char *fmt,
293 va_list args)
294 {
295 UcxAllocator a = util_pool_allocator(pool);
296 va_list ap;
297 va_copy(ap, args);
298 sstr_t str = ucx_vasprintf(&a, fmt, ap);
299 *s = str.ptr;
300 return str.length;
301 }
302
303 NSAPI_PUBLIC int util_asprintf(pool_handle_t *pool, char **s, const char *fmt, ...)
304 {
305 va_list args;
306 va_start(args, fmt);
307 return util_vasprintf(pool, s, fmt, args);
308 }
309
291 NSAPI_PUBLIC int util_vsprintf(char *s, register const char *fmt, va_list args) 310 NSAPI_PUBLIC int util_vsprintf(char *s, register const char *fmt, va_list args)
292 { 311 {
293 return vsprintf(s, fmt, args); 312 return vsprintf(s, fmt, args);
294 } 313 }
295 314
431 return url; 450 return url;
432 } 451 }
433 } 452 }
434 453
435 NSAPI_PUBLIC char* util_parent_path(const char *path) { 454 NSAPI_PUBLIC char* util_parent_path(const char *path) {
436 char *name = util_resource_name((char*)path); 455 char *name = (char*)util_resource_name((char*)path);
437 size_t namelen = strlen(name); 456 size_t namelen = strlen(name);
438 size_t pathlen = strlen(path); 457 size_t pathlen = strlen(path);
439 size_t parentlen = pathlen - namelen; 458 size_t parentlen = pathlen - namelen;
440 char *parent = MALLOC(parentlen + 1); 459 char *parent = MALLOC(parentlen + 1);
441 memcpy(parent, path, parentlen); 460 memcpy(parent, path, parentlen);

mercurial