src/server/util/util.c

changeset 113
57e706fed20a
parent 109
8a0a7754f123
child 114
c3a0f1275d71
equal deleted inserted replaced
112:b962d83124bc 113:57e706fed20a
426 util_getpwnam(const char *name, struct passwd *result, char *buffer, 426 util_getpwnam(const char *name, struct passwd *result, char *buffer,
427 int buflen) 427 int buflen)
428 { 428 {
429 struct passwd *rv; 429 struct passwd *rv;
430 430
431 #if defined(AIX) || defined(LINUX) || defined(HPUX) || defined(BSD)
432 errno = getpwnam_r(name, result, buffer, buflen, &rv); 431 errno = getpwnam_r(name, result, buffer, buflen, &rv);
433 if (errno != 0) 432 if (errno != 0)
434 rv = NULL; 433 rv = NULL;
435 #else
436 rv = getpwnam_r(name, result, buffer, buflen);
437 #endif
438 434
439 return rv; 435 return rv;
440 } 436 }
441 #endif 437 #endif
442 438
445 NSAPI_PUBLIC struct passwd * 441 NSAPI_PUBLIC struct passwd *
446 util_getpwuid(uid_t uid, struct passwd *result, char *buffer, int buflen) 442 util_getpwuid(uid_t uid, struct passwd *result, char *buffer, int buflen)
447 { 443 {
448 struct passwd *rv; 444 struct passwd *rv;
449 445
450 #if defined(AIX) || defined(LINUX) || defined(HPUX) || defined(BSD)
451 errno = getpwuid_r(uid, result, buffer, buflen, &rv); 446 errno = getpwuid_r(uid, result, buffer, buflen, &rv);
452 if (errno != 0) 447 if (errno != 0)
453 rv = NULL; 448 rv = NULL;
454 #else
455 rv = getpwuid_r(uid, result, buffer, buflen);
456 #endif
457 449
458 return rv; 450 return rv;
459 } 451 }
460 #endif 452 #endif
461 453
482 sstr_t util_path_append(pool_handle_t *pool, char *path, char *ch) { 474 sstr_t util_path_append(pool_handle_t *pool, char *path, char *ch) {
483 sstr_t parent = sstr(path); 475 sstr_t parent = sstr(path);
484 sstr_t child = sstr(ch); 476 sstr_t child = sstr(ch);
485 sstr_t newstr; 477 sstr_t newstr;
486 sstr_t s; 478 sstr_t s;
487 479 if(parent.ptr[parent.length-1] == '/') {
480 s.length = 0;
481 } else {
482 s = S("/");
483 }
488 484
489 UcxAllocator a = util_pool_allocator(pool); 485 UcxAllocator a = util_pool_allocator(pool);
490 if(s.length == 1) { 486 if(s.length == 1) {
491 newstr = sstrcat_a(&a, 3, parent, s, child); 487 newstr = sstrcat_a(&a, 3, parent, s, child);
492 } else { 488 } else {

mercurial