[OpenSIPS-Devel] [OpenSIPS/opensips] 4b62c0: core: new module dependency specification interfac...

Liviu Chircu liviu at opensips.org
Wed Aug 13 18:33:36 CEST 2014


  Branch: refs/heads/master
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 4b62c0af0ef721ad070335febd1ee7b923cef9f4
      https://github.com/OpenSIPS/opensips/commit/4b62c0af0ef721ad070335febd1ee7b923cef9f4
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2014-08-13 (Wed, 13 Aug 2014)

  Changed paths:
    M cachedb/example/example_cachedb.c
    M modparam.c
    M modules/aaa_radius/aaa_radius.c
    M modules/acc/acc_mod.c
    M modules/alias_db/alias_db.c
    M modules/auth/auth_mod.c
    M modules/auth_aaa/authaaa_mod.c
    M modules/auth_db/authdb_mod.c
    M modules/auth_diameter/auth_diameter.c
    M modules/avpops/avpops.c
    M modules/b2b_entities/b2b_entities.c
    M modules/b2b_logic/b2b_logic.c
    M modules/b2b_sca/b2b_sca.c
    M modules/benchmark/benchmark.c
    M modules/cachedb_cassandra/cachedb_cassandra.c
    M modules/cachedb_couchbase/cachedb_couchbase.c
    M modules/cachedb_local/cachedb_local.c
    M modules/cachedb_memcached/cachedb_memcached.c
    M modules/cachedb_mongodb/cachedb_mongodb.c
    M modules/cachedb_redis/cachedb_redis.c
    M modules/cachedb_sql/cachedb_sql.c
    M modules/call_center/call_center.c
    M modules/call_control/call_control.c
    M modules/carrierroute/carrierroute.c
    M modules/cfgutils/cfgutils.c
    M modules/closeddial/closeddial.c
    M modules/cpl-c/cpl.c
    M modules/db_berkeley/db_berkeley.c
    M modules/db_cachedb/db_cachedb.c
    M modules/db_flatstore/flatstore_mod.c
    M modules/db_http/db_http.c
    M modules/db_mysql/db_mysql.c
    M modules/db_oracle/db_oracle.c
    M modules/db_perlvdb/perlvdb.c
    M modules/db_postgres/db_postgres.c
    M modules/db_text/dbtext.c
    M modules/db_unixodbc/db_unixodbc.c
    M modules/db_virtual/db_virtual.c
    M modules/dialog/dialog.c
    M modules/dialplan/dialplan.c
    M modules/dispatcher/dispatcher.c
    M modules/diversion/diversion.c
    M modules/dns_cache/dns_cache.c
    M modules/domain/domain_mod.c
    M modules/domainpolicy/domainpolicy_mod.c
    M modules/drouting/drouting.c
    M modules/enum/enum_mod.c
    M modules/event_datagram/event_datagram.c
    M modules/event_rabbitmq/event_rabbitmq.c
    M modules/event_route/event_route.c
    M modules/event_xmlrpc/event_xmlrpc.c
    M modules/exec/exec_mod.c
    M modules/gflags/gflags.c
    M modules/group/group_mod.c
    M modules/h350/h350_mod.c
    M modules/httpd/httpd.c
    M modules/identity/identity.c
    M modules/imc/imc.c
    M modules/jabber/jabber.c
    M modules/json/json.c
    M modules/ldap/ldap_mod.c
    M modules/load_balancer/load_balancer.c
    M modules/lua/siplua.c
    M modules/mangler/mangler.c
    M modules/mathops/mathops.c
    M modules/maxfwd/maxfwd.c
    M modules/mediaproxy/mediaproxy.c
    M modules/mi_datagram/mi_datagram.c
    M modules/mi_fifo/mi_fifo.c
    M modules/mi_http/mi_http.c
    M modules/mi_json/mi_json.c
    M modules/mi_xmlrpc/mi_xmlrpc.c
    M modules/mi_xmlrpc_ng/mi_xmlrpc_http.c
    M modules/mmgeoip/mmgeoip.c
    M modules/msilo/msilo.c
    M modules/nat_traversal/nat_traversal.c
    M modules/nathelper/nathelper.c
    M modules/options/mod_options.c
    M modules/osp/osp_mod.c
    M modules/path/path_mod.c
    M modules/pdt/pdt.c
    M modules/peering/peering.c
    M modules/perl/perl.c
    M modules/permissions/permissions.c
    M modules/pi_http/pi_http.c
    M modules/pike/pike.c
    M modules/presence/presence.c
    M modules/presence_callinfo/presence_callinfo.c
    M modules/presence_dialoginfo/presence_dialoginfo.c
    M modules/presence_mwi/presence_mwi.c
    M modules/presence_xcapdiff/presence_xcapdiff.c
    M modules/presence_xml/presence_xml.c
    M modules/pua/pua.c
    M modules/pua_bla/pua_bla.c
    M modules/pua_dialoginfo/pua_dialoginfo.c
    M modules/pua_mi/pua_mi.c
    M modules/pua_usrloc/pua_usrloc.c
    M modules/pua_xmpp/pua_xmpp.c
    M modules/python/python_mod.c
    M modules/qos/qos.c
    M modules/ratelimit/ratelimit.c
    M modules/regex/regex_mod.c
    M modules/registrar/reg_mod.c
    M modules/rest_client/rest_client.c
    M modules/rls/rls.c
    M modules/rr/rr_mod.c
    M modules/rtpengine/rtpengine.c
    M modules/rtpproxy/rtpproxy.c
    M modules/script_helper/script_helper.c
    M modules/seas/seas.c
    M modules/signaling/signaling.c
    M modules/sipcapture/sipcapture.c
    M modules/sipmsgops/sipmsgops.c
    M modules/siptrace/siptrace.c
    M modules/sl/sl.c
    M modules/sms/sms.c
    M modules/sngtc/sngtc.c
    M modules/snmpstats/snmpstats.h
    M modules/speeddial/speeddial.c
    M modules/sst/sst.c
    M modules/statistics/statistics.c
    M modules/stun/stun.c
    M modules/textops/textops.c
    M modules/tlsops/tlsops.c
    M modules/tm/tm.c
    M modules/uac/uac.c
    M modules/uac_auth/uac_auth.c
    M modules/uac_redirect/redirect.c
    M modules/uac_registrant/registrant.c
    M modules/uri/uri_mod.c
    M modules/userblacklist/userblacklist.c
    M modules/usrloc/ul_mod.c
    M modules/xcap/xcap_mod.c
    M modules/xcap_client/xcap_client.c
    M modules/xmpp/xmpp.c
    M sr_module.c
    M sr_module.h
    A sr_module_deps.c
    A sr_module_deps.h

  Log Message:
  -----------
  core: new module dependency specification interface introduced

