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); |