関数 | |
enum nss_status | _nss_winbind_getgrent_r (struct group *, char *, size_t, int *) |
enum nss_status | _nss_winbind_getgrnam_r (const char *, struct group *, char *, size_t, int *) |
enum nss_status | _nss_winbind_getgrgid_r (gid_t gid, struct group *, char *, size_t, int *) |
enum nss_status | _nss_winbind_setgrent (void) |
enum nss_status | _nss_winbind_endgrent (void) |
enum nss_status | _nss_winbind_getpwent_r (struct passwd *, char *, size_t, int *) |
enum nss_status | _nss_winbind_getpwnam_r (const char *, struct passwd *, char *, size_t, int *) |
enum nss_status | _nss_winbind_getpwuid_r (gid_t gid, struct passwd *, char *, size_t, int *) |
enum nss_status | _nss_winbind_setpwent (void) |
enum nss_status | _nss_winbind_endpwent (void) |
NSS_METHOD_PROTOTYPE (__nss_compat_getgrnam_r) | |
NSS_METHOD_PROTOTYPE (__nss_compat_getgrgid_r) | |
NSS_METHOD_PROTOTYPE (__nss_compat_getgrent_r) | |
NSS_METHOD_PROTOTYPE (__nss_compat_setgrent) | |
NSS_METHOD_PROTOTYPE (__nss_compat_endgrent) | |
NSS_METHOD_PROTOTYPE (__nss_compat_getpwnam_r) | |
NSS_METHOD_PROTOTYPE (__nss_compat_getpwuid_r) | |
NSS_METHOD_PROTOTYPE (__nss_compat_getpwent_r) | |
NSS_METHOD_PROTOTYPE (__nss_compat_setpwent) | |
NSS_METHOD_PROTOTYPE (__nss_compat_endpwent) | |
ns_mtab * | nss_module_register (const char *source, unsigned int *mtabsize, nss_module_unregister_fn *unreg) |
変数 | |
static ns_mtab | methods [] |
NSS_STATUS _nss_winbind_getgrent_r | ( | struct group * | , | |
char * | , | |||
size_t | , | |||
int * | ||||
) |
winbind_nss_linux.c の 764 行で定義されています。
参照先 winbind_getgrent()・WINBINDD_GETGRENT.
参照元 _nss_winbind_getgrent_solwrap()・netbsdwinbind_getgrent()・netbsdwinbind_getgrent_r().
00766 { 00767 return winbind_getgrent(WINBINDD_GETGRENT, result, buffer, buflen, errnop); 00768 }
NSS_STATUS _nss_winbind_getgrnam_r | ( | const char * | , | |
struct group * | , | |||
char * | , | |||
size_t | , | |||
int * | ||||
) |
winbind_nss_linux.c の 780 行で定義されています。
参照先 winbindd_response::data・errno・winbindd_response::extra_data・fill_grent()・fprintf()・free_response()・winbindd_response::gr・nss_err_str()・NSS_STATUS_SUCCESS・NSS_STATUS_TRYAGAIN・WINBINDD_GETGRNAM・winbindd_request_response().
参照元 _nss_winbind_getgrnam_solwrap()・netbsdwinbind_getgrnam()・netbsdwinbind_getgrnam_r().
00783 { 00784 NSS_STATUS ret; 00785 static struct winbindd_response response; 00786 struct winbindd_request request; 00787 static int keep_response; 00788 00789 #ifdef DEBUG_NSS 00790 fprintf(stderr, "[%5d]: getgrnam %s\n", getpid(), name); 00791 #endif 00792 00793 /* If our static buffer needs to be expanded we are called again */ 00794 00795 if (!keep_response) { 00796 00797 /* Call for the first time */ 00798 00799 ZERO_STRUCT(request); 00800 ZERO_STRUCT(response); 00801 00802 strncpy(request.data.groupname, name, 00803 sizeof(request.data.groupname)); 00804 request.data.groupname 00805 [sizeof(request.data.groupname) - 1] = '\0'; 00806 00807 ret = winbindd_request_response(WINBINDD_GETGRNAM, &request, &response); 00808 00809 if (ret == NSS_STATUS_SUCCESS) { 00810 ret = fill_grent(result, &response.data.gr, 00811 (char *)response.extra_data.data, 00812 &buffer, &buflen); 00813 00814 if (ret == NSS_STATUS_TRYAGAIN) { 00815 keep_response = True; 00816 *errnop = errno = ERANGE; 00817 goto done; 00818 } 00819 } 00820 00821 } else { 00822 00823 /* We've been called again */ 00824 00825 ret = fill_grent(result, &response.data.gr, 00826 (char *)response.extra_data.data, &buffer, 00827 &buflen); 00828 00829 if (ret == NSS_STATUS_TRYAGAIN) { 00830 keep_response = True; 00831 *errnop = errno = ERANGE; 00832 goto done; 00833 } 00834 00835 keep_response = False; 00836 *errnop = 0; 00837 } 00838 00839 free_response(&response); 00840 done: 00841 #ifdef DEBUG_NSS 00842 fprintf(stderr, "[%5d]: getgrnam %s returns %s (%d)\n", getpid(), 00843 name, nss_err_str(ret), ret); 00844 #endif 00845 return ret; 00846 }
NSS_STATUS _nss_winbind_getgrgid_r | ( | gid_t | gid, | |
struct group * | , | |||
char * | , | |||
size_t | , | |||
int * | ||||
) |
winbind_nss_linux.c の 851 行で定義されています。
参照先 winbindd_response::data・errno・winbindd_response::extra_data・fill_grent()・fprintf()・free_response()・winbindd_response::gr・nss_err_str()・NSS_STATUS_SUCCESS・NSS_STATUS_TRYAGAIN・WINBINDD_GETGRGID・winbindd_request_response().
参照元 _nss_winbind_getgrgid_solwrap()・netbsdwinbind_getgrgid()・netbsdwinbind_getgrgid_r().
00854 { 00855 NSS_STATUS ret; 00856 static struct winbindd_response response; 00857 struct winbindd_request request; 00858 static int keep_response; 00859 00860 #ifdef DEBUG_NSS 00861 fprintf(stderr, "[%5d]: getgrgid %d\n", getpid(), gid); 00862 #endif 00863 00864 /* If our static buffer needs to be expanded we are called again */ 00865 00866 if (!keep_response) { 00867 00868 /* Call for the first time */ 00869 00870 ZERO_STRUCT(request); 00871 ZERO_STRUCT(response); 00872 00873 request.data.gid = gid; 00874 00875 ret = winbindd_request_response(WINBINDD_GETGRGID, &request, &response); 00876 00877 if (ret == NSS_STATUS_SUCCESS) { 00878 00879 ret = fill_grent(result, &response.data.gr, 00880 (char *)response.extra_data.data, 00881 &buffer, &buflen); 00882 00883 if (ret == NSS_STATUS_TRYAGAIN) { 00884 keep_response = True; 00885 *errnop = errno = ERANGE; 00886 goto done; 00887 } 00888 } 00889 00890 } else { 00891 00892 /* We've been called again */ 00893 00894 ret = fill_grent(result, &response.data.gr, 00895 (char *)response.extra_data.data, &buffer, 00896 &buflen); 00897 00898 if (ret == NSS_STATUS_TRYAGAIN) { 00899 keep_response = True; 00900 *errnop = errno = ERANGE; 00901 goto done; 00902 } 00903 00904 keep_response = False; 00905 *errnop = 0; 00906 } 00907 00908 free_response(&response); 00909 done: 00910 #ifdef DEBUG_NSS 00911 fprintf(stderr, "[%5d]: getgrgid %d returns %s (%d)\n", getpid(), 00912 (unsigned int)gid, nss_err_str(ret), ret); 00913 #endif 00914 return ret; 00915 }
NSS_STATUS _nss_winbind_setgrent | ( | void | ) |
winbind_nss_linux.c の 621 行で定義されています。
参照先 fprintf()・free_response()・getgrent_response・ndx_gr_cache・nss_err_str()・num_gr_cache・winbindd_request_response()・WINBINDD_SETGRENT.
参照元 _nss_winbind_setgrent_solwrap()・netbsdwinbind_setgrent().
00622 { 00623 NSS_STATUS ret; 00624 #ifdef DEBUG_NSS 00625 fprintf(stderr, "[%5d]: setgrent\n", getpid()); 00626 #endif 00627 00628 if (num_gr_cache > 0) { 00629 ndx_gr_cache = num_gr_cache = 0; 00630 free_response(&getgrent_response); 00631 } 00632 00633 ret = winbindd_request_response(WINBINDD_SETGRENT, NULL, NULL); 00634 #ifdef DEBUG_NSS 00635 fprintf(stderr, "[%5d]: setgrent returns %s (%d)\n", getpid(), 00636 nss_err_str(ret), ret); 00637 #endif 00638 return ret; 00639 }
NSS_STATUS _nss_winbind_endgrent | ( | void | ) |
winbind_nss_linux.c の 644 行で定義されています。
参照先 fprintf()・free_response()・getgrent_response・ndx_gr_cache・nss_err_str()・num_gr_cache・WINBINDD_ENDGRENT・winbindd_request_response().
参照元 _nss_winbind_endgrent_solwrap()・netbsdwinbind_endgrent().
00645 { 00646 NSS_STATUS ret; 00647 #ifdef DEBUG_NSS 00648 fprintf(stderr, "[%5d]: endgrent\n", getpid()); 00649 #endif 00650 00651 if (num_gr_cache > 0) { 00652 ndx_gr_cache = num_gr_cache = 0; 00653 free_response(&getgrent_response); 00654 } 00655 00656 ret = winbindd_request_response(WINBINDD_ENDGRENT, NULL, NULL); 00657 #ifdef DEBUG_NSS 00658 fprintf(stderr, "[%5d]: endgrent returns %s (%d)\n", getpid(), 00659 nss_err_str(ret), ret); 00660 #endif 00661 return ret; 00662 }
NSS_STATUS _nss_winbind_getpwent_r | ( | struct passwd * | , | |
char * | , | |||
size_t | , | |||
int * | ||||
) |
winbind_nss_linux.c の 395 行で定義されています。
参照先 winbindd_response::data・winbindd_request::data・errno・winbindd_response::extra_data・fill_pwent()・fprintf()・free_response()・getpwent_response・ndx_pw_cache・nss_err_str()・NSS_STATUS_NOTFOUND・NSS_STATUS_SUCCESS・NSS_STATUS_TRYAGAIN・winbindd_response::num_entries・winbindd_request::num_entries・num_pw_cache・WINBINDD_GETPWENT・winbindd_request_response().
参照元 _nss_winbind_getpwent_solwrap()・netbsdwinbind_getpwent()・netbsdwinbind_getpwent_r().
00397 { 00398 NSS_STATUS ret; 00399 struct winbindd_request request; 00400 static int called_again; 00401 00402 #ifdef DEBUG_NSS 00403 fprintf(stderr, "[%5d]: getpwent\n", getpid()); 00404 #endif 00405 00406 /* Return an entry from the cache if we have one, or if we are 00407 called again because we exceeded our static buffer. */ 00408 00409 if ((ndx_pw_cache < num_pw_cache) || called_again) { 00410 goto return_result; 00411 } 00412 00413 /* Else call winbindd to get a bunch of entries */ 00414 00415 if (num_pw_cache > 0) { 00416 free_response(&getpwent_response); 00417 } 00418 00419 ZERO_STRUCT(request); 00420 ZERO_STRUCT(getpwent_response); 00421 00422 request.data.num_entries = MAX_GETPWENT_USERS; 00423 00424 ret = winbindd_request_response(WINBINDD_GETPWENT, &request, 00425 &getpwent_response); 00426 00427 if (ret == NSS_STATUS_SUCCESS) { 00428 struct winbindd_pw *pw_cache; 00429 00430 /* Fill cache */ 00431 00432 ndx_pw_cache = 0; 00433 num_pw_cache = getpwent_response.data.num_entries; 00434 00435 /* Return a result */ 00436 00437 return_result: 00438 00439 pw_cache = (struct winbindd_pw *) 00440 getpwent_response.extra_data.data; 00441 00442 /* Check data is valid */ 00443 00444 if (pw_cache == NULL) { 00445 ret = NSS_STATUS_NOTFOUND; 00446 goto done; 00447 } 00448 00449 ret = fill_pwent(result, &pw_cache[ndx_pw_cache], 00450 &buffer, &buflen); 00451 00452 /* Out of memory - try again */ 00453 00454 if (ret == NSS_STATUS_TRYAGAIN) { 00455 called_again = True; 00456 *errnop = errno = ERANGE; 00457 goto done; 00458 } 00459 00460 *errnop = errno = 0; 00461 called_again = False; 00462 ndx_pw_cache++; 00463 00464 /* If we've finished with this lot of results free cache */ 00465 00466 if (ndx_pw_cache == num_pw_cache) { 00467 ndx_pw_cache = num_pw_cache = 0; 00468 free_response(&getpwent_response); 00469 } 00470 } 00471 done: 00472 #ifdef DEBUG_NSS 00473 fprintf(stderr, "[%5d]: getpwent returns %s (%d)\n", getpid(), 00474 nss_err_str(ret), ret); 00475 #endif 00476 return ret; 00477 }
NSS_STATUS _nss_winbind_getpwnam_r | ( | const char * | , | |
struct passwd * | , | |||
char * | , | |||
size_t | , | |||
int * | ||||
) |
winbind_nss_linux.c の 545 行で定義されています。
参照先 winbindd_response::data・winbindd_request::data・errno・fill_pwent()・fprintf()・free_response()・nss_err_str()・NSS_STATUS_SUCCESS・NSS_STATUS_TRYAGAIN・winbindd_response::pw・winbindd_request::username・WINBINDD_GETPWNAM・winbindd_request_response().
参照元 _nss_winbind_getpwnam_solwrap()・netbsdwinbind_getpwnam()・netbsdwinbind_getpwnam_r().
00547 { 00548 NSS_STATUS ret; 00549 static struct winbindd_response response; 00550 struct winbindd_request request; 00551 static int keep_response; 00552 00553 #ifdef DEBUG_NSS 00554 fprintf(stderr, "[%5d]: getpwnam %s\n", getpid(), name); 00555 #endif 00556 00557 /* If our static buffer needs to be expanded we are called again */ 00558 00559 if (!keep_response) { 00560 00561 /* Call for the first time */ 00562 00563 ZERO_STRUCT(response); 00564 ZERO_STRUCT(request); 00565 00566 strncpy(request.data.username, name, 00567 sizeof(request.data.username) - 1); 00568 request.data.username 00569 [sizeof(request.data.username) - 1] = '\0'; 00570 00571 ret = winbindd_request_response(WINBINDD_GETPWNAM, &request, &response); 00572 00573 if (ret == NSS_STATUS_SUCCESS) { 00574 ret = fill_pwent(result, &response.data.pw, &buffer, 00575 &buflen); 00576 00577 if (ret == NSS_STATUS_TRYAGAIN) { 00578 keep_response = True; 00579 *errnop = errno = ERANGE; 00580 goto done; 00581 } 00582 } 00583 00584 } else { 00585 00586 /* We've been called again */ 00587 00588 ret = fill_pwent(result, &response.data.pw, &buffer, &buflen); 00589 00590 if (ret == NSS_STATUS_TRYAGAIN) { 00591 keep_response = True; 00592 *errnop = errno = ERANGE; 00593 goto done; 00594 } 00595 00596 keep_response = False; 00597 *errnop = errno = 0; 00598 } 00599 00600 free_response(&response); 00601 done: 00602 #ifdef DEBUG_NSS 00603 fprintf(stderr, "[%5d]: getpwnam %s returns %s (%d)\n", getpid(), 00604 name, nss_err_str(ret), ret); 00605 #endif 00606 return ret; 00607 }
enum nss_status _nss_winbind_getpwuid_r | ( | gid_t | gid, | |
struct passwd * | , | |||
char * | , | |||
size_t | , | |||
int * | ||||
) |
NSS_STATUS _nss_winbind_setpwent | ( | void | ) |
winbind_nss_linux.c の 349 行で定義されています。
参照先 fprintf()・free_response()・getpwent_response・ndx_pw_cache・nss_err_str()・num_pw_cache・winbindd_request_response()・WINBINDD_SETPWENT.
参照元 _nss_winbind_setpwent_solwrap()・netbsdwinbind_setpwent().
00350 { 00351 NSS_STATUS ret; 00352 #ifdef DEBUG_NSS 00353 fprintf(stderr, "[%5d]: setpwent\n", getpid()); 00354 #endif 00355 00356 if (num_pw_cache > 0) { 00357 ndx_pw_cache = num_pw_cache = 0; 00358 free_response(&getpwent_response); 00359 } 00360 00361 ret = winbindd_request_response(WINBINDD_SETPWENT, NULL, NULL); 00362 #ifdef DEBUG_NSS 00363 fprintf(stderr, "[%5d]: setpwent returns %s (%d)\n", getpid(), 00364 nss_err_str(ret), ret); 00365 #endif 00366 return ret; 00367 }
NSS_STATUS _nss_winbind_endpwent | ( | void | ) |
winbind_nss_linux.c の 372 行で定義されています。
参照先 fprintf()・free_response()・getpwent_response・ndx_pw_cache・nss_err_str()・num_pw_cache・WINBINDD_ENDPWENT・winbindd_request_response().
参照元 _nss_winbind_endpwent_solwrap()・netbsdwinbind_endpwent().
00373 { 00374 NSS_STATUS ret; 00375 #ifdef DEBUG_NSS 00376 fprintf(stderr, "[%5d]: endpwent\n", getpid()); 00377 #endif 00378 00379 if (num_pw_cache > 0) { 00380 ndx_pw_cache = num_pw_cache = 0; 00381 free_response(&getpwent_response); 00382 } 00383 00384 ret = winbindd_request_response(WINBINDD_ENDPWENT, NULL, NULL); 00385 #ifdef DEBUG_NSS 00386 fprintf(stderr, "[%5d]: endpwent returns %s (%d)\n", getpid(), 00387 nss_err_str(ret), ret); 00388 #endif 00389 return ret; 00390 }
NSS_METHOD_PROTOTYPE | ( | __nss_compat_getgrnam_r | ) |
NSS_METHOD_PROTOTYPE | ( | __nss_compat_getgrgid_r | ) |
NSS_METHOD_PROTOTYPE | ( | __nss_compat_getgrent_r | ) |
NSS_METHOD_PROTOTYPE | ( | __nss_compat_setgrent | ) |
NSS_METHOD_PROTOTYPE | ( | __nss_compat_endgrent | ) |
NSS_METHOD_PROTOTYPE | ( | __nss_compat_getpwnam_r | ) |
NSS_METHOD_PROTOTYPE | ( | __nss_compat_getpwuid_r | ) |
NSS_METHOD_PROTOTYPE | ( | __nss_compat_getpwent_r | ) |
NSS_METHOD_PROTOTYPE | ( | __nss_compat_setpwent | ) |
NSS_METHOD_PROTOTYPE | ( | __nss_compat_endpwent | ) |
ns_mtab* nss_module_register | ( | const char * | source, | |
unsigned int * | mtabsize, | |||
nss_module_unregister_fn * | unreg | |||
) |
winbind_nss_freebsd.c の 75 行で定義されています。
参照先 methods.
00077 { 00078 *mtabsize = sizeof(methods)/sizeof(methods[0]); 00079 *unreg = NULL; 00080 return (methods); 00081 }
ns_mtab methods[] [static] |
初期値:
{ { NSDB_GROUP, "getgrnam_r", __nss_compat_getgrnam_r, _nss_winbind_getgrnam_r }, { NSDB_GROUP, "getgrgid_r", __nss_compat_getgrgid_r, _nss_winbind_getgrgid_r }, { NSDB_GROUP, "getgrent_r", __nss_compat_getgrent_r, _nss_winbind_getgrent_r }, { NSDB_GROUP, "endgrent", __nss_compat_setgrent, _nss_winbind_setgrent }, { NSDB_GROUP, "setgrent", __nss_compat_endgrent, _nss_winbind_endgrent }, { NSDB_PASSWD, "getpwnam_r", __nss_compat_getpwnam_r, _nss_winbind_getpwnam_r }, { NSDB_PASSWD, "getpwuid_r", __nss_compat_getpwuid_r, _nss_winbind_getpwuid_r }, { NSDB_PASSWD, "getpwent_r", __nss_compat_getpwent_r, _nss_winbind_getpwent_r }, { NSDB_PASSWD, "endpwent", __nss_compat_setpwent, _nss_winbind_setpwent }, { NSDB_PASSWD, "setpwent", __nss_compat_endpwent, _nss_winbind_endpwent }, }
winbind_nss_freebsd.c の 59 行で定義されています。
参照元 account_lockout_policy_handler()・fillup_password_policy()・get_max_bad_attempts_from_lockout_policy()・get_pwd_properties()・get_sam_user_entries()・idmap_dump_maps()・ldapsam_add_aliasmem()・ldapsam_add_group_mapping_entry()・ldapsam_alias_memberships()・ldapsam_del_aliasmem()・ldapsam_delete_group_mapping_entry()・ldapsam_enum_aliasmem()・ldapsam_enum_group_mapping()・ldapsam_enum_group_members()・ldapsam_enum_group_memberships()・ldapsam_get_account_policy()・ldapsam_get_account_policy_from_ldap()・ldapsam_getgrgid()・ldapsam_getgrnam()・ldapsam_getgroup()・ldapsam_getgrsid()・ldapsam_lookup_rids()・ldapsam_modify_aliasmem()・ldapsam_new_rid()・ldapsam_new_rid_internal()・ldapsam_search_aliases()・ldapsam_search_groups()・ldapsam_search_grouptype()・ldapsam_search_users()・ldapsam_set_account_policy()・ldapsam_set_account_policy_in_ldap()・ldapsam_sid_to_id()・ldapsam_update_group_mapping_entry()・make_pdb_method()・make_pdb_method_name()・nss_module_register()・pdb_default_gid_to_sid()・pdb_default_sid_to_id()・pdb_default_uid_to_rid()・pdb_default_uid_to_sid()・pdb_nds_update_login_attempts()・smb_register_idmap()・smb_register_idmap_alloc()・smb_register_idmap_nss()・tdb_recovery_allocate()・tdb_transaction_commit()・transaction_setup_recovery()・winbindd_list_users().