summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/types.h4
-rw-r--r--lib/openid_message.cc20
2 files changed, 13 insertions, 11 deletions
diff --git a/include/opkele/types.h b/include/opkele/types.h
index 1fab869..af7fb1a 100644
--- a/include/opkele/types.h
+++ b/include/opkele/types.h
@@ -141,4 +141,4 @@ namespace opkele {
- virtual string append_query(const string& url) const;
- virtual string query_string() const;
+ virtual string append_query(const string& url,const char *pfx="openid.") const;
+ virtual string query_string(const char *pfx="openid.") const;
diff --git a/lib/openid_message.cc b/lib/openid_message.cc
index 75e59b3..4b9179b 100644
--- a/lib/openid_message.cc
+++ b/lib/openid_message.cc
@@ -69,9 +69,10 @@ namespace opkele {
string& rv;
+ const char *pfx;
- __om_query_builder(string& r,const basic_openid_message& m)
- : om(m), first(true), rv(r) {
+ __om_query_builder(const char *p,string& r,const basic_openid_message& m)
+ : om(m), first(true), rv(r), pfx(p) {
for_each(om.fields_begin(),om.fields_end(),*this);
}
- __om_query_builder(string& r,const basic_openid_message& m,const string& u)
- : om(m), first(true), rv(r) {
+ __om_query_builder(const char *p,string& r,const basic_openid_message& m,const string& u)
+ : om(m), first(true), rv(r), pfx(p) {
rv = u;
@@ -89,3 +90,4 @@ namespace opkele {
rv += '&';
- rv += "openid."; rv+= f;
+ if(pfx) rv += pfx;
+ rv+= f;
rv += '=';
@@ -95,9 +97,9 @@ namespace opkele {
- string basic_openid_message::append_query(const string& url) const {
+ string basic_openid_message::append_query(const string& url,const char *pfx) const {
string rv;
- return __om_query_builder(rv,*this,url).rv;
+ return __om_query_builder(pfx,rv,*this,url).rv;
}
- string basic_openid_message::query_string() const {
+ string basic_openid_message::query_string(const char *pfx) const {
string rv;
- return __om_query_builder(rv,*this).rv;
+ return __om_query_builder(pfx,rv,*this).rv;
}