summaryrefslogtreecommitdiffabout
path: root/lib
Unidiff
Diffstat (limited to 'lib') (more/less context) (ignore whitespace changes)
-rw-r--r--lib/sreg.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/sreg.cc b/lib/sreg.cc
index dd7ed12..03edf57 100644
--- a/lib/sreg.cc
+++ b/lib/sreg.cc
@@ -19,49 +19,49 @@ namespace opkele {
19 { "country", sreg_t::field_country }, 19 { "country", sreg_t::field_country },
20 { "language", sreg_t::field_language }, 20 { "language", sreg_t::field_language },
21 { "timezone", sreg_t::field_timezone } 21 { "timezone", sreg_t::field_timezone }
22 }; 22 };
23 # define fields_BEGINfields 23 # define fields_BEGINfields
24# define fields_END &fields[sizeof(fields)/sizeof(*fields)] 24# define fields_END &fields[sizeof(fields)/sizeof(*fields)]
25 typedef const struct _sreg_field *fields_iterator; 25 typedef const struct _sreg_field *fields_iterator;
26 26
27 bool operator==(const struct _sreg_field& fd,const string& fn) { 27 bool operator==(const struct _sreg_field& fd,const string& fn) {
28 return fd.fieldname==fn; 28 return fd.fieldname==fn;
29 } 29 }
30 30
31 void sreg_t::checkid_hook(params_t& p,const string& /* identity */) { 31 void sreg_t::checkid_hook(params_t& p,const string& /* identity */) {
32 string fr, fo; 32 string fr, fo;
33 for(fields_iterator f=fields_BEGIN;f<fields_END;++f) { 33 for(fields_iterator f=fields_BEGIN;f<fields_END;++f) {
34 if(f->fieldbit&fields_required) { 34 if(f->fieldbit&fields_required) {
35 if(!fr.empty()) fr+=","; 35 if(!fr.empty()) fr+=",";
36 fr += f->fieldname; 36 fr += f->fieldname;
37 } 37 }
38 if(f->fieldbit&fields_optional) { 38 if(f->fieldbit&fields_optional) {
39 if(!fo.empty()) fo+=","; 39 if(!fo.empty()) fo+=",";
40 fo += f->fieldname; 40 fo += f->fieldname;
41 } 41 }
42 } 42 }
43 p["sreg.ns"] = OIURI_SREG11; 43 p["ns.sreg"] = OIURI_SREG11;
44 if(!fr.empty()) p["sreg.required"]=fr; 44 if(!fr.empty()) p["sreg.required"]=fr;
45 if(!fo.empty()) p["sreg.optional"]=fo; 45 if(!fo.empty()) p["sreg.optional"]=fo;
46 if(!policy_url.empty()) p["sreg.policy_url"]=policy_url; 46 if(!policy_url.empty()) p["sreg.policy_url"]=policy_url;
47 } 47 }
48 48
49 void sreg_t::id_res_hook(const params_t& /* p */,const params_t& sp,const string& /* identity */) { 49 void sreg_t::id_res_hook(const params_t& /* p */,const params_t& sp,const string& /* identity */) {
50 clear(); 50 clear();
51 for(fields_iterator f=fields_BEGIN;f<fields_END;++f) { 51 for(fields_iterator f=fields_BEGIN;f<fields_END;++f) {
52 string fn = "sreg."; fn+=f->fieldname; 52 string fn = "sreg."; fn+=f->fieldname;
53 if(!sp.has_param(fn)) continue; 53 if(!sp.has_param(fn)) continue;
54 has_fields |= f->fieldbit; 54 has_fields |= f->fieldbit;
55 response[f->fieldbit]=sp.get_param(fn); 55 response[f->fieldbit]=sp.get_param(fn);
56 } 56 }
57 } 57 }
58 58
59 const string& sreg_t::get_field(fieldbit_t fb) const { 59 const string& sreg_t::get_field(fieldbit_t fb) const {
60 response_t::const_iterator i = response.find(fb); 60 response_t::const_iterator i = response.find(fb);
61 if(i==response.end()) 61 if(i==response.end())
62 throw failed_lookup(OPKELE_CP_ "no field data available"); 62 throw failed_lookup(OPKELE_CP_ "no field data available");
63 return i->second; 63 return i->second;
64 } 64 }
65 65
66 void sreg_t::set_field(fieldbit_t fb,const string& fv) { 66 void sreg_t::set_field(fieldbit_t fb,const string& fv) {
67 response[fb] = fv; 67 response[fb] = fv;