Allows OpenSIPS modules to specify dependency relations with others.

This eliminates the need for explicit ordering of "loadmodule"
script statements. More details in "sr_module_deps.h"

All this logic is transparent at script level.


  Commit: 0462ff0ecce8310940c0ede45e0c8fb8a220030d
      https://github.com/OpenSIPS/opensips/commit/0462ff0ecce8310940c0ede45e0c8fb8a220030d
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2014-08-13 (Wed, 13 Aug 2014)

  Changed paths:
    M modules/acc/acc_mod.c
    M sr_module_deps.c
    M sr_module_deps.h

  Log Message:
  -----------
  module dependencies core: add a commonly used function

Any module which depends on all SQL DB modules once its db_url is set
may use "get_deps_sqldb_url". Declared in sr_module_deps.h

Usage example: acc module


  Commit: c6afc240a8688cf01817d7ee5915907a0dff835a
      https://github.com/OpenSIPS/opensips/commit/c6afc240a8688cf01817d7ee5915907a0dff835a
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2014-08-13 (Wed, 13 Aug 2014)

  Changed paths:
    M sr_module_deps.c

  Log Message:
  -----------
  module dependencies: allow generic dependencies of own type

In other words, the modules which make use of this will be the last ones
of their type category to be loaded

e.g. db_virtual is of type MOD_TYPE_SQLDB, and requires all
MOD_TYPE_SQLDBs to be loaded before itself

Note: abuse of this functionality may lead to dependency loops
db_virtual is the only module to make use of it, currently


  Commit: 7e4091987e026c291e93c9777c2a22baeff7f388
      https://github.com/OpenSIPS/opensips/commit/7e4091987e026c291e93c9777c2a22baeff7f388
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2014-08-13 (Wed, 13 Aug 2014)

  Changed paths:
    M sr_module_deps.c

  Log Message:
  -----------
  module dependencies core: fix a string comparison bug

when looking up modules, strcmp is more appropriate then memcmp, since
otherwise, "presence_xml" would match a search for "presence", thus leading
to "presence_xml" depending on itself


  Commit: 5b470b8274f48e752e1b37f15925a95c00912a3e
      https://github.com/OpenSIPS/opensips/commit/5b470b8274f48e752e1b37f15925a95c00912a3e
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2014-08-13 (Wed, 13 Aug 2014)

  Changed paths:
    M modules/alias_db/alias_db.c
    M modules/auth/auth_mod.c
    M modules/auth_aaa/authaaa_mod.c
    M modules/auth_db/authdb_mod.c
    M modules/auth_diameter/auth_diameter.c
    M modules/avpops/avpops.c
    M modules/b2b_entities/b2b_entities.c
    M modules/b2b_logic/b2b_logic.c
    M modules/b2b_sca/b2b_sca.c
    M modules/call_center/call_center.c
    M modules/call_control/call_control.c
    M modules/carrierroute/carrierroute.c
    M modules/closeddial/closeddial.c
    M modules/cpl-c/cpl.c
    M modules/db_cachedb/db_cachedb.c
    M modules/db_perlvdb/perlvdb.c
    M modules/db_virtual/db_virtual.c
    M modules/dialog/dialog.c
    M modules/dialplan/dialplan.c
    M modules/dispatcher/dispatcher.c
    M modules/dns_cache/dns_cache.c
    M modules/domainpolicy/domainpolicy_mod.c
    M modules/drouting/drouting.c
    M modules/group/group_mod.c
    M modules/h350/h350_mod.c
    M modules/imc/imc.c
    M modules/jabber/jabber.c
    M modules/load_balancer/load_balancer.c
    M modules/mediaproxy/mediaproxy.c
    M modules/mi_http/mi_http.c
    M modules/mi_json/mi_json.c
    M modules/mi_xmlrpc_ng/mi_xmlrpc_http.c
    M modules/msilo/msilo.c
    M modules/nat_traversal/nat_traversal.c
    M modules/nathelper/nathelper.c
    M modules/options/mod_options.c
    M modules/osp/osp_mod.c
    M modules/path/path_mod.c
    M modules/pdt/pdt.c
    M modules/peering/peering.c
    M modules/perl/perl.c
    M modules/pi_http/pi_http.c
    M modules/presence/presence.c
    M modules/presence_callinfo/presence_callinfo.c
    M modules/presence_dialoginfo/presence_dialoginfo.c
    M modules/presence_mwi/presence_mwi.c
    M modules/presence_xcapdiff/presence_xcapdiff.c
    M modules/presence_xml/presence_xml.c
    M modules/pua/pua.c
    M modules/pua_bla/pua_bla.c
    M modules/pua_dialoginfo/pua_dialoginfo.c
    M modules/pua_mi/pua_mi.c
    M modules/pua_usrloc/pua_usrloc.c
    M modules/pua_xmpp/pua_xmpp.c
    M modules/qos/qos.c
    M modules/registrar/reg_mod.c
    M modules/rls/rls.c
    M modules/rtpengine/rtpengine.c
    M modules/rtpproxy/rtpproxy.c
    M modules/script_helper/script_helper.c
    M modules/seas/seas.c
    M modules/signaling/signaling.c
    M modules/sipcapture/sipcapture.c
    M modules/siptrace/siptrace.c
    M modules/sms/sms.c
    M modules/sngtc/sngtc.c
    M modules/snmpstats/snmpstats.h
    M modules/speeddial/speeddial.c
    M modules/sst/sst.c
    M modules/uac/uac.c
    M modules/uac_redirect/redirect.c
    M modules/uac_registrant/registrant.c
    M modules/uri/uri_mod.c
    M modules/userblacklist/userblacklist.c
    M modules/usrloc/ul_mod.c
    M modules/xcap/xcap_mod.c
    M modules/xcap_client/xcap_client.c
    M modules/xmpp/xmpp.c

  Log Message:
  -----------
  module dependencies: declare the dependencies of each OpenSIPS module


  Commit: 8d4b329057e3f09e8562d73c3ebda853b7c6a7f5
      https://github.com/OpenSIPS/opensips/commit/8d4b329057e3f09e8562d73c3ebda853b7c6a7f5
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2014-08-13 (Wed, 13 Aug 2014)

  Changed paths:
    M modules/avpops/avpops.c
    M sr_module_deps.c

  Log Message:
  -----------
  module dependencies core: properly handle the USE_FUNC_PARAM


  Commit: 61a973d5fec7d4c53ed06e9edf01ea10a57659f7
      https://github.com/OpenSIPS/opensips/commit/61a973d5fec7d4c53ed06e9edf01ea10a57659f7
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2014-08-13 (Wed, 13 Aug 2014)

  Changed paths:
    M modules/acc/acc_mod.c
    M modules/alias_db/alias_db.c
    M modules/auth/auth_mod.c
    M modules/auth_aaa/authaaa_mod.c
    M modules/auth_db/authdb_mod.c
    M modules/auth_diameter/auth_diameter.c
    M modules/avpops/avpops.c
    M modules/b2b_entities/b2b_entities.c
    M modules/b2b_logic/b2b_logic.c
    M modules/b2b_sca/b2b_sca.c
    M modules/call_center/call_center.c
    M modules/call_control/call_control.c
    M modules/carrierroute/carrierroute.c
    M modules/closeddial/closeddial.c
    M modules/cpl-c/cpl.c
    M modules/db_cachedb/db_cachedb.c
    M modules/db_perlvdb/perlvdb.c
    M modules/db_virtual/db_virtual.c
    M modules/dialog/dialog.c
    M modules/dialplan/dialplan.c
    M modules/dispatcher/dispatcher.c
    M modules/dns_cache/dns_cache.c
    M modules/domainpolicy/domainpolicy_mod.c
    M modules/drouting/drouting.c
    M modules/group/group_mod.c
    M modules/h350/h350_mod.c
    M modules/imc/imc.c
    M modules/jabber/jabber.c
    M modules/load_balancer/load_balancer.c
    M modules/mediaproxy/mediaproxy.c
    M modules/mi_http/mi_http.c
    M modules/mi_json/mi_json.c
    M modules/mi_xmlrpc_ng/mi_xmlrpc_http.c
    M modules/msilo/msilo.c
    M modules/nat_traversal/nat_traversal.c
    M modules/nathelper/nathelper.c
    M modules/options/mod_options.c
    M modules/osp/osp_mod.c
    M modules/path/path_mod.c
    M modules/pdt/pdt.c
    M modules/peering/peering.c
    M modules/perl/perl.c
    M modules/pi_http/pi_http.c
    M modules/presence/presence.c
    M modules/presence_callinfo/presence_callinfo.c
    M modules/presence_dialoginfo/presence_dialoginfo.c
    M modules/presence_mwi/presence_mwi.c
    M modules/presence_xcapdiff/presence_xcapdiff.c
    M modules/presence_xml/presence_xml.c
    M modules/pua/pua.c
    M modules/pua_bla/pua_bla.c
    M modules/pua_dialoginfo/pua_dialoginfo.c
    M modules/pua_mi/pua_mi.c
    M modules/pua_usrloc/pua_usrloc.c
    M modules/pua_xmpp/pua_xmpp.c
    M modules/qos/qos.c
    M modules/registrar/reg_mod.c
    M modules/rls/rls.c
    M modules/rtpengine/rtpengine.c
    M modules/rtpproxy/rtpproxy.c
    M modules/script_helper/script_helper.c
    M modules/seas/seas.c
    M modules/signaling/signaling.c
    M modules/sipcapture/sipcapture.c
    M modules/siptrace/siptrace.c
    M modules/sms/sms.c
    M modules/sngtc/sngtc.c
    M modules/snmpstats/snmpstats.h
    M modules/speeddial/speeddial.c
    M modules/sst/sst.c
    M modules/uac/uac.c
    M modules/uac_redirect/redirect.c
    M modules/uac_registrant/registrant.c
    M modules/uri/uri_mod.c
    M modules/userblacklist/userblacklist.c
    M modules/usrloc/ul_mod.c
    M modules/xcap/xcap_mod.c
    M modules/xcap_client/xcap_client.c
    M modules/xmpp/xmpp.c
    M sr_module_deps.c
    M sr_module_deps.h

  Log Message:
  -----------
  module dependencies: Add configurable behaviour on dependency failures

When exporting a dependency, a module must also specify the action taken
if this dependency is not met during startup. Current
possible behaviours: SILENT, WARN and ABORT.


  Commit: 57a042b9335126966309654f8b950ab722582dc6
      https://github.com/OpenSIPS/opensips/commit/57a042b9335126966309654f8b950ab722582dc6
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2014-08-13 (Wed, 13 Aug 2014)

  Changed paths:
    M sr_module.c
    M sr_module_deps.c
    M sr_module_deps.h

  Log Message:
  -----------
  module dependencies core: reclaim all used pkg memory

After startup, all module dependency structs will be freed.


  Commit: 104d533e1323e45d896b63afde34686c0f62e8b8
      https://github.com/OpenSIPS/opensips/commit/104d533e1323e45d896b63afde34686c0f62e8b8
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2014-08-13 (Wed, 13 Aug 2014)

  Changed paths:
    M modules/sst/sst.c

  Log Message:
  -----------
  sst: add a silent module dependency with pua_dialoginfo

Since "sst" performs a callback-based update on the "Session-Expires"
header, pua_dialoginfo must be loaded before sst.


Compare: https://github.com/OpenSIPS/opensips/compare/5b558451c019...104d533e1323


More information about the Devel mailing list