Lines Matching defs:unc
432 * MUST be called when returned 'unc' is no longer needed.
437 smb_unc_init(const char *path, smb_unc_t *unc)
441 if (path == NULL || unc == NULL || (*path != '\\' && *path != '/'))
444 bzero(unc, sizeof (smb_unc_t));
447 unc->unc_buf = smb_mem_strdup(path);
449 if ((unc->unc_buf = strdup(path)) == NULL)
453 (void) strsubst(unc->unc_buf, '\\', '/');
454 (void) strcanon(unc->unc_buf, "/");
456 unc->unc_server = unc->unc_buf + 1;
457 if (*unc->unc_server == '\0') {
458 smb_unc_free(unc);
462 if ((p = strchr(unc->unc_server, '/')) == NULL) {
463 smb_unc_free(unc);
468 unc->unc_share = p;
470 if (*unc->unc_share == '\0') {
471 smb_unc_free(unc);
475 unc->unc_path = strchr(unc->unc_share, '/');
476 if ((p = unc->unc_path) == NULL)
479 unc->unc_path++;
483 if ((p = strchr(unc->unc_path, '\0')) != NULL) {
492 smb_unc_free(smb_unc_t *unc)
494 if (unc == NULL)
498 smb_mem_free(unc->unc_buf);
500 free(unc->unc_buf);
502 unc->unc_buf = NULL;