summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2008-01-12 15:10:22 (UTC)
committer Michael Krelin <hacker@klever.net>2008-01-12 23:26:28 (UTC)
commitd0b30e379fc4032782776866fbb0adc6148ea023 (patch) (side-by-side diff)
tree5433c44938b06bd55c26851555e821db326e1cd0
parent7b5a82f255a85fe2ef466b68e40d9eb1829c633a (diff)
downloadlibopkele-d0b30e379fc4032782776866fbb0adc6148ea023.zip
libopkele-d0b30e379fc4032782776866fbb0adc6148ea023.tar.gz
libopkele-d0b30e379fc4032782776866fbb0adc6148ea023.tar.bz2
fixed priority_map comparison function
Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--include/opkele/types.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/opkele/types.h b/include/opkele/types.h
index 4e1415f..de44a5c 100644
--- a/include/opkele/types.h
+++ b/include/opkele/types.h
@@ -136,97 +136,97 @@ namespace opkele {
* @return the parameter value
* @throw failed_lookup if there is no such parameter
*/
string& get_param(const string& n);
/**
* parse the OpenID key/value data.
* @param kv the OpenID key/value data
*/
void parse_keyvalues(const string& kv);
/**
* sign the fields.
* @param secret the secret used for signing
* @param sig reference to the string, containing base64-encoded
* result
* @param slist the comma-separated list of fields to sign
* @param prefix the string to prepend to parameter names
*/
void sign(secret_t secret,string& sig,const string& slist,const char *prefix=0) const;
/**
* append parameters to the URL as a GET-request parameters.
* @param url the base URL
* @param prefix the string to prepend to parameter names
* @return the ready-to-use location
*/
string append_query(const string& url,const char *prefix = "openid.") const;
/**
* make up a query string suitable for use in GET and POST
* requests.
* @param prefix string to prened to parameter names
* @return query string
*/
string query_string(const char *prefix = "openid.") const;
};
/**
* dump the key/value pairs for the parameters to the stream.
* @param o output stream
* @param p the parameters
*/
ostream& operator << (ostream& o,const params_t& p);
namespace xrd {
struct priority_compare {
inline bool operator()(long a,long b) const {
- return (a<0) ? false : (b<0) ? false : (a<b);
+ return (a<0) ? false : (b<0) ? true : (a<b);
}
};
template <typename _DT>
class priority_map : public multimap<long,_DT,priority_compare> {
typedef multimap<long,_DT,priority_compare> map_type;
public:
inline _DT& add(long priority,const _DT& d) {
return insert(typename map_type::value_type(priority,d))->second;
}
};
typedef priority_map<string> canonical_ids_t;
typedef priority_map<string> local_ids_t;
typedef set<string> types_t;
typedef priority_map<string> uris_t;
class service_t {
public:
types_t types;
uris_t uris;
local_ids_t local_ids;
string provider_id;
void clear() {
types.clear();
uris.clear(); local_ids.clear();
provider_id.clear();
}
};
typedef priority_map<service_t> services_t;
class XRD_t {
public:
time_t expires;
canonical_ids_t canonical_ids;
local_ids_t local_ids;
services_t services;
string provider_id;
void clear() {
expires = 0;
canonical_ids.clear(); local_ids.clear();
services.clear();
provider_id.clear();
}