浏览代码

sca: update rr if necessary for subscriptions

Victor Seva 2 年之前
父节点
当前提交
26d57116ab
共有 1 个文件被更改,包括 11 次插入0 次删除
  1. 11 0
      src/modules/sca/sca_subscribe.c

+ 11 - 0
src/modules/sca/sca_subscribe.c

@@ -905,6 +905,17 @@ static int sca_subscription_update_unsafe(sca_mod *scam,
 		}
 
 		SCA_STR_COPY(&update_sub->rr, &saved_sub->rr);
+	} else if(!SCA_STR_EMPTY(&update_sub->rr)
+			  && !STR_EQ(update_sub->rr, saved_sub->rr)) {
+		if(!SCA_STR_EMPTY(&saved_sub->rr)) {
+			shm_free(saved_sub->rr.s);
+			saved_sub->rr.len = 0;
+		}
+		if((saved_sub->rr.s = (char *)shm_malloc(update_sub->rr.len)) == NULL) {
+			SHM_MEM_ERROR;
+			goto done;
+		}
+		SCA_STR_COPY(&saved_sub->rr, &update_sub->rr);
 	}
 
 	rc = 1;