Просмотр исходного кода

dmq_usrloc: proper handle of not found urecord by uuid

- return code is negative and in this case is not locking the slot
Daniel-Constantin Mierla 10 лет назад
Родитель
Сommit
13cde2bb1d
1 измененных файлов с 3 добавлено и 3 удалено
  1. 3 3
      modules/dmq_usrloc/usrloc_sync.c

+ 3 - 3
modules/dmq_usrloc/usrloc_sync.c

@@ -197,12 +197,12 @@ void usrloc_get_all_ucontact(dmq_node_t* node)
 		memcpy( &aorhash, cp, sizeof(aorhash));
 		cp = (char*)cp + sizeof(aorhash);
 
+		r = 0;
+		ptr = 0;
 		res = dmq_ul.get_urecord_by_ruid(_d, aorhash, &ruid, &r, &ptr);
 		aor = r->aor;
-		if (res > 0) {
+		if (res < 0) {
 			LM_DBG("'%.*s' Not found in usrloc\n", aor.len, ZSW(aor.s));
-			dmq_ul.release_urecord(r);
-			dmq_ul.unlock_udomain(_d, &aor);
 			continue;
 		}
 		LM_DBG("- AoR: %.*s  AoRhash=%d  Flags=%d\n", aor.len, aor.s, aorhash, flags);