[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#679952: for reference: diff for #679797



>From e94e2f2c17e81fa4bc114c31110916dfe02540f7 Mon Sep 17 00:00:00 2001
From: David Freese <w1hkj@w1hkj.com>
Date: Sat, 30 Jun 2012 12:57:59 -0500
Subject: [PATCH 1/3] HAMQTH Session ID

  * Retry session ID after session time out
  * Correct error string extraction
---
 src/logbook/lookupcall.cxx |   23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/logbook/lookupcall.cxx b/src/logbook/lookupcall.cxx
index 6a3aa2c..2f35dc0 100644
--- a/src/logbook/lookupcall.cxx
+++ b/src/logbook/lookupcall.cxx
@@ -751,20 +751,22 @@ bool HAMQTH_get_session_id()
 	if (!fetch_http(url, retstr, 5.0)) {
 		return false;
 	}
-	if ((p1 = retstr.find("<error>")) != string::npos) {
+	p1 = retstr.find("<error>");
+	if (p1 != string::npos) {
 		p2 = retstr.find("</error>");
-		lookup_notes = retstr.substr(p1 + 7, p2 - p1 - 7);
+		if (p2 != string::npos) {
+			p1 += 7;
+			lookup_notes = retstr.substr(p1, p2 - p1);
+		}
 		return false;
 	}
-	if ((p1 = retstr.find("<session_id>")) == string::npos) {
+	p1 = retstr.find("<session_id>");
+	if (p1 == string::npos) {
 		lookup_notes = "HamQTH not available";
 		return false;
 	}
 	p2 = retstr.find("</session_id>");
 	HAMQTH_session_id = retstr.substr(p1 + 12, p2 - p1 - 12);
-//#ifdef HAMQTH_DEBUG
-//	printf("session id = %s\n", HAMQTH_session_id.c_str());
-//#endif
 	return true;
 }
 
@@ -885,12 +887,13 @@ bool HAMQTHget(string& htmlpage)
 	url.append("&prg=FLDIGI");
 
 	ret = fetch_http(url, htmlpage, 5.0);
-	if (htmlpage.find("<error>") != string::npos ) {
-		size_t p = htmlpage.find("<error>") + 7;
-		size_t p1 = htmlpage.find("</error>");
+	size_t p = htmlpage.find("<error>");
+	if (p != string::npos ) {
+		size_t p1 = htmlpage.find("</error>", p);
 		if (p1 != string::npos) {
 			string tempstr;
-			tempstr.assign(htmlpage.substr(p1, p1 - p));
+			p += 7;
+			tempstr.assign(htmlpage.substr(p, p1 - p));
 			LOG_WARN("HAMQTH error: %s", tempstr.c_str());
 		}
 		htmlpage.clear();
-- 
1.7.9.5




Reply to: