summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2009-04-11 15:40:20 (UTC)
committer Michael Krelin <hacker@klever.net>2009-04-11 15:40:20 (UTC)
commit17de50174f73acefc99a181240481574431aa95a (patch) (side-by-side diff)
treea8aa9cf124913acc37bc7954d35015f9fb59ebdd
parent381bfb49bfbfc569e6b5aa8e58a933de4397b053 (diff)
downloadlibopkele-17de50174f73acefc99a181240481574431aa95a.zip
libopkele-17de50174f73acefc99a181240481574431aa95a.tar.gz
libopkele-17de50174f73acefc99a181240481574431aa95a.tar.bz2
looks like yet another breakage by LJ
IIRC, previously, livejournal.com supplied empty op_endpoint URL. Now it doesn't supply it at all. Dunno which breakage is better. Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--lib/basic_rp.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/basic_rp.cc b/lib/basic_rp.cc
index 8125aa7..9c7113b 100644
--- a/lib/basic_rp.cc
+++ b/lib/basic_rp.cc
@@ -205,33 +205,34 @@ namespace opkele {
}
break;
}else{
if(eq==string::npos || eq>am) {
p[""] = u.substr(q,eq-q);
}else{
p[u.substr(q,eq-q)] = u.substr(eq+1,am-eq-1);
}
q = ++am;
}
}
}
void basic_RP::id_res(const basic_openid_message& om,extension_t *ext) {
reset_vars();
bool o2 = om.has_field("ns")
- && om.get_field("ns")==OIURI_OPENID20 && !om.get_field("op_endpoint").empty();
+ && om.get_field("ns")==OIURI_OPENID20
+ && om.has_field("op_endpoint") && !om.get_field("op_endpoint").empty();
if( (!o2) && om.has_field("user_setup_url"))
throw id_res_setup(OPKELE_CP_ "assertion failed, setup url provided",
om.get_field("user_setup_url"));
string m = om.get_field("mode");
if(o2 && m=="setup_needed")
throw id_res_setup(OPKELE_CP_ "setup needed, no setup url provided");
if(m=="cancel")
throw id_res_cancel(OPKELE_CP_ "authentication cancelled");
bool go_dumb=false;
try {
string OP = o2
?om.get_field("op_endpoint")
:get_endpoint().uri;
assoc_t assoc = retrieve_assoc(
OP,om.get_field("assoc_handle"));
if(om.get_field("sig")!=util::base64_signature(assoc,om))