-rw-r--r-- | lib/openid_message.cc | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/openid_message.cc b/lib/openid_message.cc index 3b08748..905ea95 100644 --- a/lib/openid_message.cc +++ b/lib/openid_message.cc @@ -144,2 +144,19 @@ namespace opkele { + struct __om_kv_outputter : public unary_function<const string&,void> { + public: + const basic_openid_message& om; + ostream& os; + + __om_kv_outputter(const basic_openid_message& om,ostream& os) + : om(om), os(os) { } + + result_type operator()(argument_type f) { + os << f << ':' << om.get_field(f) << '\n'; + } + }; + + void basic_openid_message::to_keyvalues(ostream& o) const { + for_each(fields_begin(),fields_end(),__om_kv_outputter(*this,o)); + } + void basic_openid_message::add_to_signed(const string& fields) { @@ -221,3 +238,3 @@ namespace opkele { void openid_message_t::set_field(const string& n,const string& v) { - insert(value_type(n,v)); + (*this)[n]=v; } |