static bool
next_origin(dig_lookup_t *oldlookup);
+static void
+cleanup_openssl_refs(void);
+
static int
count_dots(char *string) {
char *s;
clear_current_lookup();
return (false);
#else /* if TARGET_OS_IPHONE */
+ cleanup_openssl_refs();
digexit();
#endif /* if TARGET_OS_IPHONE */
}
}
}
+static void
+cleanup_openssl_refs(void) {
+ if (tsigkey != NULL) {
+ debug("freeing TSIG key %p", tsigkey);
+ dns_tsigkey_detach(&tsigkey);
+ }
+
+ if (sig0key != NULL) {
+ debug("freeing SIG(0) key %p", sig0key);
+ dst_key_free(&sig0key);
+ }
+
+ if (is_dst_up) {
+ debug("destroy DST lib");
+ dst_lib_destroy();
+ is_dst_up = false;
+ }
+}
+
/*%
* Destroy all of the libs we are using, and get everything ready for a
* clean shutdown.
clear_searchlist();
- if (tsigkey != NULL) {
- debug("freeing TSIG key %p", tsigkey);
- dns_tsigkey_detach(&tsigkey);
- }
-
- if (sig0key != NULL) {
- debug("freeing SIG(0) key %p", sig0key);
- dst_key_free(&sig0key);
- }
+ cleanup_openssl_refs();
if (namebuf != NULL) {
debug("freeing key %p", tsigkey);
isc_buffer_free(&namebuf);
}
- if (is_dst_up) {
- debug("destroy DST lib");
- dst_lib_destroy();
- is_dst_up = false;
- }
-
debug("Removing log context");
isc_log_destroy(&lctx);