-rw-r--r-- | lib/sreg.cc | 2 |
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; |