Skip to content
Snippets Groups Projects
  1. Apr 13, 2015
    • Matt Jordan's avatar
      git migration: Refactor the ASTERISK_FILE_VERSION macro · 4a582616
      Matt Jordan authored
      Git does not support the ability to replace a token with a version
      string during check-in. While it does have support for replacing a
      token on clone, this is somewhat sub-optimal: the token is replaced
      with the object hash, which is not particularly easy for human
      consumption. What's more, in practice, the source file version was often
      not terribly useful. Generally, when triaging bugs, the overall version
      of Asterisk is far more useful than an individual SVN version of a file. As a
      result, this patch removes Asterisk's support for showing source file
      versions.
      
      Specifically, it does the following:
      
      * Rename ASTERISK_FILE_VERSION macro to ASTERISK_REGISTER_FILE, and
        remove passing the version in with the macro. Other facilities
        than 'core show file version' make use of the file names, such as
        setting a debug level only on a specific file. As such, the act of
        registering source files with the Asterisk core still has use. The
        macro rename now reflects the new macro purpose.
      
      * main/asterisk:
        - Refactor the file_version structure to reflect that it no longer
          tracks a version field.
        - Remove the "core show file version" CLI command. Without the file
          version, it is no longer useful.
        - Remove the ast_file_version_find function. The file version is no
          longer tracked.
        - Rename ast_register_file_version/ast_unregister_file_version to
          ast_register_file/ast_unregister_file, respectively.
      
      * main/manager: Remove value from the Version key of the ModuleCheck
        Action. The actual key itself has not been removed, as doing so would
        absolutely constitute a backwards incompatible change. However, since
        the file version is no longer tracked, there is no need to attempt to
        include it in the Version key.
      
      * UPGRADE: Add notes for:
        - Modification to the ModuleCheck AMI Action
        - Removal of the "core show file version" CLI command
      
      Change-Id: I6cf0ff280e1668bf4957dc21f32a5ff43444a40e
      4a582616
  2. Mar 07, 2014
    • Scott Griepentrog's avatar
      uniqueid: channel linkedid, ami, ari object creation with id's · 80ef9a21
      Scott Griepentrog authored
      Much needed was a way to assign id to objects on creation, and
      much change was necessary to accomplish it.  Channel uniqueids
      and linkedids are split into separate string and creation time
      components without breaking linkedid propgation.  This allowed
      the uniqueid to be specified by the user interface - and those
      values are now carried through to channel creation, adding the
      assignedids value to every function in the chain including the
      channel drivers. For local channels, the second channel can be
      specified or left to default to a ;2 suffix of first.  In ARI,
      bridge, playback, and snoop objects can also be created with a
      specified uniqueid.
      
      Along the way, the args order to allocating channels was fixed
      in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
      masquerade occurs.
      
      (closes issue ASTERISK-23120)
      Review: https://reviewboard.asterisk.org/r/3191/
      ........
      
      Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      80ef9a21
  3. Dec 09, 2013
  4. Feb 05, 2013
  5. May 18, 2012
    • Matthew Jordan's avatar
      Fix a variety of memory leaks · 7b513206
      Matthew Jordan authored
      This patch addresses a number of memory leaks in a variety of modules that were
      found by a static analysis tool.  A brief summary of the changes:
      
      * app_minivm:       free ast_str objects on off nominal paths
      * app_page:         free the ast_dial object if the requested channel technology
                          cannot be appended to the dialing structure
      * app_queue:        if a penalty rule failed to match any existing rule list
                          names, the created rule would not be inserted and its memory
                          would be leaked
      * app_read:         dispose of the created silence detector in the presence of
                          off nominal circumstances
      * app_voicemail:    dispose of an allocated unique ID field for MWI event
                          un-subscribe requests in off nominal paths; dispose of
                          configuration objects when using the secret.conf option
      * chan_dahdi:       dispose of the allocated frame produced by ast_dsp_process
      * chan_iax2:        properly unref peer in CLI command "iax2 unregister"
      * chan_sip:         dispose of the allocated frame produced by sip_rtp_read's
                          call of ast_dsp_process; free memory in parse unit tests
      * func_dialgroup:   properly deref ao2 object grhead in nominal path of
                          dialgroup_read
      * func_odbc:        free resultset in off nominal paths of odbc_read
      * cli:              free match_list in off nominal paths of CLI match completion
      * config:           free comment_buffer/list_buffer when configuration file load
                          is unchanged; free the same buffers any time they were
                          created and config files were processed
      * data:             free XML nodes in various places
      * enum:             free context buffer in off nominal paths
      * features:         free ast_call_feature in off nominal paths of applicationmap
                          config processing
      * netsock2:         users of ast_sockaddr_resolve pass in an ast_sockaddr struct
                          that is allocated by the method.  Failures in
                          ast_sockaddr_resolve could result in the users of the method
                          not knowing whether or not the buffer was allocated.  The
                          method will now not allocate the ast_sockaddr struct if it
                          will return failure.
      * pbx:              cleanup hash table traversals in off nominal paths; free
                          ignore pattern buffer if it already exists for the specified
                          context
      * xmldoc:           cleanup various nodes when we no longer need them
      * main/editline:    various cleanup of pointers not being freed before being
                          assigned to other memory, cleanup along off nominal paths
      * menuselect/mxml:  cleanup of value buffer for an attribute when that attribute
                          did not specify a value
      * res_calendar*:    responses are allocated via the various *_request method
                          returns and should not be allocated in the various
                          write_event methods; ensure attendee buffer is freed if no
                          data exists in the parsed node; ensure that calendar objects
                          are de-ref'd appropriately
      * res_jabber:       free buffer in off nominal path
      * res_musiconhold:  close the DIR* object in off nominal paths
      * res_rtp_asterisk: if we run out of ports, close the rtp socket object and free
                          the rtp object
      * res_srtp:         if we fail to create the session in libsrtp, destroy the
                          temporary ast_srtp object
      
      (issue ASTERISK-19665)
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/1922
      ........
      
      Merged revisions 366880 from http://svn.asterisk.org/svn/asterisk/branches/1.8
      ........
      
      Merged revisions 366881 from http://svn.asterisk.org/svn/asterisk/branches/10
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@366917 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      7b513206
  6. Mar 24, 2012
  7. Mar 10, 2012
  8. Feb 28, 2012
  9. Jan 24, 2012
  10. Jan 09, 2012
    • Terry Wilson's avatar
      Replace direct access to channel name with accessor functions · 04da92c3
      Terry Wilson authored
      There are many benefits to making the ast_channel an opaque handle, from
      increasing maintainability to presenting ways to kill masquerades. This patch
      kicks things off by taking things a field at a time, renaming the field to
      '__do_not_use_${fieldname}' and then writing setters/getters and converting the
      existing code to using them. When all fields are done, we can move ast_channel
      to a C file from channel.h and lop off the '__do_not_use_'.
      
      This patch sets up main/channel_interal_api.c to be the only file that actually
      accesses the ast_channel's fields directly. The intent would be for any API
      functions in channel.c to use the accessor functions. No more monkeying around
      with channel internals. We should use our own APIs.
      
      The interesting changes in this patch are the addition of
      channel_internal_api.c, the moving of the AST_DATA stuff from channel.c to
      channel_internal_api.c (note: the AST_DATA stuff will have to be reworked to
      use accessor functions when ast_channel is really opaque), and some re-working
      of the way channel iterators/callbacks are handled so as to avoid creating fake
      ast_channels on the stack to pass in matching data by directly accessing fields
      (since "name" is a stringfield and the fake channel doesn't init the
      stringfields, you can't use the ast_channel_name_set() function). I went with
      ast_channel_name(chan) for a getter, and ast_channel_name_set(chan, name) for a
      setter.
      
      The majority of the grunt-work for this change was done by writing a semantic
      patch using Coccinelle ( http://coccinelle.lip6.fr/ ).
      
      Review: https://reviewboard.asterisk.org/r/1655/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@350223 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      04da92c3
  11. Jul 14, 2011
  12. Dec 10, 2009
    • Jeff Peeler's avatar
      Add audio announcement option to app_page · 2414bc80
      Jeff Peeler authored
      As described in the CHANGES file:
      * MeetMe has a new option 'G' to play an announcement before joining a
        conference.
      * Page has a new option 'A(x)' which will playback an announcement 
        simultaneously to all paged phones (and optionally excluding the caller's one 
        using the new option 'n') before the call is bridged.
      
      To add the new option to meetme, the conference flag options had to be extended 
      to 64 bits.
      
      (closes issue #14365)
      Reported by: dferrer
      Patches:
            page_announce.patch uploaded by dferrer (license 525)
            modified by me
      
      Review: https://reviewboard.asterisk.org/r/188/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@234173 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      2414bc80
  13. Jun 15, 2009
  14. May 21, 2009
    • Kevin P. Fleming's avatar
      Const-ify the world (or at least a good part of it) · e6b2e9a7
      Kevin P. Fleming authored
      This patch adds 'const' tags to a number of Asterisk APIs where they are appropriate (where the API already demanded that the function argument not be modified, but the compiler was not informed of that fact). The list includes:
      
      - CLI command handlers
      - CLI command handler arguments
      - AGI command handlers
      - AGI command handler arguments
      - Dialplan application handler arguments
      - Speech engine API function arguments
      
      In addition, various file-scope and function-scope constant arrays got 'const' and/or 'static' qualifiers where they were missing.
      
      Review: https://reviewboard.asterisk.org/r/251/
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      e6b2e9a7
  15. May 12, 2009
  16. Jan 25, 2009
  17. Jan 14, 2009
    • Steve Murphy's avatar
      Merged revisions 168608 via svnmerge from · a4743411
      Steve Murphy authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
        r168608 | murf | 2009-01-14 12:34:35 -0700 (Wed, 14 Jan 2009) | 1 line
        
        app_page was failing to compile in dev-mode on my gcc-4.2.4 system. This change gets rid of the warning.
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168613 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      a4743411
    • Terry Wilson's avatar
      Merged revisions 168593 via svnmerge from · 2015f9c9
      Terry Wilson authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
        r168593 | twilson | 2009-01-13 19:27:18 -0600 (Tue, 13 Jan 2009) | 20 lines
        
        Don't overflow when paging more than 128 extensions
        
        The number of available slots for calls in app_page was hardcoded to 128.
        Proper bounds checking was not in place to enforce this limit, so if more than
        128 extensions were passed to the Page() app, Asterisk would crash.  This patch
        instead dynamically allocates memory for the ast_dial structures and removes
        the (non-functional) arbitrary limit.
        
        This issue would have special importance to anyone who is dynamically creating
        the argument passed to the Page application and allowing more than 128
        extensions to be added by an outside user via some external interface.
        
        The patch posted by a_villacis was slightly modified for some coding guidelines
        and other cleanups.  Thanks, a_villacis!
        (closes issue #14217)
        Reported by: a_villacis
        Patches: 
              20080912-asterisk-app_page-fix-buffer-overflow.patch uploaded by a (license 660)
        Tested by: otherwiseguy
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168594 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      2015f9c9
  18. Dec 15, 2008
  19. Nov 05, 2008
  20. Nov 04, 2008
  21. Nov 02, 2008
  22. Nov 01, 2008
  23. Oct 31, 2008
  24. Jun 12, 2008
  25. Mar 11, 2008
  26. Nov 21, 2007
  27. Nov 19, 2007
  28. Nov 16, 2007
    • Luigi Rizzo's avatar
      Start untangling header inclusion in a way that does not affect · fdb7f7ba
      Luigi Rizzo authored
      build times - tested, there is no measureable difference before and
      after this commit.
      
      In this change:
      
      use asterisk/compat.h to include a small set of system headers:
      inttypes.h, unistd.h, stddef.h, stddint.h, sys/types.h, stdarg.h,
      stdlib.h, alloca.h, stdio.h
      
      Where available, the inclusion is conditional on HAVE_FOO_H as determined
      by autoconf.
      
      Normally, source files should not include any of the above system headers,
      and instead use either "asterisk.h" or "asterisk/compat.h" which does it
      better. 
      
      For the time being I have left alone second-level directories
      (main/db1-ast, etc.).
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89333 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      fdb7f7ba
  29. Jul 31, 2007
  30. Jul 23, 2007
  31. Jul 16, 2007
  32. Jun 01, 2007
  33. Mar 16, 2007
  34. Feb 12, 2007
  35. Jan 24, 2007
  36. Jan 18, 2007
Loading