Explorar o código

sca: update rr if necessary for subscriptions

Victor Seva %!s(int64=2) %!d(string=hai) anos
pai
achega
26d57116ab
Modificáronse 1 ficheiros con 11 adicións e 0 borrados
  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;