Navigation


Changeset 578:7c9a00bfd115 in freeDiameter for freeDiameter/fdd.y


Ignore:
Timestamp:
Oct 27, 2010, 10:52:30 AM (14 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Allow TLS Diffie-Hellmann parameters to be loaded from a file (ticket #17)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • freeDiameter/fdd.y

    r308 r578  
    118118%token          TLS_PRIO
    119119%token          TLS_DH_BITS
     120%token          TLS_DH_FILE
    120121
    121122
     
    582583                        {
    583584                                conf->cnf_sec_data.dh_bits = $3;
    584                                 TRACE_DEBUG(FULL, "Generating DH parameters...");
    585                                 CHECK_GNUTLS_DO( gnutls_dh_params_generate2(
    586                                                         conf->cnf_sec_data.dh_cache,
    587                                                         conf->cnf_sec_data.dh_bits),
    588                                                 { yyerror (&yylloc, conf, "Error setting DH Bits parameters.");
    589                                                  YYERROR; } );
    590                                 TRACE_DEBUG(FULL, "DH parameters generated.");
    591                         }
    592                         ;
     585                        }
     586                        | TLS_DH_FILE '=' QSTRING ';'
     587                        {
     588                                FILE * fd;
     589                                free(conf->cnf_sec_data.dh_file);
     590                                conf->cnf_sec_data.dh_file = $3;
     591                                fd = fopen($3, "r");
     592                                if (fd == NULL) {
     593                                        int ret = errno;
     594                                        TRACE_DEBUG(INFO, "Unable to open DH file %s for reading: %s\n", $3, strerror(ret));
     595                                        yyerror (&yylloc, conf, "Error on file name");
     596                                        YYERROR;
     597                                }
     598                                fclose(fd);
     599                        }
     600                        ;
Note: See TracChangeset for help on using the changeset viewer.