kdump/kdump-prepend-IP-address.patch

45 lines
1.5 KiB
Diff

Date: Wed Jun 14 14:39:15 2017 +0200
From: Petr Tesarik <ptesarik@suse.com>
Subject: Prepend IP address to remote target subdirectory
References: FATE#321844
Upstream: v0.8.17
Git-commit: d8f0f0cb4450776b0765ddb0441a5d5669a78062
Check the target route directly from save_dump and take the preferred
source IP address into the subdirectory name.
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
diff --git a/kdumptool/savedump.cc b/kdumptool/savedump.cc
index 9938b6f..14e66b3 100644
--- a/kdumptool/savedump.cc
+++ b/kdumptool/savedump.cc
@@ -40,6 +40,7 @@
#include "vmcoreinfo.h"
#include "identifykernel.h"
#include "email.h"
+#include "routable.h"
using std::string;
using std::list;
@@ -114,8 +115,17 @@ void SaveDump::execute()
std::istringstream iss(config->KDUMP_SAVEDIR.value());
FilePath elem;
while (iss >> elem) {
- RootDirURL url(elem.appendPath(subdir), m_rootdir);
- urlv.push_back(url);
+ RootDirURL url(elem, m_rootdir);
+ if (url.getProtocol() != URLParser::PROT_FILE) {
+ Routable rt(url.getHostname());
+ if (!rt.check(config->KDUMP_NET_TIMEOUT.value())) {
+ cerr << "WARNING: Dump target not reachable" << endl;
+ elem.appendPath(string("unknown-") + subdir);
+ } else
+ elem.appendPath(rt.prefsrc() + '-' + subdir);
+ } else
+ elem.appendPath(subdir);
+ urlv.push_back(RootDirURL(elem, m_rootdir));
}
m_transfer = getTransfer(urlv);