]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 372499 via svnmerge from
authorAutomerge script <automerge@asterisk.org>
Thu, 6 Sep 2012 19:22:43 +0000 (19:22 +0000)
committerAutomerge script <automerge@asterisk.org>
Thu, 6 Sep 2012 19:22:43 +0000 (19:22 +0000)
file:///srv/subversion/repos/asterisk/branches/10

........
  r372499 | dsessions | 2012-09-06 13:54:54 -0500 (Thu, 06 Sep 2012) | 16 lines

  LDAP Realtime Peers Cannot Register

  Prior to 1.8, it was not necessary for an explicit "type" to be set for an
  asterisk LDAP realtime peer. Now the routine find_peer actually checks the
  type field during registration and fails to find the peer if it is not set.

  The attached patches make the realtime type equal whatever type is being
  searched for if the type is 0 upon return from routine build_peer.

  (closes issue ASTERISK-17222)
  Reported by: John Covert
  Patch by: David Vossel
  Tested by: Darren Sessions

  Review: https://reviewboard.asterisk.org/r/2095/
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10-digiumphones@372516 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c
configs/res_ldap.conf.sample

index d0e71001e6b92e7ce340d0ad5614a9f571bab4c9..b2f2ccfdde0f01fe924499525db94071aacb63c7 100644 (file)
@@ -5079,6 +5079,18 @@ static struct sip_peer *realtime_peer(const char *newpeername, struct ast_sockad
                goto cleanup;
        }
 
+       /* Previous versions of Asterisk did not require the type field to be
+        * set for real time peers.  This statement preserves that behavior. */
+       if  (peer->type == 0) {
+               if (which_objects == FINDUSERS) {
+                       peer->type = SIP_TYPE_USER;
+               } else if (which_objects == FINDPEERS) {
+                       peer->type = SIP_TYPE_PEER;
+               } else {
+                       peer->type = SIP_TYPE_PEER | SIP_TYPE_USER;
+               }
+       }
+
        ast_debug(3, "-REALTIME- loading peer from database to memory. Name: %s. Peer objects: %d\n", peer->name, rpeerobjs);
 
        if (ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS) && !devstate_only) {
index 4655841ec6afff4e9a7b5dfcdeb84915ed9d2a5e..9a2accb80e663d27911e8766ca2c757daa1f732a 100644 (file)
@@ -13,6 +13,8 @@
 ;
 ; In the case of LDAP the last keyword in each line above specifies
 ; a section in this file.
+;
+; LDAP schema and ldif files can be located in contrib/scripts.
 
 ; TLS support
 ; -----------