Lines Matching refs:nm

820 sid_format(name_mapping_t *nm)  in sid_format()  argument
826 switch (nm->is_wuser) { in sid_format()
839 len = strlen(nm->sidprefix) + 7 + 3 * sizeof (nm->rid); in sid_format()
844 (void) snprintf(to, len, "%s:%s-%u", typestring, nm->sidprefix, in sid_format()
845 nm->rid); in sid_format()
868 nm2winqn(name_mapping_t *nm, char **winqn) in nm2winqn() argument
876 if (nm->winname == NULL && nm->sidprefix != NULL) { in nm2winqn()
877 *winqn = sid_format(nm); in nm2winqn()
881 switch (nm->is_wuser) { in nm2winqn()
896 if (nm->winname != NULL) in nm2winqn()
897 length += strlen(nm->winname); in nm2winqn()
900 if (nm->windomain == NULL || INHIBITED(nm->winname)) in nm2winqn()
903 length += strlen(nm->windomain) + 1; in nm2winqn()
915 if (nm->winname == NULL) in nm2winqn()
918 (void) strcat(out, nm->winname); in nm2winqn()
919 else if (nm->is_nt4) { in nm2winqn()
920 (void) strcat(out, nm->windomain); in nm2winqn()
922 (void) strcat(out, nm->winname); in nm2winqn()
924 (void) strcat(out, nm->winname); in nm2winqn()
926 (void) strcat(out, nm->windomain); in nm2winqn()
940 nm2unixname(name_mapping_t *nm, char **unixname) in nm2unixname() argument
946 if (nm->unixname == NULL) { in nm2unixname()
947 if (nm->pid == UNDEFINED_UID) in nm2unixname()
950 *unixname = pid_format(nm->pid, nm->is_user); in nm2unixname()
954 if (shell_app(&it, nm->unixname, 0)) in nm2unixname()
958 switch (nm->is_user) { in nm2unixname()
993 name_mapping_t *nm = (name_mapping_t *)malloc(sizeof (name_mapping_t)); in name_mapping_init() local
994 if (nm == NULL) { in name_mapping_init()
998 nm->winname = nm->windomain = nm->unixname = nm->sidprefix = NULL; in name_mapping_init()
999 nm->rid = UNDEFINED_RID; in name_mapping_init()
1000 nm->is_nt4 = B_FALSE; in name_mapping_init()
1001 nm->is_user = IDMAP_UNKNOWN; in name_mapping_init()
1002 nm->is_wuser = IDMAP_UNKNOWN; in name_mapping_init()
1003 nm->direction = IDMAP_DIRECTION_UNDEF; in name_mapping_init()
1004 nm->pid = UNDEFINED_UID; in name_mapping_init()
1005 return (nm); in name_mapping_init()
1010 name_mapping_fini(name_mapping_t *nm) in name_mapping_fini() argument
1013 free(nm->winname); in name_mapping_fini()
1014 free(nm->windomain); in name_mapping_fini()
1015 free(nm->unixname); in name_mapping_fini()
1016 free(nm->sidprefix); in name_mapping_fini()
1018 free(nm); in name_mapping_fini()
1068 name_mapping_format(name_mapping_t *nm, char **out) in name_mapping_format() argument
1077 if (nm2winqn(nm, &winname1) < 0) in name_mapping_format()
1087 if (nm2unixname(nm, &unixname)) { in name_mapping_format()
1097 if (nm->direction == IDMAP_DIRECTION_U2W) { in name_mapping_format()
1102 nm->direction == IDMAP_DIRECTION_BI? "" : "-d", in name_mapping_format()
1191 print_mapping(print_handle_t *pnm, name_mapping_t *nm) in print_mapping() argument
1201 if (nm2winqn(nm, &winname) < 0) in print_mapping()
1203 if (nm2unixname(nm, &unixname) < 0) { in print_mapping()
1210 if (nm->sidprefix == NULL) { in print_mapping()
1215 winname = sid_format(nm); in print_mapping()
1218 unixname = pid_format(nm->pid, nm->is_user); in print_mapping()
1225 dirstring = direction2string(nm->direction); in print_mapping()
1232 if (nm->is_user != IDMAP_YES || nm->is_wuser != IDMAP_YES) { in print_mapping()
1236 } else if (nm->direction == IDMAP_DIRECTION_U2W) { in print_mapping()
1240 } else if (INHIBITED(nm->winname) || INHIBITED(nm->unixname)) { in print_mapping()
1245 if (shell_app(&winname, nm->winname, 1)) in print_mapping()
1248 unixname = INHIBITED(nm->unixname) ? "\"\"" : nm->unixname; in print_mapping()
1272 if (nm->is_user != IDMAP_YES || nm->is_wuser != IDMAP_YES) { in print_mapping()
1278 dirstring = direction2string(nm->direction); in print_mapping()
1280 if ((winname = usermap_cfg_string(nm->winname)) == NULL || in print_mapping()
1281 (unixname = usermap_cfg_string(nm->unixname)) == NULL || in print_mapping()
1282 (windomain = usermap_cfg_string(nm->windomain)) == NULL) { in print_mapping()
1291 if (nm->windomain == NULL) { in print_mapping()
1295 (void) fprintf(f, nm->is_nt4 ? in print_mapping()
1308 if (nm->direction == pnm->last->direction && in print_mapping()
1309 nm->is_user == pnm->last->is_user && in print_mapping()
1311 strcmp_null(pnm->last->unixname, nm->unixname) == 0 && in print_mapping()
1312 strcmp_null(pnm->last->winname, nm->winname) == 0 && in print_mapping()
1313 strcmp_null(pnm->last->windomain, nm->windomain) == 0) { in print_mapping()
1324 if (name_mapping_cpy(pnm->last, nm) < 0) in print_mapping()
1347 name_mapping_t nm; in print_how() local
1380 nm.is_user = rule->is_user; in print_how()
1381 nm.is_wuser = IDMAP_UNKNOWN; in print_how()
1382 nm.direction = rule->direction; in print_how()
1383 nm.winname = rule->winname; in print_how()
1384 nm.windomain = rule->windomain; in print_how()
1385 nm.unixname = rule->unixname; in print_how()
1386 nm.is_nt4 = rule->is_nt4; in print_how()
1387 if (name_mapping_format(&nm, &rule_text) == 0) { in print_how()
1455 name_mapping_t nm; in print_error_info() local
1458 (void) memset(&nm, 0, sizeof (nm)); in print_error_info()
1492 nm.is_user = rule->is_user; in print_error_info()
1493 nm.is_wuser = IDMAP_UNKNOWN; in print_error_info()
1494 nm.direction = rule->direction; in print_error_info()
1495 nm.winname = rule->winname; in print_error_info()
1496 nm.windomain = rule->windomain; in print_error_info()
1497 nm.unixname = rule->unixname; in print_error_info()
1498 nm.is_nt4 = rule->is_nt4; in print_error_info()
1499 if (name_mapping_format(&nm, &rule_text) == 0) { in print_error_info()
1569 name_mapping_t *nm = name_mapping_init(); in do_dump() local
1570 if (nm == NULL) { in do_dump()
1576 &nm->sidprefix, &nm->rid, &nm->pid, in do_dump()
1577 &nm->winname, &nm->windomain, in do_dump()
1578 &nm->unixname, &is_user, &is_wuser, in do_dump()
1579 &nm->direction, &info); in do_dump()
1581 nm->is_user = is_user ? IDMAP_YES : IDMAP_NO; in do_dump()
1582 nm->is_wuser = is_wuser ? IDMAP_YES : IDMAP_NO; in do_dump()
1585 (void) print_mapping(ph, nm); in do_dump()
1589 name_mapping_fini(nm); in do_dump()
1863 ucp_line2nm(char *line, cmd_pos_t *pos, name_mapping_t *nm) in ucp_line2nm() argument
1914 nm->windomain = token; in ucp_line2nm()
1915 nm->winname = token2; in ucp_line2nm()
1916 nm->is_nt4 = 1; in ucp_line2nm()
1918 nm->windomain = token2; in ucp_line2nm()
1919 nm->winname = token; in ucp_line2nm()
1920 nm->is_nt4 = 0; in ucp_line2nm()
1924 nm->windomain = NULL; in ucp_line2nm()
1925 nm->winname = token; in ucp_line2nm()
1926 nm->is_nt4 = 0; in ucp_line2nm()
1934 nm->direction = IDMAP_DIRECTION_BI; in ucp_line2nm()
1937 nm->direction = IDMAP_DIRECTION_U2W; in ucp_line2nm()
1940 nm->direction = IDMAP_DIRECTION_W2U; in ucp_line2nm()
1943 nm->direction = IDMAP_DIRECTION_BI; in ucp_line2nm()
1974 nm->unixname = token; in ucp_line2nm()
1998 sup_line2nm(char *line, cmd_pos_t *pos, name_mapping_t *nm) in sup_line2nm() argument
2029 nm->is_nt4 = 0; in sup_line2nm()
2030 nm->direction = IDMAP_DIRECTION_W2U; in sup_line2nm()
2032 nm->windomain = NULL; in sup_line2nm()
2033 nm->winname = token; in sup_line2nm()
2034 nm->unixname = strndup(unixname, unixname_l); in sup_line2nm()
2035 if (nm->unixname == NULL) in sup_line2nm()
2044 line2nm(char *line, cmd_pos_t *pos, name_mapping_t *nm, format_t f) in line2nm() argument
2051 return (ucp_line2nm(line, pos, nm)); in line2nm()
2053 return (sup_line2nm(line, pos, nm)); in line2nm()
2115 name_mapping_t *nm; in do_import() local
2168 nm = name_mapping_init(); in do_import()
2169 if (nm == NULL) { in do_import()
2174 rc = line2nm(line2, &pos2, nm, format); in do_import()
2178 name_mapping_fini(nm); in do_import()
2182 stat = idmap_udt_add_namerule(udt, nm->windomain, in do_import()
2183 nm->is_user ? B_TRUE : B_FALSE, in do_import()
2184 nm->is_wuser ? B_TRUE : B_FALSE, in do_import()
2185 nm->winname, in do_import()
2186 nm->unixname, nm->is_nt4, nm->direction); in do_import()
2197 name_mapping_fini(nm); in do_import()
2227 name_mapping_t *nm; in list_name_mappings() local
2246 nm = name_mapping_init(); in list_name_mappings()
2247 if (nm == NULL) { in list_name_mappings()
2252 stat = idmap_iter_next_namerule(ihandle, &nm->windomain, in list_name_mappings()
2253 &nm->winname, &nm->unixname, &is_user, &is_wuser, in list_name_mappings()
2254 &nm->is_nt4, &nm->direction); in list_name_mappings()
2256 nm->is_user = is_user ? IDMAP_YES : IDMAP_NO; in list_name_mappings()
2257 nm->is_wuser = is_wuser ? IDMAP_YES : IDMAP_NO; in list_name_mappings()
2258 (void) print_mapping(ph, nm); in list_name_mappings()
2261 name_mapping_fini(nm); in list_name_mappings()
2406 name2parts(char *name, name_mapping_t *nm, cmd_pos_t *pos) in name2parts() argument
2419 if (nm->winname != NULL && nm->is_wuser != IDMAP_UNKNOWN) in name2parts()
2420 code = nm->is_wuser == IDMAP_YES ? TYPE_UU : TYPE_UG; in name2parts()
2421 else if (nm->unixname != NULL || in name2parts()
2436 nm->is_wuser = IDMAP_YES; in name2parts()
2438 nm->is_wuser = IDMAP_NO; in name2parts()
2441 nm->is_user = IDMAP_YES; in name2parts()
2443 nm->is_user = IDMAP_NO; in name2parts()
2447 if (nm->winname != NULL || nm->windomain != NULL) in name2parts()
2452 nm->winname = (char *)malloc(length); in name2parts()
2453 (void) strncpy(nm->winname, name, length - 1); in name2parts()
2454 nm->winname[length - 1] = '\0'; in name2parts()
2455 nm->windomain = strdup(it + 1); in name2parts()
2458 nm->windomain = (char *)malloc(length); in name2parts()
2459 (void) strncpy(nm->windomain, name, length - 1); in name2parts()
2460 nm->windomain[length - 1] = '\0'; in name2parts()
2461 nm->winname = strdup(it + 1); in name2parts()
2462 nm->is_nt4 = B_TRUE; in name2parts()
2464 nm->winname = strdup(name); in name2parts()
2471 if (nm->unixname != NULL) in name2parts()
2475 nm->unixname = strdup("\"\""); in name2parts()
2477 nm->unixname = strdup(name); in name2parts()
2483 if (!sid_convert(name, &nm->sidprefix, &nm->rid, pos)) in name2parts()
2494 if (!pid_convert(name, &nm->pid, code, pos)) in name2parts()
2512 name_mapping_t *nm; in args2nm() local
2514 nm = name_mapping_init(); in args2nm()
2515 if (nm == NULL) in args2nm()
2519 code = name2parts(argv[i % 2], nm, pos); in args2nm()
2542 if (argc == 2 && nm->winname == NULL) { in args2nm()
2546 if (argc == 2 && nm->unixname == NULL) { in args2nm()
2550 if (argc == 1 && nm->winname == NULL && nm->unixname == NULL) { in args2nm()
2557 return (nm); in args2nm()
2559 name_mapping_fini(nm); in args2nm()
2569 name_mapping_t *nm; in do_add_name_mapping() local
2587 nm = args2nm(&is_first_win, argc, argv, pos); in do_add_name_mapping()
2588 if (nm == NULL) in do_add_name_mapping()
2592 nm->direction = is_first_win in do_add_name_mapping()
2596 nm->direction = IDMAP_DIRECTION_BI; in do_add_name_mapping()
2601 name_mapping_fini(nm); in do_add_name_mapping()
2607 if ((is_wuser == IDMAP_YES && nm->is_wuser == IDMAP_NO) || in do_add_name_mapping()
2608 (is_wuser == IDMAP_NO && nm->is_wuser == IDMAP_YES)) in do_add_name_mapping()
2611 stat = idmap_udt_add_namerule(udt, nm->windomain, in do_add_name_mapping()
2612 nm->is_user ? B_TRUE : B_FALSE, in do_add_name_mapping()
2614 nm->winname, nm->unixname, nm->is_nt4, nm->direction); in do_add_name_mapping()
2623 (void) print_mapping(ph, nm); in do_add_name_mapping()
2637 name_mapping_fini(nm); in do_add_name_mapping()
2647 name_mapping_t *nm; in do_remove_name_mapping() local
2697 nm = args2nm(&is_first_win, argc, argv, pos); in do_remove_name_mapping()
2698 if (nm == NULL) in do_remove_name_mapping()
2708 nm->direction = is_first_win in do_remove_name_mapping()
2712 nm->direction = is_first_win in do_remove_name_mapping()
2716 nm->direction = IDMAP_DIRECTION_UNDEF; in do_remove_name_mapping()
2719 name_mapping_fini(nm); in do_remove_name_mapping()
2724 if ((is_wuser == IDMAP_YES && nm->is_wuser == IDMAP_NO) || in do_remove_name_mapping()
2725 (is_wuser == IDMAP_NO && nm->is_wuser == IDMAP_YES)) in do_remove_name_mapping()
2729 nm->is_user ? B_TRUE : B_FALSE, in do_remove_name_mapping()
2731 nm->windomain, nm->winname, nm->unixname, nm->direction); in do_remove_name_mapping()
2746 name_mapping_fini(nm); in do_remove_name_mapping()
2817 nm2type(name_mapping_t *nm, int type, char **to) in nm2type() argument
2823 if (nm->sidprefix == NULL) in nm2type()
2825 *to = sid_format(nm); in nm2type()
2830 return (nm2winqn(nm, to)); in nm2type()
2834 *to = pid_format(nm->pid, nm->is_user); in nm2type()
2842 return (nm2unixname(nm, to)); in nm2type()
2861 name_mapping_t *nm = NULL; in do_show_mapping() local
2886 nm = name_mapping_init(); in do_show_mapping()
2887 if (nm == NULL) in do_show_mapping()
2890 type_from = name2parts(argv[0], nm, pos); in do_show_mapping()
2912 nm->is_wuser = IDMAP_YES; in do_show_mapping()
2914 nm->is_wuser = IDMAP_NO; in do_show_mapping()
2916 nm->is_wuser = IDMAP_UNKNOWN; in do_show_mapping()
2919 nm->is_user = IDMAP_YES; in do_show_mapping()
2921 nm->is_user = IDMAP_NO; in do_show_mapping()
2948 nm->sidprefix, in do_show_mapping()
2949 &nm->rid, in do_show_mapping()
2950 nm->winname, in do_show_mapping()
2951 nm->windomain, in do_show_mapping()
2953 &nm->is_user, &nm->is_wuser, in do_show_mapping()
2954 &nm->pid, in do_show_mapping()
2955 &nm->unixname, in do_show_mapping()
2956 &nm->direction, in do_show_mapping()
2960 &nm->pid, in do_show_mapping()
2961 nm->unixname, in do_show_mapping()
2963 nm->is_user, &nm->is_wuser, in do_show_mapping()
2964 &nm->sidprefix, in do_show_mapping()
2965 &nm->rid, in do_show_mapping()
2966 &nm->winname, in do_show_mapping()
2967 &nm->windomain, in do_show_mapping()
2968 &nm->direction, in do_show_mapping()
2995 nm->sidprefix, in do_show_mapping()
2996 nm->rid, in do_show_mapping()
3003 nm->sidprefix, in do_show_mapping()
3004 nm->rid, in do_show_mapping()
3011 nm->sidprefix, in do_show_mapping()
3012 nm->rid, in do_show_mapping()
3014 &nm->pid, in do_show_mapping()
3015 &nm->is_user, in do_show_mapping()
3020 nm->pid, in do_show_mapping()
3022 &nm->sidprefix, in do_show_mapping()
3023 &nm->rid, in do_show_mapping()
3028 (gid_t)nm->pid, in do_show_mapping()
3030 &nm->sidprefix, in do_show_mapping()
3031 &nm->rid, in do_show_mapping()
3064 nm->pid = uid; in do_show_mapping()
3066 nm->pid = (uid_t)gid; in do_show_mapping()
3086 type_to == TYPE_PID) && nm->pid == UNDEFINED_UID) in do_show_mapping()
3089 if (nm2type(nm, type_from, &fromname) < 0) in do_show_mapping()
3092 if (nm2type(nm, type_to, &toname) < 0) { in do_show_mapping()
3116 if (nm != NULL) in do_show_mapping()
3117 name_mapping_fini(nm); in do_show_mapping()
3218 name_mapping_t *nm; in do_set_namemap() local
3235 nm = args2nm(&is_first_win, argc, argv, pos); in do_set_namemap()
3236 if (nm == NULL) in do_set_namemap()
3242 nm->direction = is_first_win ? IDMAP_DIRECTION_W2U in do_set_namemap()
3245 if (init_nm_command(user, passwd, f[a_FLAG], nm->windomain, in do_set_namemap()
3246 nm->direction, pos) < 0) in do_set_namemap()
3250 stat = idmap_set_namemap(namemaps.handle, nm->winname, nm->unixname, in do_set_namemap()
3251 nm->is_user, nm->is_wuser, nm->direction); in do_set_namemap()
3267 name_mapping_fini(nm); in do_set_namemap()
3275 name_mapping_t *nm; in do_unset_namemap() local
3292 nm = args2nm(&is_first_win, 1, argv, pos); in do_unset_namemap()
3293 if (nm == NULL) in do_unset_namemap()
3299 nm->direction = is_first_win ? IDMAP_DIRECTION_W2U in do_unset_namemap()
3311 name_mapping_fini(nm); in do_unset_namemap()
3314 nm->is_user = IDMAP_YES; in do_unset_namemap()
3317 nm->is_user = IDMAP_NO; in do_unset_namemap()
3329 if (init_nm_command(user, passwd, f[a_FLAG], nm->windomain, in do_unset_namemap()
3330 nm->direction, pos) < 0) in do_unset_namemap()
3333 stat = idmap_unset_namemap(namemaps.handle, nm->winname, nm->unixname, in do_unset_namemap()
3334 nm->is_user, nm->is_wuser, nm->direction); in do_unset_namemap()
3351 name_mapping_fini(nm); in do_unset_namemap()
3360 name_mapping_t *nm; in do_get_namemap() local
3380 nm = args2nm(&is_first_win, argc, argv, pos); in do_get_namemap()
3381 if (nm == NULL) in do_get_namemap()
3384 nm->direction = is_first_win ? IDMAP_DIRECTION_W2U in do_get_namemap()
3388 if (nm->is_user == IDMAP_YES) { in do_get_namemap()
3389 unixuser = strdup(nm->unixname); in do_get_namemap()
3394 } else if (nm->is_user == IDMAP_NO) { in do_get_namemap()
3395 unixgroup = strdup(nm->unixname); in do_get_namemap()
3402 if (init_nm_command(NULL, NULL, NULL, nm->windomain, in do_get_namemap()
3403 nm->direction, pos) < 0) in do_get_namemap()
3406 stat = idmap_get_namemap(namemaps.handle, &is_source_ad, &nm->winname, in do_get_namemap()
3407 &nm->windomain, &nm->is_wuser, &unixuser, &unixgroup); in do_get_namemap()
3416 if (nm2winqn(nm, &winname) < 0) in do_get_namemap()
3435 if (nm2unixname(nm, &unixname) < 0) in do_get_namemap()
3438 if (nm->winname == NULL) in do_get_namemap()
3458 name_mapping_fini(nm); in do_get_namemap()