@@ -47,7 +47,6 @@ class KVirtualHostEvent;
4747class WhmContext ;
4848using KSafeTable = KSharedObj<KTable>;
4949void bind_access_config (kconfig::KConfigTree* tree, KAccess* access);
50- void parse_module_config (KModel* m, const khttpd::KXmlNodeBody* xml);
5150class KAccess final : public kconfig::KConfigListen
5251{
5352public:
@@ -65,28 +64,30 @@ class KAccess final : public kconfig::KConfigListen
6564 kconfig::KConfigEventFlag config_flag () const override {
6665 return kconfig::ev_self | kconfig::ev_subdir;
6766 }
68- KSafeAcl new_acl (const KString& name, const khttpd::KXmlNodeBody* xml) {
67+ KModelPtr<KAcl> new_acl (const KString& name, const khttpd::KXmlNodeBody* xml) {
6968 auto it = KAccess::acl_factorys[type].find (name);
7069 if (it == KAccess::acl_factorys[type].end ()) {
7170 return nullptr ;
7271 }
73- KSafeAcl m ((*it).second ->new_instance ());
74- if (m) {
75- m->isGlobal = isGlobal ();
72+ KModelPtr<KAcl> m ((*it).second ->new_instance ());
73+ if (m. m ) {
74+ m. m ->isGlobal = isGlobal ();
7675 }
77- parse_module_config (m.get (), xml);
76+ m.parse_config (xml);
77+ m.m ->parse_config (xml);
7878 return m;
7979 }
80- KSafeMark new_mark (const KString& name, const khttpd::KXmlNodeBody* xml) {
80+ KModelPtr<KMark> new_mark (const KString& name, const khttpd::KXmlNodeBody* xml) {
8181 auto it = KAccess::mark_factorys[type].find (name);
8282 if (it == KAccess::mark_factorys[type].end ()) {
8383 return nullptr ;
8484 }
85- KSafeMark m ((*it).second ->new_instance ());
86- if (m) {
87- m->isGlobal = isGlobal ();
85+ KModelPtr<KMark> m ((*it).second ->new_instance ());
86+ if (m. m ) {
87+ m. m ->isGlobal = isGlobal ();
8888 }
89- parse_module_config (m.get (), xml);
89+ m.parse_config (xml);
90+ m.m ->parse_config (xml);
9091 return m;
9192 }
9293 kgl_ref_str_t get_qname () {
@@ -140,8 +141,8 @@ class KAccess final : public kconfig::KConfigListen
140141 void inter_destroy ();
141142 void htmlChainAction (KWStream& s, kgl_jump_type jump_type, KJump* jump, bool showTable, const KString& skipTable);
142143 void htmlRadioAction (KWStream& s, kgl_jump_type* jump_value, int jump_type, KJump* jump, int my_jump_type, const KString& my_type_name, std::vector<KString>& table_names);
143- KSafeAcl get_named_acl (const KString& name);
144- KSafeMark get_named_mark (const KString& name);
144+ KModelPtr<KAcl> get_named_acl (const KString& name);
145+ KModelPtr<KMark> get_named_mark (const KString& name);
145146 KFiberReadLocker read_lock () {
146147 return KFiberReadLocker (rwlock);
147148 }
0 commit comments