Changeset 124 for branches/samba-3.0/source/libads/kerberos.c
- Timestamp:
- Mar 12, 2008, 9:08:18 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.0/source/libads/kerberos.c
r71 r124 363 363 } 364 364 365 /************************************************************************ 366 Routine to get the default realm from the kerberos credentials cache. 367 Caller must free if the return value is not NULL. 368 ************************************************************************/ 369 370 char *kerberos_get_default_realm_from_ccache( void ) 371 { 372 char *realm = NULL; 373 krb5_context ctx = NULL; 374 krb5_ccache cc = NULL; 375 krb5_principal princ = NULL; 376 377 initialize_krb5_error_table(); 378 if (krb5_init_context(&ctx)) { 379 return NULL; 380 } 381 382 DEBUG(5,("kerberos_get_default_realm_from_ccache: " 383 "Trying to read krb5 cache: %s\n", 384 krb5_cc_default_name(ctx))); 385 if (krb5_cc_default(ctx, &cc)) { 386 DEBUG(0,("kerberos_get_default_realm_from_ccache: " 387 "failed to read default cache\n")); 388 goto out; 389 } 390 if (krb5_cc_get_principal(ctx, cc, &princ)) { 391 DEBUG(0,("kerberos_get_default_realm_from_ccache: " 392 "failed to get default principal\n")); 393 goto out; 394 } 395 396 #if defined(HAVE_KRB5_PRINCIPAL_GET_REALM) 397 realm = SMB_STRDUP(krb5_principal_get_realm(ctx, princ)); 398 #elif defined(HAVE_KRB5_PRINC_REALM) 399 { 400 krb5_data *realm_data = krb5_princ_realm(ctx, princ); 401 realm = SMB_STRNDUP(realm_data->data, realm_data->length); 402 } 403 #endif 404 405 out: 406 407 if (princ) { 408 krb5_free_principal(ctx, princ); 409 } 410 if (cc) { 411 krb5_cc_close(ctx, cc); 412 } 413 if (ctx) { 414 krb5_free_context(ctx); 415 } 416 417 return realm; 418 } 419 365 420 366 421 /************************************************************************ … … 622 677 return False; 623 678 } 624 625 file_contents = talloc_asprintf(fname, "[libdefaults]\n\tdefault_realm = %s\n\n" 626 "[realms]\n\t%s = {\n" 627 "\t%s\t}\n", 628 realm_upper, realm_upper, kdc_ip_string); 679 680 file_contents = talloc_asprintf(fname, 681 "[libdefaults]\n\tdefault_realm = %s\n" 682 "default_tgs_enctypes = RC4-HMAC DES-CBC-CRC DES-CBC-MD5\n" 683 "default_tkt_enctypes = RC4-HMAC DES-CBC-CRC DES-CBC-MD5\n" 684 "preferred_enctypes = RC4-HMAC DES-CBC-CRC DES-CBC-MD5\n\n" 685 "[realms]\n\t%s = {\n" 686 "\t%s\t}\n", 687 realm_upper, realm_upper, kdc_ip_string); 629 688 630 689 if (!file_contents) {
Note:
See TracChangeset
for help on using the changeset viewer.