diff --git a/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.c b/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.c index 49b9cdd51e..18e21cbb7d 100644 --- a/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.c +++ b/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.c @@ -5,6 +5,9 @@ #include "libnm-glib-aux/nm-str-buf.h" #include "libnm-core-intern/nm-meta-setting-base.h" #include "libnm-core-intern/nm-core-internal.h" +#include "libnm-base/nm-ethtool-base.h" + +#include "libnm-core-public/nm-setting-ethtool.h" #define INDENT 4 @@ -37,45 +40,48 @@ main(int argc, char *argv[]) const NMSettInfoSetting *sett_info_settings = nmtst_sett_info_settings(); NMMetaSettingType meta_type; - g_print("\n"); + g_print( + "\n"); g_print("\n"); for (meta_type = 0; meta_type < _NM_META_SETTING_TYPE_NUM; meta_type++) { const NMSettInfoSetting *sis = &sett_info_settings[meta_type]; @@ -130,6 +136,24 @@ main(int argc, char *argv[]) g_print("\n%s/>\n", _indent_level(2 * INDENT + 10)); } + if (nm_streq(msi->setting_name, NM_SETTING_ETHTOOL_SETTING_NAME)) { + NMEthtoolID ethtool_id; + + /* NMSettingEthtool's properties are "gendata" options. They are implemented differently. */ + for (ethtool_id = _NM_ETHTOOL_ID_FIRST; ethtool_id <= _NM_ETHTOOL_ID_LAST; + ethtool_id++) { + g_print("%soptname)); + g_print( + "\n%sdbus-type=%s", + _indent_level(2 * INDENT + 10), + _xml_escape_attr(&sbuf1, + (const char *) nm_ethtool_id_get_variant_type(ethtool_id))); + g_print("\n%sis-setting-option=\"1\"", _indent_level(2 * INDENT + 10)); + g_print("\n%s/>\n", _indent_level(2 * INDENT + 10)); + } + } + g_print("%s\n", _indent_level(INDENT)); } g_print("\n"); diff --git a/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in b/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in index e1bfd9d6a0..77bbdcca53 100644 --- a/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in +++ b/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in @@ -35,6 +35,8 @@ that should be used instead. "gprop-type": if this is a GObject property in the NMSetting class, this is the GParamSpec.value_type of the property. + "is-setting-option": whether the property is implemented in libnm's NMSetting + via the nm_setting_option_*() API. --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +