Skip to content
Snippets Groups Projects
  1. Mar 14, 2018
    • Corey Farrell's avatar
      loader: Convert reload_classes to built-in modules. · 572a508e
      Corey Farrell authored
      * acl (named_acl.c)
      * cdr
      * cel
      * ccss
      * dnsmgr
      * dsp
      * enum
      * extconfig (config.c)
      * features
      * http
      * indications
      * logger
      * manager
      * plc
      * sounds
      * udptl
      
      These modules are now loaded at appropriate time by the module loader.
      Unlike loadable modules these use AST_MODULE_LOAD_FAILURE on error so
      the module loader will abort startup on failure of these modules.
      
      Some of these modules are still initialized or shutdown from outside the
      module loader.  logger.c is initialized very early and shutdown very
      late, manager.c is initialized by the module loader but is shutdown by
      the Asterisk core (too much uses it without holding references).
      
      Change-Id: I371a9a45064f20026c492623ea8062d02a1ab97f
      572a508e
  2. Mar 07, 2018
  3. Jan 22, 2018
  4. Jan 12, 2018
  5. Jan 06, 2018
  6. Jan 05, 2018
  7. Dec 28, 2017
    • Sean Bright's avatar
      cdr_mysql: Make sure connection charset is always set · 898b3b08
      Sean Bright authored
      When the MYSQL_OPT_RECONNECT option is enabled, the MySQL client API
      will transparently reconnect when it needs to. Ideally this simplifies
      our code, but when this reconnection occurs all connection state is
      lost. Because we are not notified that this has happened, we don't know
      to set our character set again (with "SET NAMES 'xyz'").
      
      Rather than calling SET NAMES, we instead set the MYSQL_SET_CHARSET_NAME
      option which will do it for us under the hood on each connect. This
      option has been present in the MySQL C API for at least 15 years, so it
      should be safe for most installations.
      
      I also snuck a few other changes into this patch:
      
      * Default the MySQL port to MYSQL_PORT (3306) instead of 0 if it's not
        defined.
      
      * Fix some erroneous and/or silly checks on the contents of the
        configuration ast_str values.
      
      ASTERISK-27366 #close
      Reported by: Halil İbrahim YILDIZ
      
      Change-Id: I36bf8dc5d5f83584e803b3b1a151dea9396ab8f5
      898b3b08
  8. Dec 22, 2017
  9. Dec 20, 2017
    • Corey Farrell's avatar
      Fix Common Typo's. · 1b80ffa4
      Corey Farrell authored
      Fix instances of:
      * Retreive
      * Recieve
      * other then
      * different then
      * Repeated words ("the the", "an an", "and and", etc).
      * othterwise, teh
      
      ASTERISK-24198 #close
      
      Change-Id: I3809a9c113b92fd9d0d9f9bac98e9c66dc8b2d31
      1b80ffa4
  10. Nov 23, 2017
  11. Oct 10, 2017
  12. Sep 18, 2017
  13. Sep 01, 2017
  14. Aug 01, 2017
    • Corey Farrell's avatar
      Fix compiler warnings on Fedora 26 / GCC 7. · 58d03211
      Corey Farrell authored
      GCC 7 has added capability to produce warnings, this fixes most of those
      warnings.  The specific warnings are disabled in a few places:
      
      * app_voicemail.c: truncation of paths more than 4096 chars in many places.
      * chan_mgcp.c: callid truncated to 80 chars.
      * cdr.c: two userfields are combined to cdr copy, fix would break ABI.
      * tcptls.c: ignore use of deprecated method SSLv3_client_method().
      
      ASTERISK-27156 #close
      
      Change-Id: I65f280e7d3cfad279d16f41823a4d6fddcbc4c88
      58d03211
  15. May 30, 2017
    • Sean Bright's avatar
      format_mp3: Re-work menuselect/build issues · 045d7b8c
      Sean Bright authored
      Rather than removing format_mp3 from ALL_C_MODS (which caused format_mp3
      to not show up in menuselect), use .PHONY targets when the necessary
      source files are not present.
      
      ASTERISK-23951
      Reported by: Tzafrir Cohen
      
      Change-Id: I0a7512c51acc9e86043671795020b0de725bd9e8
      045d7b8c
  16. May 25, 2017
  17. Apr 25, 2017
    • Sean Bright's avatar
      cleanup: Fix fread() and fwrite() error handling · f5b67871
      Sean Bright authored
      Cleaned up some of the incorrect uses of fread() and fwrite(), mostly in
      the format modules. Neither of these functions will ever return a value
      less than 0, which we were checking for in some cases.
      
      I've introduced a fair amount of duplication in the format modules, but
      I plan to change how format modules work internally in a subsequent
      patch set, so this is simply a stop-gap.
      
      Change-Id: I8ca1cd47c20b2c0b72088bd13b9046f6977aa872
      f5b67871
  18. Apr 12, 2017
    • George Joseph's avatar
      modules: change module LOAD_FAILUREs to LOAD_DECLINES · 747beb1e
      George Joseph authored
      In all non-pbx modules, AST_MODULE_LOAD_FAILURE has been changed
      to AST_MODULE_LOAD_DECLINE.  This prevents asterisk from exiting
      if a module can't be loaded.  If the user wishes to retain the
      FAILURE behavior for a specific module, they can use the "require"
      or "preload-require" keyword in modules.conf.
      
      A new API was added to logger: ast_is_logger_initialized().  This
      allows asterisk.c/check_init() to print to the error log once the
      logger subsystem is ready instead of just to stdout.  If something
      does fail before the logger is initialized, we now print to stderr
      instead of stdout.
      
      Change-Id: I5f4b50623d9b5a6cb7c5624a8c5c1274c13b2b25
      747beb1e
  19. Mar 27, 2017
  20. Feb 21, 2017
    • Sean Bright's avatar
      realtime: Centralize some common realtime backend code · 6e6c96d7
      Sean Bright authored
      All of the realtime backends create artificial ast_categorys to pass
      back into the core as query results. These categories have no filename
      or line number information associated with them and the backends differ
      slightly on how they create them. So create a couple helper macros to
      help make things more consistent.
      
      Also updated the call sites to remove redundant error messages about
      memory allocation failure.
      
      Note that res_config_ldap sets the category filename to the 'table name'
      but that is not read by anything in the core, so I've dropped it.
      
      Change-Id: I3a1fd91e0c807dea1ce3b643b0a6fe5be9002897
      6e6c96d7
  21. Feb 16, 2017
    • Sean Bright's avatar
      realtime: Fix LIKE escaping in SQL backends · e93f2a51
      Sean Bright authored
      The realtime framework allows for components to look up values using a
      LIKE clause with similar syntax to SQL's. pbx_realtime uses this
      functionality to search for pattern matching extensions that start with
      an underscore (_).
      
      When passing an underscore to SQL's LIKE clause, it will be interpreted
      as a wildcard matching a single character and therefore needs to be
      escaped. It is (for better or for worse) the responsibility of the
      component that is querying realtime to escape it with a backslash before
      passing it in. Some RDBMs support escape characters by default, but the
      SQL92 standard explicitly says that there are no escape characters
      unless they are specified with an ESCAPE clause, e.g.
      
      	SELECT * FROM table WHERE column LIKE '\_%' ESCAPE '\'
      
      This patch instructs 3 backends - res_config_mysql, res_config_pgsql,
      and res_config_sqlite3 - to use the ESCAPE clause where appropriate.
      
      Looking through documentation and source tarballs, I was able to
      determine that the ESCAPE clause is supported in:
      
      MySQL 5.0.15   (released 2005-10-22 - earliest version available from
                      archives)
      PostgreSQL 7.1 (released 2001-04-13)
      SQLite 3.1.0   (released 2005-01-21)
      
      The versions of the relevant libraries that we depend on to access MySQL
      and PostgreSQL will not work on versions that old, and I've added an
      explicit check in res_config_sqlite3 to only use the ESCAPE clause when
      we have a sufficiently new version of SQLite3.
      
      res_config_odbc already handles the escape characters appropriately, so
      no changes were required there.
      
      ASTERISK-15858 #close
      Reported by: Humberto Figuera
      
      ASTERISK-26057 #close
      Reported by: Stepan
      
      Change-Id: I93117fbb874189ae819f4a31222df7c82cd20efa
      e93f2a51
  22. Nov 11, 2016
    • Timo Teräs's avatar
      addons/chan_mobile: do not use strerror_r · 939dcf66
      Timo Teräs authored
      The two reasons why it might be used are that some systems do not
      implement strerror in thread safe manner, and that strerror_r returns
      the error code in the string in case there's no error message.
      
      However, all of asterisk elsewhere uses strerror() and assumes it
      to be thread safe. And in chan_mobile the errno is also explicitly
      printed so neither of the above reasons are valid.
      
      The reasoning to remove usage is that there are actually two versions
      of strerror_r: XSI and GNU. They are incompatible in their return
      value, and there's no easy way to figure out which one is being
      used. glibc gives you the GNU version if _GNU_SOURCE is defined,
      but the same feature test macro is needed for other symbols. On
      all other systems you assumedly get XSI symbol, and compilation warnings
      as well as non-working error printing.
      
      Thus the easiest solution is to just remove strerror_r and use
      strerror as rest of the code. Alternative is to introduce ast_strerror
      in separate translation unit so it can request the XSI symbol in
      glibc case, and replace all usage of strerror.
      
      Change-Id: I84d35225b5642d85d48bc35fdf399afbae28a91d
      939dcf66
  23. Nov 07, 2016
  24. Nov 03, 2016
  25. Oct 27, 2016
    • Corey Farrell's avatar
      Remove ASTERISK_REGISTER_FILE. · a6e5bae3
      Corey Farrell authored
      ASTERISK_REGISTER_FILE no longer has any purpose so this commit removes
      all traces of it.
      
      Previously exported symbols removed:
      * __ast_register_file
      * __ast_unregister_file
      * ast_complete_source_filename
      
      This also removes the mtx_prof static variable that was declared when
      MTX_PROFILE was enabled.  This variable was only used in lock.c so it
      is now initialized in that file only.
      
      ASTERISK-26480 #close
      
      Change-Id: I1074af07d71f9e159c48ef36631aa432c86f9966
      a6e5bae3
  26. Oct 12, 2016
    • George Joseph's avatar
      res_config_mysql: Fix several issues related to recent table changes · 3b3d0688
      George Joseph authored
      Unlike any of the other database drivers, res_config_mysql checks that
      the table definition matches the requirements for every insert and
      update statement.  Since all requirements are forced to 'char', any
      column that isn't a char, like ps_contacts' expiration_time,
      qualify_timeout, etc., will throw a warning.  It's kinda harmless but
      very misleading.  Since no other driver does those checks on insert
      or update, they've been removed from res_config_mysql.  Also, all
      the logic that actually attempted to ALTER the table to fix the issue
      has been removed.  With the move to alembic, the auto-alter
      functionality is not only unnecessary, it's also dangerous.
      
      The other issue is that res_config_mysql calls the mysql_insert_id
      function inside store_mysql.  Presumably the intention was to return
      the number of rows inserted DESPITE A NOTE IN THE CODE THAT THE VALUE
      IS NON_PORTABLE AND MAY CHANGE.  That value is then returned to
      config realtime as the number of rows inserted.  Guess what?  The value
      changed.  It now only returns the number of rows inserted if there's an
      auto increment column on the table, which ps_contacts doesn't have.
      Otherwise it returns 0.  So now, the insert worked but we tell config
      realtime and sorcery that no rows were inserted.  That call to
      mysql_insert_id was removed and we now always return 1 if the insert
      succeeded.  We're only inserting 1 row at a time anyway.  If the insert
      fails, we still return -1.
      
      ASTERISK-26362 #close
      Reported-by: Carlos Chavez
      
      Change-Id: I83ce633efdb477b03c8399946994ee16fefceaf4
      3b3d0688
  27. Sep 15, 2016
    • Tzafrir Cohen's avatar
      cdr_mysql: fix UTC support · d3ddf4b0
      Tzafrir Cohen authored
      * Make 'cdrzone=UTC' work properly.
      * Fix the documentation of cdr_mysql.conf: it's cdrzone and not timezone
      
      ASTERISK-26359 #close
      
      Change-Id: I2a6f67b71bbbe77cac31a34d0bbfb1d67c933778
      d3ddf4b0
  28. Aug 16, 2016
    • Corey Farrell's avatar
      Refactor usage pattern of xmldoc info tag. · 824a4e84
      Corey Farrell authored
      This updates func_channel.c and main/message.c to use a generic xpointer
      include instead of including info from each channel driver.  Now the
      name attribute of info is CHANNEL or CHANNEL_EXAMPLES to be included in
      documentation for func_channel.  Setting the name attribute of info to
      MessageToInfo or MessageFromInfo causes it to be included in the
      MessageSend application and AMI action.
      
      Change-Id: I89fd8276a3250824241a618009714267d3a8d1ea
      824a4e84
  29. Aug 15, 2016
    • Matt Jordan's avatar
      func_channel: Reorganize documentation · ddab42e2
      Matt Jordan authored
      * Following the example of the PJSIP channel driver, the channel
        technology specific documentation has been moved to the respective
        channel drivers that provide that functionality. This has the benefit
        of locating the documentation of items with those modules that provide
        it.
      
      * Examples of using the CHANNEL function for both standard items as well
        as for PJSIP have been added.
      
      * The 'max_forwards' standard item has been documented.
      
      Change-Id: Ifaa79a232c8ac99cf8da6ef6cc7815d398b1b79b
      ddab42e2
  30. Jun 08, 2016
    • Timo Teräs's avatar
      Fixes to include signal.h · 39b69ab5
      Timo Teräs authored
      POSIX defines signal.h. sys/signal.h should not be used as it is
      c-library internal header which may or may not exist. Notably with
      musl it generates warning of being incorrect.
      
      Change-Id: Ia56b0aa1d84b5c590114867b1b384a624f39a6fc
      39b69ab5
  31. Jun 07, 2016
    • Alexander Traud's avatar
      BuildSystem: Avoid 'ar cru' and use 'ar cr' instead. · da943ec5
      Alexander Traud authored
      In several internal library projects, the files are archived with the help of
      'ar cr'. Only the projects editline and the Objective Open H.323 stack
      implementation in C (ooh323c) use 'ar cru' instead. Recently, some platforms
      changed the default parameters of AR which creates "/usr/bin/ar: `u' modifier
      ignored since `D' is the default (see `U')". For consistency and to avoid this
      message all projects use 'ar cr' now.
      
      ASTERISK-26091 #close
      
      Change-Id: I710a9b1c01c1b5a1931a646098c044c8161ead40
      da943ec5
  32. Mar 07, 2016
    • Rodrigo Ramírez Norambuena's avatar
      main/cli.c: Refactor function to print seconds formatted · 0ec9fe54
      Rodrigo Ramírez Norambuena authored
      Refactor and created function ast_cli_print_timestr_fromseconds to print
      seconds formatted:  year(s) week(s) day(s) hour(s) second(s)
      
      This function now is used in addons/cdr_mysql.c,cdr_pgsql.c, main/cli.c,
      res_config_ldap.c, res_config_pgsql.c.
      
      Change-Id: Ibeb8634102cd11d3f8623398b279cb731bcde36c
      0ec9fe54
  33. Feb 02, 2016
  34. Nov 09, 2015
  35. Sep 09, 2015
  36. Sep 07, 2015
  37. May 13, 2015
  38. May 08, 2015
    • Alexandre Fournier's avatar
      res_config_mysql: Fix broken column type checking · 1503d0c1
      Alexandre Fournier authored
      MySQL configuration engine contains a bug in require_mysql(). This
      function is used for column type checking in tables. This bug only
      affects DATETIME, DATE and FLOAT types.
      
      It came from mixing the first condition (switch-case-like
      if/then/else), to check the expected column type, with the second
      condition, to check the actual column type against the expected column
      type. Both conditions must be checked separately in order to avoid the
      execution of the wrong block.
      
      ASTERISK-18252 #comment This patch might fix the issue
      Reported by: Gareth Blades
      
      ASTERISK-25041 #close
      Reported by: Alexandre Fournier
      Tested by: Alexandre Fournier
      
      Change-Id: I0b8bf7e68ab938be8e6525a249260cb648cb0bfa
      1503d0c1
Loading