Changes in / [657:c21e7b896c67:659:8556139321b3] in freeDiameter
- Files:
-
- 55 added
- 54 deleted
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
CMakeLists.txt
r647 r658 11 11 # Version of the source code 12 12 SET(FD_PROJECT_VERSION_MAJOR 1) 13 SET(FD_PROJECT_VERSION_MINOR 0)14 SET(FD_PROJECT_VERSION_REV 4)13 SET(FD_PROJECT_VERSION_MINOR 1) 14 SET(FD_PROJECT_VERSION_REV 0) 15 15 16 16 # Version of the API with the library 17 SET(FD_PROJECT_VERSION_API 3)17 SET(FD_PROJECT_VERSION_API 4) 18 18 19 19 # The test framework, using CTest and CDash. … … 31 31 SET(INSTALL_HEADERS_SUFFIX include/freeDiameter CACHE PATH "Directory where the headers are installed (relative to CMAKE_INSTALL_PREFIX).") 32 32 SET(INSTALL_DAEMON_SUFFIX bin CACHE PATH "Directory where the daemon binary is installed (relative to CMAKE_INSTALL_PREFIX).") 33 SET(INSTALL_LIBRARY_SUFFIX lib CACHE PATH "Directory where the libfreeDiameter library isinstalled (relative to CMAKE_INSTALL_PREFIX).")33 SET(INSTALL_LIBRARY_SUFFIX lib CACHE PATH "Directory where the freeDiameter libraries are installed (relative to CMAKE_INSTALL_PREFIX).") 34 34 SET(INSTALL_EXTENSIONS_SUFFIX ${INSTALL_LIBRARY_SUFFIX}/freeDiameter CACHE PATH "Directory where the extensions are installed / searched (relative to CMAKE_INSTALL_PREFIX).") 35 35 … … 77 77 78 78 # Location for the source code 79 SUBDIRS(libfreeDiameter) 80 SUBDIRS(freeDiameter) 79 SUBDIRS(libfdproto) 80 SUBDIRS(libfdcore) 81 SUBDIRS(freeDiameterd) 81 82 82 83 # Extensions (there is no use of freeDiameter without any extension) 83 84 SUBDIRS(extensions) 85 86 # The unary tests directory 87 IF ( BUILD_TESTING ) 88 SUBDIRS(tests) 89 ENDIF ( BUILD_TESTING ) 90 -
contrib/debian/control
r631 r658 13 13 Architecture: any 14 14 Depends: ${shlibs:Depends}, ${misc:Depends} 15 Description: The libfreeDiameter library.16 This library is required by all freeDiameter components.15 Description: The freeDiameter libraries. 16 This package contains the libraries required by all freeDiameter components. 17 17 It may also be useful for other projects which need to 18 18 perform operations on Diameter messages. -
contrib/debian/freediameter-common.install
r328 r658 1 usr/lib/libfreeDiameter.so* 1 usr/lib/libfdproto.so* 2 usr/lib/libfdcore.so* -
extensions/dbg_interactive/CMakeLists.txt
r641 r658 16 16 SET(SWIG_MODULE_fDpy_EXTRA_DEPS 17 17 ${CMAKE_BINARY_DIR}/include/freeDiameter/freeDiameter-host.h 18 ${CMAKE_SOURCE_DIR}/include/freeDiameter/libf reeDiameter.h19 ${CMAKE_SOURCE_DIR}/include/freeDiameter/ freeDiameter.h18 ${CMAKE_SOURCE_DIR}/include/freeDiameter/libfdcore.h 19 ${CMAKE_SOURCE_DIR}/include/freeDiameter/libfdproto.h 20 20 lists.i 21 21 dictionary.i -
extensions/dbg_interactive/dbg_interactive.c
r639 r658 59 59 fd_log_threadname ( "fDpy" ); 60 60 61 CHECK_FCT_DO(fd_ wait_initialization_complete(), goto end);61 CHECK_FCT_DO(fd_core_waitstartcomplete(), goto end); 62 62 63 63 fd_log_debug("\nStarting interactive python interpreter [experimental].\n"); -
extensions/dbg_interactive/dbg_interactive.i
r641 r658 159 159 *********************************************************/ 160 160 %include "freeDiameter/freeDiameter-host.h" 161 %include "freeDiameter/libf reeDiameter.h"162 %include "freeDiameter/ freeDiameter.h"161 %include "freeDiameter/libfdproto.h" 162 %include "freeDiameter/libfdcore.h" 163 163 164 164 /* Most of the functions from the API are not directly usable "as is". -
extensions/dbg_monitor/dbg_monitor.c
r258 r658 78 78 79 79 /* Function called on receipt of MONITOR_SIGNAL */ 80 static void got_sig( int signal)80 static void got_sig() 81 81 { 82 82 fd_log_debug("[dbg_monitor] Dumping extra information\n"); … … 92 92 93 93 /* Catch signal SIGUSR1 */ 94 CHECK_FCT( fd_ sig_register(MONITOR_SIGNAL, "dbg_monitor", got_sig));94 CHECK_FCT( fd_event_trig_regcb(MONITOR_SIGNAL, "dbg_monitor", got_sig)); 95 95 96 96 CHECK_POSIX( pthread_create( &thr, NULL, mn_thr, NULL ) ); -
extensions/dict_eap/dict_eap.c
r10 r658 296 296 268, /* Code */ 297 297 "Diameter-EAP-Request", /* Name */ 298 CMD_FLAG_REQUEST | CMD_FLAG_PROXIABLE | CMD_FLAG_ RETRANSMIT | CMD_FLAG_ERROR,/* Fixed flags */298 CMD_FLAG_REQUEST | CMD_FLAG_PROXIABLE | CMD_FLAG_ERROR, /* Fixed flags */ 299 299 CMD_FLAG_REQUEST | CMD_FLAG_PROXIABLE /* Fixed flag values */ 300 300 }; -
extensions/dict_legacy_xml/dict_lxml_xml.c
r616 r658 933 933 { TRACE_DEBUG(INFO, "Invalid 'type' tag found without 'name' attribute."); goto xml_tree_error; } ); 934 934 935 /* Check there is only 1 type */ 936 if (!FD_IS_LIST_EMPTY(&data->cur_avp->type)) { 937 TRACE_DEBUG(INFO, "Multiple 'type' tags found for AVP."); 938 goto xml_tree_error; 939 } 940 941 /* Add the new type */ 935 942 CHECK_FCT_DO( new_avptype(&data->cur_avp->type, xname), 936 943 { TRACE_DEBUG(INFO, "An error occurred while parsing a type tag. Entry ignored."); goto xml_tree_error; } ) … … 1011 1018 } 1012 1019 data->error_depth += 1; 1020 if (data->cur_app || data->cur_cmd || data->cur_avp) { 1021 TRACE_DEBUG(INFO, "Error encountered while parsing tag of:"); 1022 if (data->cur_app) 1023 fd_log_debug(" Application: '%s'\n", data->cur_app->name); 1024 if (data->cur_cmd) 1025 fd_log_debug(" Command : '%s'\n", data->cur_cmd->name); 1026 if (data->cur_avp) 1027 fd_log_debug(" AVP : '%s'\n", data->cur_avp->name); 1028 } 1013 1029 return; 1014 1030 } … … 1387 1403 1388 1404 /* Now create the new rule */ 1389 CHECK_FCT( fd_dict_new ( fD_dict, DICT_RULE, &rd, parent, NULL ) ); 1405 CHECK_FCT_DO( ret = fd_dict_new ( fD_dict, DICT_RULE, &rd, parent, NULL ), 1406 { TRACE_DEBUG(INFO, "Error creating rule for sub-AVP '%s'", r->avpname); return ret; } ); 1390 1407 if (nb_added) 1391 1408 *nb_added += 1; … … 1398 1415 static int rules_to_fD(struct dictionary * fD_dict, struct dict_object * parent, struct fd_list * fixed, struct fd_list * required, struct fd_list * optional, int * nb_added) 1399 1416 { 1417 int ret; 1418 1400 1419 TRACE_ENTRY("%p %p %p %p %p %p", fD_dict, parent, fixed, required, optional, nb_added); 1401 1420 1402 1421 /* Process the rules */ 1403 CHECK_FCT( rules_to_fD_onelist(fD_dict, parent, RULE_FIXED_HEAD, fixed, nb_added) ); 1404 CHECK_FCT( rules_to_fD_onelist(fD_dict, parent, RULE_REQUIRED, required, nb_added) ); 1405 CHECK_FCT( rules_to_fD_onelist(fD_dict, parent, RULE_OPTIONAL, optional, nb_added) ); 1422 CHECK_FCT_DO( ret = rules_to_fD_onelist(fD_dict, parent, RULE_FIXED_HEAD, fixed, nb_added), 1423 { TRACE_DEBUG(INFO, "Error processing FIXED rules"); return ret; } ); 1424 CHECK_FCT_DO( ret = rules_to_fD_onelist(fD_dict, parent, RULE_REQUIRED, required, nb_added), 1425 { TRACE_DEBUG(INFO, "Error processing REQUIRED rules"); return ret; } ); 1426 CHECK_FCT_DO( ret = rules_to_fD_onelist(fD_dict, parent, RULE_OPTIONAL, optional, nb_added), 1427 { TRACE_DEBUG(INFO, "Error processing OPTIONAL rules"); return ret; } ); 1406 1428 1407 1429 return 0; … … 1425 1447 ad.avp_vendor = a->vendor; 1426 1448 ad.avp_name = (char *)a->name; 1427 ad.avp_flag_mask = a->fmask ;1449 ad.avp_flag_mask = a->fmask | AVP_FLAG_VENDOR; 1428 1450 ad.avp_flag_val = a->flags; 1429 1451 1430 1452 if (!FD_IS_LIST_EMPTY(&a->type)) { 1431 1453 /* special exception: we use per-AVP enumerated types in fD */ 1432 if (strcasecmp("Enumerated", (char *)((struct t_avptype *)a->type.next)->type_name)) 1454 if (!strcasecmp("Enumerated", (char *)((struct t_avptype *)a->type.next)->type_name)) 1455 goto enumerated; 1456 /* Let's allow "Unsigned32" instead of "Enumerated" also... */ 1457 if ((!FD_IS_LIST_EMPTY(&a->enums)) && (!strcasecmp("Unsigned32", (char *)((struct t_avptype *)a->type.next)->type_name))) 1433 1458 goto enumerated; 1434 1459 … … 1441 1466 || !FD_IS_LIST_EMPTY(&a->grouped_fixed) ) { 1442 1467 /* The AVP has rules, it is a grouped AVP */ 1443 CHECK_PARAMS( FD_IS_LIST_EMPTY(&a->enums) ); 1468 CHECK_PARAMS_DO( FD_IS_LIST_EMPTY(&a->enums), 1469 { TRACE_DEBUG(INFO, "Conflict: The AVP '%s' has both enum values and rules.", ad.avp_name); return EINVAL; } ); 1444 1470 ad.avp_basetype = AVP_TYPE_GROUPED; 1445 1471 } else { 1446 1472 /* It should be an enumerated AVP... */ 1447 1473 if (FD_IS_LIST_EMPTY(&a->enums)) { 1448 TRACE_DEBUG(INFO, " [dict_legacy_xml]Error: Missing type information for AVP '%s'", ad.avp_name);1474 TRACE_DEBUG(INFO, "Error: Missing type information for AVP '%s'", ad.avp_name); 1449 1475 return EINVAL; 1450 1476 } else { … … 1492 1518 /* Now, the inner elements, if any */ 1493 1519 1520 if ( (!FD_IS_LIST_EMPTY(&a->enums)) && (ad.avp_basetype != AVP_TYPE_UNSIGNED32)) { 1521 TRACE_DEBUG(INFO, "AVP '%s' type is not an Unsigned32 but it has enum values (invalid in this extension).", ad.avp_name); 1522 return EINVAL; 1523 } 1524 1494 1525 /* In case of enumeration, define the enum values */ 1495 ASSERT( FD_IS_LIST_EMPTY(&a->enums) || (type && (ad.avp_basetype == AVP_TYPE_UNSIGNED32)) ); /* u32 type must be defined for enumerators */1496 1526 for (li = a->enums.next; li != &a->enums; li = li->next) { 1497 1527 struct t_enum * e = (struct t_enum *)li; … … 1502 1532 ed.enum_value.u32 = e->code; 1503 1533 1504 CHECK_FCT( fd_dict_new ( fD_dict, DICT_ENUMVAL, &ed, type, NULL ) ); 1534 CHECK_FCT_DO( ret = fd_dict_new ( fD_dict, DICT_ENUMVAL, &ed, type, NULL ), 1535 { 1536 TRACE_DEBUG(INFO, "Error defining constant value '%s' for AVP '%s': %s", ed.enum_name, ad.avp_name, strerror(ret)); 1537 return ret; 1538 } ); 1505 1539 if (nb_added) 1506 1540 *nb_added += 1; … … 1511 1545 || !FD_IS_LIST_EMPTY(&a->grouped_required) 1512 1546 || !FD_IS_LIST_EMPTY(&a->grouped_fixed) ) { 1513 CHECK_PARAMS( ad.avp_basetype == AVP_TYPE_GROUPED ); 1514 CHECK_FCT( rules_to_fD(fD_dict, prev, &a->grouped_fixed, &a->grouped_required, &a->grouped_optional, nb_added) ); 1547 CHECK_PARAMS_DO( ad.avp_basetype == AVP_TYPE_GROUPED, 1548 { TRACE_DEBUG(INFO, "Got rules for non-grouped AVP '%s'", ad.avp_name); return EINVAL;} ); 1549 CHECK_FCT_DO( ret = rules_to_fD(fD_dict, prev, &a->grouped_fixed, &a->grouped_required, &a->grouped_optional, nb_added), 1550 { TRACE_DEBUG(INFO, "Error processing rules for AVP '%s': %s", ad.avp_name, strerror(ret)); return ret; } ); 1515 1551 } 1516 1552 … … 1536 1572 snprintf(cmdname, sizeof(cmdname), "%s-Request", (char *)c->name); 1537 1573 cd.cmd_name = &cmdname[0]; 1538 cd.cmd_flag_mask = c->fmask | CMD_FLAG_REQUEST ;1574 cd.cmd_flag_mask = c->fmask | CMD_FLAG_REQUEST | CMD_FLAG_ERROR; 1539 1575 cd.cmd_flag_val = c->flags | CMD_FLAG_REQUEST; 1540 1576 … … 1564 1600 snprintf(cmdname, sizeof(cmdname), "%s-Answer", (char *)c->name); 1565 1601 cd.cmd_flag_val &= ~CMD_FLAG_REQUEST; 1602 cd.cmd_flag_mask &= ~CMD_FLAG_ERROR; 1566 1603 1567 1604 ret = fd_dict_new ( fD_dict, DICT_COMMAND, &cd, fd_appl, &ans ); … … 1585 1622 rules: 1586 1623 /* Now process the rules inside the command */ 1587 CHECK_FCT( rules_to_fD(fD_dict, req, &c->reqrules_fixed, &c->reqrules_required, &c->reqrules_optional, nb_added) ); 1588 CHECK_FCT( rules_to_fD(fD_dict, ans, &c->ansrules_fixed, &c->ansrules_required, &c->ansrules_optional, nb_added) ); 1624 CHECK_FCT_DO( ret = rules_to_fD(fD_dict, req, &c->reqrules_fixed, &c->reqrules_required, &c->reqrules_optional, nb_added), 1625 { 1626 TRACE_DEBUG(INFO, "Error converting data from request rules: %s", strerror(ret)); 1627 return ret; 1628 } ); 1629 CHECK_FCT_DO( ret = rules_to_fD(fD_dict, ans, &c->ansrules_fixed, &c->ansrules_required, &c->ansrules_optional, nb_added), 1630 { 1631 TRACE_DEBUG(INFO, "Error converting data from answer rules: %s", strerror(ret)); 1632 return ret; 1633 } ); 1589 1634 1590 1635 /* Done */ … … 1641 1686 /* First, define all the types */ 1642 1687 for (li = a->types.next; li != &a->types; li = li->next) { 1643 CHECK_FCT( typdefn_to_fD((struct t_typedefn *)li, fD_dict, prev, NULL, nb_added) ); 1688 CHECK_FCT_DO( ret = typdefn_to_fD((struct t_typedefn *)li, fD_dict, prev, NULL, nb_added), 1689 { 1690 TRACE_DEBUG(INFO, "Error converting data from typedefn '%s': %s", ((struct t_typedefn *)li)->name, strerror(ret)); 1691 return ret; 1692 } ); 1644 1693 } 1645 1694 1646 1695 /* Then, AVPs, enums, and grouped AVP rules */ 1647 1696 for (li = a->avps.next; li != &a->avps; li = li->next) { 1648 CHECK_FCT( avp_to_fD((struct t_avp *)li, fD_dict, prev, NULL, nb_added) ); 1697 CHECK_FCT_DO( ret = avp_to_fD((struct t_avp *)li, fD_dict, prev, NULL, nb_added), 1698 { 1699 TRACE_DEBUG(INFO, "Error converting data from AVP '%s': %s", ((struct t_avp *)li)->name, strerror(ret)); 1700 return ret; 1701 } ); 1649 1702 } 1650 1703 1651 1704 /* Finally, the commands and rules */ 1652 1705 for (li = a->commands.next; li != &a->commands; li = li->next) { 1653 CHECK_FCT( cmd_to_fD((struct t_cmd *)li, fD_dict, prev, NULL, nb_added) ); 1706 CHECK_FCT_DO( ret = cmd_to_fD((struct t_cmd *)li, fD_dict, prev, NULL, nb_added), 1707 { 1708 TRACE_DEBUG(INFO, "Error converting data from command '%s': %s", ((struct t_cmd *)li)->name, strerror(ret)); 1709 return ret; 1710 } ); 1654 1711 } 1655 1712 … … 1662 1719 { 1663 1720 struct fd_list * li; 1721 int ret; 1664 1722 1665 1723 TRACE_ENTRY("%p %p %p", fD_dict, xmldict, nb_added); … … 1671 1729 /* Create all the vendors */ 1672 1730 for (li = xmldict->vendors.next; li != &xmldict->vendors; li = li->next) { 1673 CHECK_FCT( vend_to_fD((struct t_vend *)li, fD_dict, NULL, nb_added) ); 1731 CHECK_FCT_DO( ret = vend_to_fD((struct t_vend *)li, fD_dict, NULL, nb_added), 1732 { 1733 TRACE_DEBUG(INFO, "Error converting data from vendor '%s': %s", ((struct t_vend *)li)->name, strerror(ret)); 1734 return ret; 1735 } ); 1674 1736 } 1675 1737 1676 1738 /* Now, process each application */ 1677 CHECK_FCT( appl_to_fD(&xmldict->base_and_applications, fD_dict, NULL, nb_added) ); 1739 CHECK_FCT_DO( ret = appl_to_fD(&xmldict->base_and_applications, fD_dict, NULL, nb_added), 1740 { 1741 TRACE_DEBUG(INFO, "Error converting data from Base application: %s", strerror(ret)); 1742 return ret; 1743 } ); 1678 1744 for (li = xmldict->base_and_applications.chain.next; li != &xmldict->base_and_applications.chain; li = li->next) { 1679 CHECK_FCT( appl_to_fD((struct t_appl *) li, fD_dict, NULL, nb_added) ); 1745 CHECK_FCT_DO( ret = appl_to_fD((struct t_appl *) li, fD_dict, NULL, nb_added), 1746 { 1747 TRACE_DEBUG(INFO, "Error converting data from application '%s': %s", ((struct t_appl *)li)->name, strerror(ret)); 1748 return ret; 1749 } ); 1680 1750 } 1681 1751 … … 1725 1795 } 1726 1796 1727 TRACE_DEBUG(FULL, "XML file parsing complete.");1797 TRACE_DEBUG(FULL, "XML file parsing, 1st pass completed."); 1728 1798 if (TRACE_BOOL(ANNOYING)) { 1729 1799 dump_dict(&data.dict); … … 1731 1801 1732 1802 /* Now, convert all the objects from the temporary tree into the freeDiameter dictionary */ 1733 CHECK_FCT_DO( dict_to_fD(fd_g_config->cnf_dict, &data.dict, &ret), { del_dict_contents(&data.dict); return -1; } ); 1734 1735 TRACE_DEBUG(FULL, "Conversion to freeDiameter internal format complete."); 1803 CHECK_FCT_DO( dict_to_fD(fd_g_config->cnf_dict, &data.dict, &ret), 1804 { 1805 TRACE_DEBUG(INFO, "Error while converting data read from file '%s'", xmlfilename); 1806 del_dict_contents(&data.dict); 1807 return -1; 1808 } ); 1809 1810 TRACE_DEBUG(FULL, "Conversion from '%s' to freeDiameter internal format complete.", xmlfilename); 1736 1811 if (TRACE_BOOL(ANNOYING)) { 1737 1812 fd_dict_dump(fd_g_config->cnf_dict); -
extensions/dict_nasreq/dict_nasreq.c
r523 r658 3005 3005 265, /* Code */ 3006 3006 "AA-Request", /* Name */ 3007 CMD_FLAG_REQUEST | CMD_FLAG_PROXIABLE | CMD_FLAG_ RETRANSMIT | CMD_FLAG_ERROR,/* Fixed flags */3007 CMD_FLAG_REQUEST | CMD_FLAG_PROXIABLE | CMD_FLAG_ERROR, /* Fixed flags */ 3008 3008 CMD_FLAG_REQUEST | CMD_FLAG_PROXIABLE /* Fixed flag values */ 3009 3009 }; -
extensions/test_app/ta_bench.c
r575 r658 208 208 209 209 /* The function called when the signal is received */ 210 static void ta_bench_start( int sig) {210 static void ta_bench_start() { 211 211 struct timespec end_time, now; 212 212 struct ta_stats start, end; … … 274 274 CHECK_SYS( sem_init( &ta_sem, 0, ta_conf->bench_concur) ); 275 275 276 CHECK_FCT( fd_ sig_register(ta_conf->signal, "test_app.bench", ta_bench_start ) );276 CHECK_FCT( fd_event_trig_regcb(ta_conf->signal, "test_app.bench", ta_bench_start ) ); 277 277 278 278 return 0; … … 281 281 void ta_bench_fini(void) 282 282 { 283 CHECK_FCT_DO( fd_sig_unregister(ta_conf->signal), /* continue */ );283 // CHECK_FCT_DO( fd_sig_unregister(ta_conf->signal), /* continue */ ); 284 284 285 285 CHECK_SYS_DO( sem_destroy(&ta_sem), ); -
extensions/test_app/ta_cli.c
r639 r658 136 136 137 137 /* Create a test message */ 138 static void ta_cli_test_message( int sig)138 static void ta_cli_test_message() 139 139 { 140 140 struct msg * req = NULL; … … 236 236 CHECK_FCT( fd_sess_handler_create(&ta_cli_reg, free, NULL) ); 237 237 238 CHECK_FCT( fd_ sig_register(ta_conf->signal, "test_app.cli", ta_cli_test_message ) );238 CHECK_FCT( fd_event_trig_regcb(ta_conf->signal, "test_app.cli", ta_cli_test_message ) ); 239 239 240 240 return 0; … … 243 243 void ta_cli_fini(void) 244 244 { 245 CHECK_FCT_DO( fd_sig_unregister(ta_conf->signal), /* continue */ );245 // CHECK_FCT_DO( fd_sig_unregister(ta_conf->signal), /* continue */ ); 246 246 247 247 CHECK_FCT_DO( fd_sess_handler_destroy(&ta_cli_reg, NULL), /* continue */ ); -
extensions/test_sip/test_sip.c
r639 r658 215 215 216 216 CHECK_FCT(fd_sess_handler_create(&ts_sess_hdl, free, NULL)); 217 //CHECK_FCT( fd_ sig_register(30, "test_sip", (void *)test_sipSL_LIR_cb ) );218 CHECK_FCT( fd_ sig_register(30, "test_sip", (void *)test_sip_SAR_cb ) );219 CHECK_FCT( fd_ sig_register(31, "test_sip", (void *)test_sip_LIR_cb ) );217 //CHECK_FCT( fd_event_trig_regcb(30, "test_sip", (void *)test_sipSL_LIR_cb ) ); 218 CHECK_FCT( fd_event_trig_regcb(30, "test_sip", (void *)test_sip_SAR_cb ) ); 219 CHECK_FCT( fd_event_trig_regcb(31, "test_sip", (void *)test_sip_LIR_cb ) ); 220 220 221 221 return 0; -
include/freeDiameter/CMakeLists.txt
r561 r658 1 1 #CMake configuration for freeDiameter include directory 2 2 3 Project("freeDiameter include directory" C)3 Project("freeDiameter includes directory" C) 4 4 5 5 ######################## … … 68 68 ENDIF (HAVE_CLOCK_GETTIME) 69 69 70 # LFD _LIBS = libraries required by the libfreeDiameter.71 SET(LFD _LIBS ${CLOCK_GETTIME_LIBS} ${CMAKE_THREAD_LIBS_INIT})70 # LFDPROTO_LIBS = libraries required by the libfdproto. 71 SET(LFDPROTO_LIBS ${CLOCK_GETTIME_LIBS} ${CMAKE_THREAD_LIBS_INIT}) 72 72 73 73 … … 98 98 99 99 100 # FD_LIBS = libraries required by the daemon 101 SET(FD_LIBS ${CMAKE_DL_LIBS} ${SCTP_LIBRARIES}) 100 # Require GNU TLS for building the library 101 FIND_PACKAGE(GnuTLS REQUIRED) 102 INCLUDE_DIRECTORIES(${GNUTLS_INCLUDE_DIR}) 103 104 find_path(GCRYPT_INCLUDE_DIR NAMES gcrypt.h) 105 If ( NOT GCRYPT_INCLUDE_DIR ) 106 MESSAGE(SEND_ERROR "Unable to find gcrypt.h, please install libgcrypt-dev or equivalent") 107 Endif ( NOT GCRYPT_INCLUDE_DIR ) 108 MARK_AS_ADVANCED(GCRYPT_INCLUDE_DIR) 109 INCLUDE_DIRECTORIES(${GCRYPT_INCLUDE_DIR}) 110 111 # Also we need libgcrypt to... display its version :( 112 find_library(GCRYPT_LIBRARY 113 NAMES gcrypt 114 ) 115 If ( NOT GCRYPT_LIBRARY ) 116 MESSAGE(SEND_ERROR "Unable to find libgcrypt, please install libgcrypt or equivalent") 117 Endif ( NOT GCRYPT_LIBRARY ) 118 119 120 # LFDCORE_LIBS = libraries required by the libfdcore 121 SET(LFDCORE_LIBS ${CMAKE_DL_LIBS} ${SCTP_LIBRARIES} ${GCRYPT_LIBRARY} ${GNUTLS_LIBRARIES}) 102 122 103 123 ########################## … … 111 131 112 132 # Save some variables for the other directories 113 SET( FD_LIBS ${FD_LIBS}PARENT_SCOPE)114 SET(LFD _LIBS ${LFD_LIBS}PARENT_SCOPE)133 SET(LFDPROTO_LIBS ${LFDPROTO_LIBS} PARENT_SCOPE) 134 SET(LFDCORE_LIBS ${LFDCORE_LIBS} PARENT_SCOPE) 115 135 SET(CMAKE_THREAD_LIBS_INIT ${CMAKE_THREAD_LIBS_INIT} PARENT_SCOPE) 116 136 … … 119 139 120 140 # The headers from this directory are required to develop new extensions for freeDiameter. 121 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/freeDiameter-host.h libf reeDiameter.h freeDiameter.h extension.h141 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/freeDiameter-host.h libfdproto.h libfdcore.h extension.h 122 142 DESTINATION ${INSTALL_HEADERS_SUFFIX} 123 143 COMPONENT freeDiameter-dev) -
include/freeDiameter/extension.h
r8 r658 3 3 * Author: Sebastien Decugis <sdecugis@nict.go.jp> * 4 4 * * 5 * Copyright (c) 20 09, WIDE Project and NICT *5 * Copyright (c) 2011, WIDE Project and NICT * 6 6 * All rights reserved. * 7 7 * * … … 39 39 /* Include definition of freeDiameter API */ 40 40 #include <freeDiameter/freeDiameter-host.h> 41 #include <freeDiameter/ freeDiameter.h>41 #include <freeDiameter/libfdcore.h> 42 42 43 43 /* Macro that define the entry point of the extension */ -
include/freeDiameter/freeDiameter-host.h.in
r648 r658 75 75 #cmakedefine DEFAULT_EXTENSIONS_PATH "@DEFAULT_EXTENSIONS_PATH@" 76 76 77 #ifndef FD_DEFAULT_CONF_FILENAME 78 #define FD_DEFAULT_CONF_FILENAME "freeDiameter.conf" 79 #endif /* FD_DEFAULT_CONF_FILENAME */ 80 77 81 #endif /* FD_IS_CONFIG */
Note: See TracChangeset
for help on using the changeset viewer.