Navigation


Changeset 10:c5c99c73c2bf in freeDiameter for freeDiameter/config.c


Ignore:
Timestamp:
Sep 25, 2009, 4:12:08 PM (15 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Added some extensions and functions in the daemon

File:
1 edited

Legend:

Unmodified
Added
Removed
  • freeDiameter/config.c

    r8 r10  
    4343        TRACE_ENTRY();
    4444       
    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);
    5356        #ifdef DISABLE_SCTP
    54         fd_g_config->flags.no_sctp = 1;
     57        fd_g_config->cnf_flags.no_sctp = 1;
    5558        #endif /* DISABLE_SCTP */
    5659       
    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) );
    6464       
    6565        return 0;
     
    7373        fd_log_debug("-- Configuration :\n");
    7474        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)) {
    8284                fd_log_debug("  Local endpoints ........ : Default (use all available)\n");
    8385        } else {
    84                 struct fd_list * li = fd_g_config->loc_endpoints.next;
     86                struct fd_list * li = fd_g_config->cnf_endpoints.next;
    8587                fd_log_debug("  Local endpoints ........ : ");
    86                 while (li != &fd_g_config->loc_endpoints) {
     88                while (li != &fd_g_config->cnf_endpoints) {
    8789                        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("                             ");
    8991                        sSA_DUMP_NODE( &ep->ss, NI_NUMERICHOST );
    9092                        fd_log_debug("\n");
     
    9294                }
    9395        }
    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");
    98117        #ifdef DISABLE_SCTP
    99118        fd_log_debug("          - SCTP ......... : DISABLED (at compilation)\n");
    100119        #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");
    102121        #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);
    108125}
    109126
     
    113130        extern FILE * fddin;
    114131       
    115         TRACE_DEBUG (FULL, "Parsing configuration file: %s", fd_g_config->conf_file);
    116        
    117         fddin = fopen(fd_g_config->conf_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");
    118135        if (fddin == NULL) {
    119136                int ret = errno;
    120                 fprintf(stderr, "Unable to open configuration file %s for reading: %s\n", fd_g_config->conf_file, strerror(ret));
     137                fprintf(stderr, "Unable to open configuration file %s for reading: %s\n", fd_g_config->cnf_file, strerror(ret));
    121138                return ret;
    122139        }
     
    129146       
    130147        /* Resolve hostname if not provided */
    131         if (fd_g_config->diam_id == NULL) {
     148        if (fd_g_config->cnf_diamid == NULL) {
    132149#ifndef HOST_NAME_MAX
    133150#define HOST_NAME_MAX 1024
     
    152169                        return EINVAL;
    153170                }
    154                 CHECK_MALLOC( fd_g_config->diam_id = strdup(info->ai_canonname) );
     171                CHECK_MALLOC( fd_g_config->cnf_diamid = strdup(info->ai_canonname) );
    155172                freeaddrinfo(info);
    156173        }
    157174       
    158175        /* 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);
    160177       
    161178        /* Handle the realm part */
    162         if (fd_g_config->diam_realm == NULL) {
     179        if (fd_g_config->cnf_diamrlm == NULL) {
    163180                char * start = NULL;
    164181               
    165182                /* Check the diameter identity is a fqdn */
    166                 start = strchr(fd_g_config->diam_id, '.');
     183                start = strchr(fd_g_config->cnf_diamid, '.');
    167184                if ((start == NULL) || (start[1] == '\0')) {
    168185                        fprintf(stderr, "Unable to extract realm from the LocalIdentity '%s'.\n"
    169186                                        "Please fix your LocalIdentity setting or provide LocalRealm.\n",
    170                                         fd_g_config->diam_id);
     187                                        fd_g_config->cnf_diamid);
    171188                        return EINVAL;
    172189                }               
    173190               
    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);
    177194       
    178195        /* 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) {
    180197                fprintf(stderr, "IP and IPv6 cannot be disabled at the same time.\n");
    181198                return EINVAL;
    182199        }
    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) {
    184201                fprintf(stderr, "TCP and SCTP cannot be disabled at the same time.\n");
    185202                return EINVAL;
Note: See TracChangeset for help on using the changeset viewer.