#include "journald-config.h"
#include "journald-kmsg.h"
#include "journald-manager.h"
+#include "journald-socket.h"
#include "log.h"
#include "parse-util.h"
#include "proc-cmdline.h"
(void) manager_reopen_dev_kmsg(m, old.read_kmsg);
manager_reset_kernel_audit(m, old.set_audit);
+ manager_reload_forward_socket(m, &old.forward_to_socket);
r = manager_reload_journals(m);
if (r < 0)
return 0;
}
+
+void manager_reload_forward_socket(Manager *m, const SocketAddress *old) {
+ assert(m);
+ assert(old);
+
+ /* The socket is not opened yet or already closed. There is nothing we need to do now. The socket
+ * will be opened when necessary. */
+ if (m->forward_socket_fd < 0)
+ return;
+
+ if (socket_address_equal(&m->config.forward_to_socket, old))
+ return;
+
+ /* A different socket address is specified. Let's close the old socket. New socket will be opened
+ * when necessary. */
+ m->forward_socket_fd = safe_close(m->forward_socket_fd);
+}
#include "journald-forward.h"
int manager_forward_socket(Manager *m, const struct iovec *iovec, size_t n, const dual_timestamp *ts, int priority);
+void manager_reload_forward_socket(Manager *m, const SocketAddress *old);