a i*D@sddlZddlZddlmZddlmZmZmZddlm Z ddl m Z ddl m Z ddlmZmZmZmZddlmZdd lmZGd d d e ZdS) N)config)dbus_to_python%dbus_introspection_prepare_properties!dbus_introspection_add_properties)Helper)log)DbusServiceObject)handle_exceptionsdbus_handle_exceptionsdbus_service_methoddbus_polkit_require_auth)errors) FirewallErrorcseZdZdZdZejjZe fddZ e ddZ e ddZ e d d Zeejd d d e dTddZeejddd e dUddZeejjeejdde dVddZejjejddddZeejjeejdde dWfdd Zeejjejde dXd d!Zeejjejde dYd"d#Zeejje dZd$d%Z ejjejjdde d&d'Z!eejje d[d(d)Z"ejjejjdde d*d+Z#eejjdde d\d,d-Z$ejjejjdde d.d/Z%eejjdde d]d0d1Z&eejjdde d^d2d3Z'eejjdde d_d4d5Z(eejjdde d`d6d7Z)eejjdde dad8d9Z*eejjdde dbd:d;Z+eejjdde dcdd?Z-eejjdd@d e dedAdBZ.eejjdde dfdCdDZ/eejjdde dgdEdFZ0eejjdd@d e dhdGdHZ1eejjdIde didJdKZ2eejjdIde djdLdMZ3eejjd de dkdNdOZ4eejjd de dldPdQZ5eejjd d@d e dmdRdSZ6Z7S)nFirewallDConfigHelperzFirewallD main classTcs`tt|j|i|||_||_||_||_|d|_|d|_d|j|_ t |tj j dS)Nrzconfig.helper.%d) superr__init__parentrobjitem_idbusnamepath _log_prefixrdbusDBUS_INTERFACE_CONFIG_HELPER)selfrZconfhelperrargskwargs __class__A/usr/lib/python3.9/site-packages/firewall/server/config_helper.pyr3s   zFirewallDConfigHelper.__init__cCsdSNr!rr!r!r"__del__@szFirewallDConfigHelper.__del__cCs |dSr#)Zremove_from_connectionr$r!r!r" unregisterDsz FirewallDConfigHelper.unregistercCs|dkrt|jjS|dkr,t|jjS|dkrBt|jjS|dkrXt|jjS|dkrnt|jjStj d|dS)NnamefilenamerdefaultbuiltinzDorg.freedesktop.DBus.Error.InvalidArgs: Property '%s' does not exist) rStringrr'r(rZBooleanr)r* exceptions DBusException)r property_namer!r!r" _get_propertyLsz#FirewallDConfigHelper._get_propertyssv) in_signature out_signatureNcCsLt|t}t|t}td|j|||tjjkrBtj d|| |S)Nz%s.Get('%s', '%s')Jorg.freedesktop.DBus.Error.UnknownInterface: Interface '%s' does not exist) rstrrdebug1rrrrr,r-r/)rinterface_namer.senderr!r!r"Get]s    zFirewallDConfigHelper.Getsza{sv}cCs`t|t}td|j||tjjkr6tj d|i}dD]}| |||<q>tj |ddS)Nz%s.GetAll('%s')r4)r'r(rr)r*svZ signature) rr5rr6rrrrr,r-r/Z Dictionary)rr7r8retxr!r!r"GetAllns  zFirewallDConfigHelper.GetAllZssv)r2cCslt|t}t|t}t|}td|j||||j||tjj krXtj d|tj d|dS)Nz%s.Set('%s', '%s', '%s')r4zGorg.freedesktop.DBus.Error.PropertyReadOnly: Property '%s' is read-only) rr5rr6rr accessCheckrrrr,r-)rr7r.Z new_valuer8r!r!r"Sets$     zFirewallDConfigHelper.Setzsa{sv}asr<cCs2t|t}t|}t|}td|j|||dS)Nz&%s.PropertiesChanged('%s', '%s', '%s'))rr5rr6r)rr7Zchanged_propertiesZinvalidated_propertiesr!r!r"PropertiesChangeds   z'FirewallDConfigHelper.PropertiesChanged)r3cs8td|jtt||j|j}t ||t j j S)Nz%s.Introspect()) rZdebug2rrr IntrospectrrZget_busrrrr)rr8datarr!r"rCs   z FirewallDConfigHelper.IntrospectcCstd|j|j|jS)z get settings for helper z%s.getSettings())rr6rrZget_helper_configrrr8r!r!r" getSettingssz!FirewallDConfigHelper.getSettingscCsFt|}td|j|j||j|j||_| |jj dS)z#update settings for helper z%s.update('...')N) rrr6rrr@rZset_helper_configrUpdatedr')rsettingsr8r!r!r"updates  zFirewallDConfigHelper.updatecCs<td|j|j||j|j|_||jj dS)z1load default settings for builtin helper z%s.loadDefaults()N) rr6rrr@rZload_helper_defaultsrrGr'rEr!r!r" loadDefaultss z"FirewallDConfigHelper.loadDefaultscCstd|j|fdS)Nz%s.Updated('%s')rr6rrr'r!r!r"rGszFirewallDConfigHelper.UpdatedcCs:td|j|j||j|j|j|jdS)zremove helper z%s.removeHelper()N) rr6rrr@rZ remove_helperrZ removeHelperrEr!r!r"removes zFirewallDConfigHelper.removecCstd|j|fdS)Nz%s.Removed('%s')rKrLr!r!r"RemovedszFirewallDConfigHelper.RemovedcCsFt|t}td|j||j||j|j ||_ | |dS)zrename helper z%s.rename('%s')N) rr5rr6rrr@rZ rename_helperrRenamed)rr'r8r!r!r"renames   zFirewallDConfigHelper.renamecCstd|j|fdS)Nz%s.Renamed('%s')rKrLr!r!r"rOszFirewallDConfigHelper.RenamedcCstd|j|dS)Nz%s.getVersion()rrr6rrFrEr!r!r" getVersionsz FirewallDConfigHelper.getVersioncCsHt|t}td|j||j|t|}||d<| |dS)Nz%s.setVersion('%s')r rr5rr6rrr@listrFrI)rversionr8rHr!r!r" setVersions    z FirewallDConfigHelper.setVersioncCstd|j|dS)Nz %s.getShort()rrQrEr!r!r"getShort szFirewallDConfigHelper.getShortcCsHt|t}td|j||j|t|}||d<| |dS)Nz%s.setShort('%s')rrS)rZshortr8rHr!r!r"setShorts    zFirewallDConfigHelper.setShortcCstd|j|dS)Nz%s.getDescription()rQrEr!r!r"getDescriptionsz$FirewallDConfigHelper.getDescriptioncCsHt|t}td|j||j|t|}||d<| |dS)Nz%s.setDescription('%s')rYrS)r descriptionr8rHr!r!r"setDescription&s    z$FirewallDConfigHelper.setDescriptioncCs.td|j|j|t|}|dS)Nz%s.getFamily()rr6rrr@rTrFrr8rHr!r!r" getFamily4s  zFirewallDConfigHelper.getFamilycCsdt|t}td|j||j|t|}|d|krNt t j d|||d<| |dS)Nz%s.setFamily('%s')r]'%s' rr5rr6rrr@rTrFrr ALREADY_ENABLEDrIrZipvr8rHr!r!r" setFamily=s    zFirewallDConfigHelper.setFamilybcCs.t|t}td|j||}|d|kS)Nz%s.queryFamily('%s')r]rr5rr6rrFrdr!r!r" queryFamilyJs z!FirewallDConfigHelper.queryFamilycCs.td|j|j|t|}|dS)Nz%s.getModule()r^r_r!r!r" getModuleUs  zFirewallDConfigHelper.getModulecCsdt|t}td|j||j|t|}|d|krNt t j d|||d<| |dS)Nz%s.setModule('%s')rirarbrmoduler8rHr!r!r" setModule^s    zFirewallDConfigHelper.setModulecCs.t|t}td|j||}|d|kS)Nz%s.queryModule('%s')rirgrkr!r!r" queryModuleks z!FirewallDConfigHelper.queryModuleza(ss)cCstd|j|dS)Nz %s.getPorts()rQrEr!r!r"getPortsvszFirewallDConfigHelper.getPortscCsg}t|tD](}t|tr,|t|q||q|}td|jddd|D|j |t| }||d<| |dS)Nz%s.setPorts('[%s]'),css"|]}d|d|dfVqdS)z ('%s, '%s')rrNr!).0portr!r!r" z1FirewallDConfigHelper.setPorts..ro) rrT isinstanceappendtuplerr6rjoinrr@rFrI)rZportsr8Z_portsrsrHr!r!r"setPorts}s     zFirewallDConfigHelper.setPortscCst|t}t|t}td|j|||j|t|}||f|dvrbt t j d||f|d ||f| |dS)Nz%s.addPort('%s', '%s')ro%s:%s)rr5rr6rrr@rTrFrr rcrwrIrrsprotocolr8rHr!r!r"addPorts      zFirewallDConfigHelper.addPortcCst|t}t|t}td|j|||j|t|}||f|dvrbt t j d||f|d ||f| |dS)Nz%s.removePort('%s', '%s')ror{)rr5rr6rrr@rTrFrr Z NOT_ENABLEDrMrIr|r!r!r" removePorts     z FirewallDConfigHelper.removePortcCs:t|t}t|t}td|j||||f|dvS)Nz%s.queryPort('%s', '%s')rorg)rrsr}r8r!r!r" queryPorts    zFirewallDConfigHelper.queryPort)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)8__name__ __module__ __qualname____doc__Z persistentrrZPK_ACTION_CONFIGZdefault_polkit_auth_requiredr rr r%r&r/r ZPROPERTIES_IFACEr9r?r rAZservicesignalrBZPK_ACTION_INFOZINTROSPECTABLE_IFACErCrrZDBUS_SIGNATURErFrIrJrGrMrNrPrOrRrVrWrXrZr\r`rerhrjrmrnrprzr~rr __classcell__r!r!rr"r+s0                         r)rZ dbus.serviceZfirewallrZfirewall.dbus_utilsrrrZfirewall.core.io.helperrZfirewall.core.loggerrZfirewall.server.dbusrZfirewall.server.decoratorsr r r r r Zfirewall.errorsrrr!r!r!r"s