|
@@ -1421,7 +1421,20 @@ rend_service_intro_has_opened(origin_circuit_t *circuit)
|
|
log_info(LD_CIRC|LD_REND, "We have just finished an introduction "
|
|
log_info(LD_CIRC|LD_REND, "We have just finished an introduction "
|
|
"circuit, but we already have enough. Redefining purpose to "
|
|
"circuit, but we already have enough. Redefining purpose to "
|
|
"general; leaving as internal.");
|
|
"general; leaving as internal.");
|
|
|
|
+
|
|
TO_CIRCUIT(circuit)->purpose = CIRCUIT_PURPOSE_C_GENERAL;
|
|
TO_CIRCUIT(circuit)->purpose = CIRCUIT_PURPOSE_C_GENERAL;
|
|
|
|
+
|
|
|
|
+ {
|
|
|
|
+ rend_data_t *rend_data = circuit->rend_data;
|
|
|
|
+ circuit->rend_data = NULL;
|
|
|
|
+ rend_data_free(rend_data);
|
|
|
|
+ }
|
|
|
|
+ {
|
|
|
|
+ crypto_pk_env_t *intro_key = circuit->intro_key;
|
|
|
|
+ circuit->intro_key = NULL;
|
|
|
|
+ crypto_free_pk_env(intro_key);
|
|
|
|
+ }
|
|
|
|
+
|
|
circuit_has_opened(circuit);
|
|
circuit_has_opened(circuit);
|
|
return;
|
|
return;
|
|
}
|
|
}
|