Changeset 10:c5c99c73c2bf in freeDiameter for freeDiameter/config.c
- Timestamp:
- Sep 25, 2009, 4:12:08 PM (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
freeDiameter/config.c
r8 r10 43 43 TRACE_ENTRY(); 44 44 45 fd_g_config->eyec = EYEC_CONFIG; 46 fd_g_config->conf_file = DEFAULT_CONF_FILE; 47 48 fd_g_config->loc_port = 3868; 49 fd_g_config->loc_port_tls = 3869; 50 fd_g_config->loc_sctp_str = 30; 51 fd_list_init(&fd_g_config->loc_endpoints, NULL); 52 45 fd_g_config->cnf_eyec = EYEC_CONFIG; 46 fd_g_config->cnf_file = DEFAULT_CONF_FILE; 47 48 fd_g_config->cnf_timer_tc = 30; 49 fd_g_config->cnf_timer_tw = 30; 50 51 fd_g_config->cnf_port = 3868; 52 fd_g_config->cnf_port_tls = 3869; 53 fd_g_config->cnf_sctp_str = 30; 54 fd_list_init(&fd_g_config->cnf_endpoints, NULL); 55 fd_list_init(&fd_g_config->cnf_apps, NULL); 53 56 #ifdef DISABLE_SCTP 54 fd_g_config-> flags.no_sctp = 1;57 fd_g_config->cnf_flags.no_sctp = 1; 55 58 #endif /* DISABLE_SCTP */ 56 59 57 fd_g_config->timer_tc = 30; 58 fd_g_config->timer_tw = 30; 59 60 fd_g_config->or_state_id = (uint32_t) time(NULL); 61 62 CHECK_FCT( fd_dict_init(&fd_g_config->g_dict) ); 63 CHECK_FCT( fd_fifo_new(&fd_g_config->g_fifo_main) ); 60 fd_g_config->cnf_orstateid = (uint32_t) time(NULL); 61 62 CHECK_FCT( fd_dict_init(&fd_g_config->cnf_dict) ); 63 CHECK_FCT( fd_fifo_new(&fd_g_config->cnf_main_ev) ); 64 64 65 65 return 0; … … 73 73 fd_log_debug("-- Configuration :\n"); 74 74 fd_log_debug(" Debug trace level ...... : %+d\n", fd_g_debug_lvl); 75 fd_log_debug(" Configuration file ..... : %s\n", fd_g_config->conf_file); 76 fd_log_debug(" Diameter Identity ...... : %s (l:%Zi)\n", fd_g_config->diam_id, fd_g_config->diam_id_len); 77 fd_log_debug(" Diameter Realm ......... : %s (l:%Zi)\n", fd_g_config->diam_realm, fd_g_config->diam_realm_len); 78 fd_log_debug(" Local port ............. : %hu\n", fd_g_config->loc_port); 79 fd_log_debug(" Local secure port ...... : %hu\n", fd_g_config->loc_port_tls); 80 fd_log_debug(" Number of SCTP streams . : %hu\n", fd_g_config->loc_sctp_str); 81 if (FD_IS_LIST_EMPTY(&fd_g_config->loc_endpoints)) { 75 fd_log_debug(" Configuration file ..... : %s\n", fd_g_config->cnf_file); 76 fd_log_debug(" Diameter Identity ...... : %s (l:%Zi)\n", fd_g_config->cnf_diamid, fd_g_config->cnf_diamid_len); 77 fd_log_debug(" Diameter Realm ......... : %s (l:%Zi)\n", fd_g_config->cnf_diamrlm, fd_g_config->cnf_diamrlm_len); 78 fd_log_debug(" Tc Timer ............... : %u\n", fd_g_config->cnf_timer_tc); 79 fd_log_debug(" Tw Timer ............... : %u\n", fd_g_config->cnf_timer_tw); 80 fd_log_debug(" Local port ............. : %hu\n", fd_g_config->cnf_port); 81 fd_log_debug(" Local secure port ...... : %hu\n", fd_g_config->cnf_port_tls); 82 fd_log_debug(" Number of SCTP streams . : %hu\n", fd_g_config->cnf_sctp_str); 83 if (FD_IS_LIST_EMPTY(&fd_g_config->cnf_endpoints)) { 82 84 fd_log_debug(" Local endpoints ........ : Default (use all available)\n"); 83 85 } else { 84 struct fd_list * li = fd_g_config-> loc_endpoints.next;86 struct fd_list * li = fd_g_config->cnf_endpoints.next; 85 87 fd_log_debug(" Local endpoints ........ : "); 86 while (li != &fd_g_config-> loc_endpoints) {88 while (li != &fd_g_config->cnf_endpoints) { 87 89 struct fd_endpoint * ep = (struct fd_endpoint *)li; 88 if (li != fd_g_config-> loc_endpoints.next) fd_log_debug(" ");90 if (li != fd_g_config->cnf_endpoints.next) fd_log_debug(" "); 89 91 sSA_DUMP_NODE( &ep->ss, NI_NUMERICHOST ); 90 92 fd_log_debug("\n"); … … 92 94 } 93 95 } 94 fd_log_debug(" Flags : - IP ........... : %s\n", fd_g_config->flags.no_ip4 ? "DISABLED" : "Enabled"); 95 fd_log_debug(" - IPv6 ......... : %s\n", fd_g_config->flags.no_ip6 ? "DISABLED" : "Enabled"); 96 fd_log_debug(" - Relay app .... : %s\n", fd_g_config->flags.no_fwd ? "DISABLED" : "Enabled"); 97 fd_log_debug(" - TCP .......... : %s\n", fd_g_config->flags.no_tcp ? "DISABLED" : "Enabled"); 96 if (FD_IS_LIST_EMPTY(&fd_g_config->cnf_apps)) { 97 fd_log_debug(" Local applications ..... : (none)\n"); 98 } else { 99 struct fd_list * li = fd_g_config->cnf_apps.next; 100 fd_log_debug(" Local applications ..... : "); 101 while (li != &fd_g_config->cnf_apps) { 102 struct fd_app * app = (struct fd_app *)li; 103 if (li != fd_g_config->cnf_apps.next) fd_log_debug(" "); 104 fd_log_debug("App: %u\t%s%s%s\tVnd: %u\n", 105 app->appid, 106 app->flags.auth ? "Au" : "--", 107 app->flags.acct ? "Ac" : "--", 108 app->flags.common ? "C" : "-", 109 app->vndid); 110 li = li->next; 111 } 112 } 113 fd_log_debug(" Flags : - IP ........... : %s\n", fd_g_config->cnf_flags.no_ip4 ? "DISABLED" : "Enabled"); 114 fd_log_debug(" - IPv6 ......... : %s\n", fd_g_config->cnf_flags.no_ip6 ? "DISABLED" : "Enabled"); 115 fd_log_debug(" - Relay app .... : %s\n", fd_g_config->cnf_flags.no_fwd ? "DISABLED" : "Enabled"); 116 fd_log_debug(" - TCP .......... : %s\n", fd_g_config->cnf_flags.no_tcp ? "DISABLED" : "Enabled"); 98 117 #ifdef DISABLE_SCTP 99 118 fd_log_debug(" - SCTP ......... : DISABLED (at compilation)\n"); 100 119 #else /* DISABLE_SCTP */ 101 fd_log_debug(" - SCTP ......... : %s\n", fd_g_config-> flags.no_sctp ? "DISABLED" : "Enabled");120 fd_log_debug(" - SCTP ......... : %s\n", fd_g_config->cnf_flags.no_sctp ? "DISABLED" : "Enabled"); 102 121 #endif /* DISABLE_SCTP */ 103 fd_log_debug(" - Pref. proto .. : %s\n", fd_g_config->flags.pr_tcp ? "TCP" : "SCTP"); 104 fd_log_debug(" - TLS method ... : %s\n", fd_g_config->flags.tls_alg ? "INBAND" : "Separate port"); 105 fd_log_debug(" Tc Timer ............... : %u\n", fd_g_config->timer_tc); 106 fd_log_debug(" Tw Timer ............... : %u\n", fd_g_config->timer_tw); 107 fd_log_debug(" Origin-State-Id ........ : %u\n", fd_g_config->or_state_id); 122 fd_log_debug(" - Pref. proto .. : %s\n", fd_g_config->cnf_flags.pr_tcp ? "TCP" : "SCTP"); 123 fd_log_debug(" - TLS method ... : %s\n", fd_g_config->cnf_flags.tls_alg ? "INBAND" : "Separate port"); 124 fd_log_debug(" Origin-State-Id ........ : %u\n", fd_g_config->cnf_orstateid); 108 125 } 109 126 … … 113 130 extern FILE * fddin; 114 131 115 TRACE_DEBUG (FULL, "Parsing configuration file: %s", fd_g_config->c onf_file);116 117 fddin = fopen(fd_g_config->c onf_file, "r");132 TRACE_DEBUG (FULL, "Parsing configuration file: %s", fd_g_config->cnf_file); 133 134 fddin = fopen(fd_g_config->cnf_file, "r"); 118 135 if (fddin == NULL) { 119 136 int ret = errno; 120 fprintf(stderr, "Unable to open configuration file %s for reading: %s\n", fd_g_config->c onf_file, strerror(ret));137 fprintf(stderr, "Unable to open configuration file %s for reading: %s\n", fd_g_config->cnf_file, strerror(ret)); 121 138 return ret; 122 139 } … … 129 146 130 147 /* Resolve hostname if not provided */ 131 if (fd_g_config-> diam_id == NULL) {148 if (fd_g_config->cnf_diamid == NULL) { 132 149 #ifndef HOST_NAME_MAX 133 150 #define HOST_NAME_MAX 1024 … … 152 169 return EINVAL; 153 170 } 154 CHECK_MALLOC( fd_g_config-> diam_id = strdup(info->ai_canonname) );171 CHECK_MALLOC( fd_g_config->cnf_diamid = strdup(info->ai_canonname) ); 155 172 freeaddrinfo(info); 156 173 } 157 174 158 175 /* cache the length of the diameter id for the session module */ 159 fd_g_config-> diam_id_len = strlen(fd_g_config->diam_id);176 fd_g_config->cnf_diamid_len = strlen(fd_g_config->cnf_diamid); 160 177 161 178 /* Handle the realm part */ 162 if (fd_g_config-> diam_realm == NULL) {179 if (fd_g_config->cnf_diamrlm == NULL) { 163 180 char * start = NULL; 164 181 165 182 /* Check the diameter identity is a fqdn */ 166 start = strchr(fd_g_config-> diam_id, '.');183 start = strchr(fd_g_config->cnf_diamid, '.'); 167 184 if ((start == NULL) || (start[1] == '\0')) { 168 185 fprintf(stderr, "Unable to extract realm from the LocalIdentity '%s'.\n" 169 186 "Please fix your LocalIdentity setting or provide LocalRealm.\n", 170 fd_g_config-> diam_id);187 fd_g_config->cnf_diamid); 171 188 return EINVAL; 172 189 } 173 190 174 CHECK_MALLOC( fd_g_config-> diam_realm = strdup( start + 1 ) );175 } 176 fd_g_config-> diam_realm_len = strlen(fd_g_config->diam_realm);191 CHECK_MALLOC( fd_g_config->cnf_diamrlm = strdup( start + 1 ) ); 192 } 193 fd_g_config->cnf_diamrlm_len = strlen(fd_g_config->cnf_diamrlm); 177 194 178 195 /* Validate some flags */ 179 if (fd_g_config-> flags.no_ip4 && fd_g_config->flags.no_ip6) {196 if (fd_g_config->cnf_flags.no_ip4 && fd_g_config->cnf_flags.no_ip6) { 180 197 fprintf(stderr, "IP and IPv6 cannot be disabled at the same time.\n"); 181 198 return EINVAL; 182 199 } 183 if (fd_g_config-> flags.no_tcp && fd_g_config->flags.no_sctp) {200 if (fd_g_config->cnf_flags.no_tcp && fd_g_config->cnf_flags.no_sctp) { 184 201 fprintf(stderr, "TCP and SCTP cannot be disabled at the same time.\n"); 185 202 return EINVAL;
Note: See TracChangeset
for help on using the changeset viewer.