author | Michael Krelin <hacker@klever.net> | 2005-07-20 23:17:25 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2005-07-20 23:17:25 (UTC) |
commit | 84a0285be7c7a57cfc00cb31a4a1da9902fa1b34 (patch) (unidiff) | |
tree | 608822c31cbedeb35c7341b88456dd9c826b4d27 | |
parent | 9634a1491130ef24130454e951672301e805351f (diff) | |
download | libopkele-84a0285be7c7a57cfc00cb31a4a1da9902fa1b34.zip libopkele-84a0285be7c7a57cfc00cb31a4a1da9902fa1b34.tar.gz libopkele-84a0285be7c7a57cfc00cb31a4a1da9902fa1b34.tar.bz2 |
moved util::canonicalize_url to consumer class
-rw-r--r-- | include/opkele/consumer.h | 2 | ||||
-rw-r--r-- | include/opkele/util.h | 1 | ||||
-rw-r--r-- | lib/consumer.cc | 29 | ||||
-rw-r--r-- | lib/util.cc | 25 |
4 files changed, 29 insertions, 28 deletions
diff --git a/include/opkele/consumer.h b/include/opkele/consumer.h index b9c29bd..3c0ed5f 100644 --- a/include/opkele/consumer.h +++ b/include/opkele/consumer.h | |||
@@ -130,2 +130,4 @@ namespace opkele { | |||
130 | 130 | ||
131 | static string canonicalize(const string& url); | ||
132 | |||
131 | }; | 133 | }; |
diff --git a/include/opkele/util.h b/include/opkele/util.h index fbbef93..5372498 100644 --- a/include/opkele/util.h +++ b/include/opkele/util.h | |||
@@ -50,3 +50,2 @@ namespace opkele { | |||
50 | 50 | ||
51 | string canonicalize_url(const string& url); | ||
52 | string url_encode(const string& str); | 51 | string url_encode(const string& str); |
diff --git a/lib/consumer.cc b/lib/consumer.cc index bd76b61..cbe0769 100644 --- a/lib/consumer.cc +++ b/lib/consumer.cc | |||
@@ -139,3 +139,3 @@ namespace opkele { | |||
139 | throw bad_input(OPKELE_CP_ "unknown checkid_* mode"); | 139 | throw bad_input(OPKELE_CP_ "unknown checkid_* mode"); |
140 | string iurl = util::canonicalize_url(identity); | 140 | string iurl = canonicalize(identity); |
141 | string server, delegate; | 141 | string server, delegate; |
@@ -162,3 +162,3 @@ namespace opkele { | |||
162 | string server,delegate; | 162 | string server,delegate; |
163 | retrieve_links(identity.empty()?pin.get_param("openid.identity"):util::canonicalize_url(identity),server,delegate); | 163 | retrieve_links(identity.empty()?pin.get_param("openid.identity"):canonicalize(identity),server,delegate); |
164 | try { | 164 | try { |
@@ -315,2 +315,27 @@ namespace opkele { | |||
315 | 315 | ||
316 | string consumer_t::canonicalize(const string& url) { | ||
317 | string rv = url; | ||
318 | // strip leading and trailing spaces | ||
319 | string::size_type i = rv.find_first_not_of(" \t\r\n"); | ||
320 | if(i==string::npos) | ||
321 | throw bad_input(OPKELE_CP_ "empty URL"); | ||
322 | if(i) | ||
323 | rv.erase(0,i); | ||
324 | i = rv.find_last_not_of(" \t\r\n"); | ||
325 | assert(i!=string::npos); | ||
326 | if(i<(rv.length()-1)) | ||
327 | rv.erase(i+1); | ||
328 | // add missing http:// | ||
329 | i = rv.find("://"); | ||
330 | if(i==string::npos) { // primitive. but do we need more? | ||
331 | rv.insert(0,"http://"); | ||
332 | i = sizeof("http://")-1; | ||
333 | }else{ | ||
334 | i += sizeof("://")-1; | ||
335 | } | ||
336 | if(rv.find('/',i)==string::npos) | ||
337 | rv += '/'; | ||
338 | return rv; | ||
339 | } | ||
340 | |||
316 | } | 341 | } |
diff --git a/lib/util.cc b/lib/util.cc index 1e7335c..d78b5e0 100644 --- a/lib/util.cc +++ b/lib/util.cc | |||
@@ -85,27 +85,2 @@ namespace opkele { | |||
85 | 85 | ||
86 | string canonicalize_url(const string& url) { | ||
87 | string rv = url; | ||
88 | // strip leading and trailing spaces | ||
89 | string::size_type i = rv.find_first_not_of(" \t\r\n"); | ||
90 | if(i==string::npos) | ||
91 | throw bad_input(OPKELE_CP_ "empty URL"); | ||
92 | if(i) | ||
93 | rv.erase(0,i); | ||
94 | i = rv.find_last_not_of(" \t\r\n"); | ||
95 | assert(i!=string::npos); | ||
96 | if(i<(rv.length()-1)) | ||
97 | rv.erase(i+1); | ||
98 | // add missing http:// | ||
99 | i = rv.find("://"); | ||
100 | if(i==string::npos) { // primitive. but do we need more? | ||
101 | rv.insert(0,"http://"); | ||
102 | i = sizeof("http://")-1; | ||
103 | }else{ | ||
104 | i += sizeof("://")-1; | ||
105 | } | ||
106 | if(rv.find('/',i)==string::npos) | ||
107 | rv += '/'; | ||
108 | return rv; | ||
109 | } | ||
110 | |||
111 | string url_encode(const string& str) { | 86 | string url_encode(const string& str) { |