entry point: register handlers for Accounting and Digest Auth */
| 725 | |
| 726 | /* entry point: register handlers for Accounting and Digest Auth */ |
| 727 | static int os_entry(char *confstring) |
| 728 | { |
| 729 | struct disp_when data; |
| 730 | char *extra_avps_file; |
| 731 | int lib_mode; |
| 732 | |
| 733 | CHECK_FCT(register_osips_avps()); |
| 734 | |
| 735 | CHECK_FCT(parse_conf_string(confstring, &extra_avps_file, &lib_mode)); |
| 736 | CHECK_FCT(parse_extra_avps(extra_avps_file)); |
| 737 | free(extra_avps_file); |
| 738 | |
| 739 | if (lib_mode) |
| 740 | return 0; |
| 741 | |
| 742 | /* Initialize the dictionary objects we use */ |
| 743 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Accounting-Record-Number", &dm_dict.Accounting_Record_Number, ENOENT) ); |
| 744 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Accounting-Record-Type", &dm_dict.Accounting_Record_Type, ENOENT) ); |
| 745 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Acct-Session-Id", &dm_dict.Acct_Session_Id, ENOENT) ); |
| 746 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Event-Timestamp", &dm_dict.Event_Timestamp, ENOENT) ); |
| 747 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Transaction-Id", &dm_dict.Transaction_Id, ENOENT) ); |
| 748 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Session-Id", &dm_dict.Session_Id, ENOENT) ); |
| 749 | |
| 750 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Auth-Application-Id", &dm_dict.Auth_Application_Id, ENOENT) ); |
| 751 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Auth-Session-State", &dm_dict.Auth_Session_State, ENOENT) ); |
| 752 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "User-Name", &dm_dict.User_Name, ENOENT) ); |
| 753 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-Username", &dm_dict.Digest_Username, ENOENT) ); |
| 754 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-Realm", &dm_dict.Digest_Realm, ENOENT) ); |
| 755 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-Nonce", &dm_dict.Digest_Nonce, ENOENT) ); |
| 756 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-URI", &dm_dict.Digest_URI, ENOENT) ); |
| 757 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-Response", &dm_dict.Digest_Response, ENOENT) ); |
| 758 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, "Digest-Method", &dm_dict.Digest_Method, ENOENT) ); |
| 759 | |
| 760 | /* Register the dispatch callback */ |
| 761 | memset(&data, 0, sizeof data); |
| 762 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_APPLICATION, APPLICATION_BY_NAME, "Diameter Base Accounting", &data.app, ENOENT) ); |
| 763 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Accounting-Request", &data.command, ENOENT) ); |
| 764 | CHECK_FCT( fd_disp_register( acc_request, DISP_HOW_CC, &data, NULL, NULL ) ); |
| 765 | |
| 766 | /* Advertise the support for the Diameter Base Accounting application in the peer */ |
| 767 | CHECK_FCT( fd_disp_app_support ( data.app, NULL, 0, 1 ) ); |
| 768 | |
| 769 | memset(&data, 0, sizeof data); |
| 770 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_APPLICATION, APPLICATION_BY_NAME, "Diameter Session Initiation Protocol (SIP) Application", &data.app, ENOENT) ); |
| 771 | CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, DICT_COMMAND, CMD_BY_NAME, "Multimedia-Auth-Request", &data.command, ENOENT) ); |
| 772 | CHECK_FCT( fd_disp_register( auth_request, DISP_HOW_CC, &data, NULL, NULL ) ); |
| 773 | |
| 774 | /* Advertise the support for the SIP application in the peer */ |
| 775 | CHECK_FCT( fd_disp_app_support ( data.app, NULL, 0, 1 ) ); |
| 776 | |
| 777 | if (init_acc_log() != 0) |
| 778 | fd_log_error("[ACC] failed to init logging! CDR generation is disabled!"); |
| 779 | |
| 780 | if (init_auth() != 0) |
| 781 | fd_log_error("[AUTH] failed to initialize auth support!"); |
| 782 | |
| 783 | return 0; |
| 784 | } |
nothing calls this directly
no test coverage detected