shared: embed scheme_type in NMSetting8021xSchemeVtable
Since we can easily lookup the vtable for a NMSetting8021xSchemeType, it is convenient to also easily get the scheme_type for a given NMSetting8021xSchemeVtable. On my x86_64, this change is basically for free as it does not increase the size of NMSetting8021xSchemeVtable, because the scheme_type fits in a previously unused part of the NMSetting8021xSchemeVtable struct.
This commit is contained in:
@@ -73,87 +73,96 @@
|
||||
/*****************************************************************************/
|
||||
|
||||
const NMSetting8021xSchemeVtable nm_setting_8021x_scheme_vtable[] = {
|
||||
[NM_SETTING_802_1X_SCHEME_TYPE_CA_CERT] = {
|
||||
.setting_key = NM_SETTING_802_1X_CA_CERT,
|
||||
.scheme_func = nm_setting_802_1x_get_ca_cert_scheme,
|
||||
.format_func = NULL,
|
||||
.path_func = nm_setting_802_1x_get_ca_cert_path,
|
||||
.blob_func = nm_setting_802_1x_get_ca_cert_blob,
|
||||
.uri_func = nm_setting_802_1x_get_ca_cert_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_ca_cert_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_ca_cert_password_flags,
|
||||
.set_cert_func = nm_setting_802_1x_set_ca_cert,
|
||||
.file_suffix = "ca-cert",
|
||||
},
|
||||
|
||||
[NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_CA_CERT] = {
|
||||
.setting_key = NM_SETTING_802_1X_PHASE2_CA_CERT,
|
||||
.scheme_func = nm_setting_802_1x_get_phase2_ca_cert_scheme,
|
||||
.format_func = NULL,
|
||||
.path_func = nm_setting_802_1x_get_phase2_ca_cert_path,
|
||||
.blob_func = nm_setting_802_1x_get_phase2_ca_cert_blob,
|
||||
.uri_func = nm_setting_802_1x_get_phase2_ca_cert_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_phase2_ca_cert_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_phase2_ca_cert_password_flags,
|
||||
.set_cert_func = nm_setting_802_1x_set_phase2_ca_cert,
|
||||
.file_suffix = "inner-ca-cert",
|
||||
},
|
||||
#define _D(_scheme_type, ...) \
|
||||
[(_scheme_type)] = { \
|
||||
.scheme_type = (_scheme_type), \
|
||||
__VA_ARGS__ \
|
||||
}
|
||||
|
||||
[NM_SETTING_802_1X_SCHEME_TYPE_CLIENT_CERT] = {
|
||||
.setting_key = NM_SETTING_802_1X_CLIENT_CERT,
|
||||
.scheme_func = nm_setting_802_1x_get_client_cert_scheme,
|
||||
.format_func = NULL,
|
||||
.path_func = nm_setting_802_1x_get_client_cert_path,
|
||||
.blob_func = nm_setting_802_1x_get_client_cert_blob,
|
||||
.uri_func = nm_setting_802_1x_get_client_cert_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_client_cert_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_client_cert_password_flags,
|
||||
.set_cert_func = nm_setting_802_1x_set_client_cert,
|
||||
.file_suffix = "client-cert",
|
||||
},
|
||||
_D (NM_SETTING_802_1X_SCHEME_TYPE_UNKNOWN),
|
||||
|
||||
[NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_CLIENT_CERT] = {
|
||||
.setting_key = NM_SETTING_802_1X_PHASE2_CLIENT_CERT,
|
||||
.scheme_func = nm_setting_802_1x_get_phase2_client_cert_scheme,
|
||||
.format_func = NULL,
|
||||
.path_func = nm_setting_802_1x_get_phase2_client_cert_path,
|
||||
.blob_func = nm_setting_802_1x_get_phase2_client_cert_blob,
|
||||
.uri_func = nm_setting_802_1x_get_phase2_client_cert_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_phase2_client_cert_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_phase2_client_cert_password_flags,
|
||||
.set_cert_func = nm_setting_802_1x_set_phase2_client_cert,
|
||||
.file_suffix = "inner-client-cert",
|
||||
},
|
||||
_D (NM_SETTING_802_1X_SCHEME_TYPE_CA_CERT,
|
||||
.setting_key = NM_SETTING_802_1X_CA_CERT,
|
||||
.scheme_func = nm_setting_802_1x_get_ca_cert_scheme,
|
||||
.format_func = NULL,
|
||||
.path_func = nm_setting_802_1x_get_ca_cert_path,
|
||||
.blob_func = nm_setting_802_1x_get_ca_cert_blob,
|
||||
.uri_func = nm_setting_802_1x_get_ca_cert_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_ca_cert_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_ca_cert_password_flags,
|
||||
.set_cert_func = nm_setting_802_1x_set_ca_cert,
|
||||
.file_suffix = "ca-cert",
|
||||
),
|
||||
|
||||
[NM_SETTING_802_1X_SCHEME_TYPE_PRIVATE_KEY] = {
|
||||
.setting_key = NM_SETTING_802_1X_PRIVATE_KEY,
|
||||
.scheme_func = nm_setting_802_1x_get_private_key_scheme,
|
||||
.format_func = nm_setting_802_1x_get_private_key_format,
|
||||
.path_func = nm_setting_802_1x_get_private_key_path,
|
||||
.blob_func = nm_setting_802_1x_get_private_key_blob,
|
||||
.uri_func = nm_setting_802_1x_get_private_key_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_private_key_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_private_key_password_flags,
|
||||
.set_private_key_func = nm_setting_802_1x_set_private_key,
|
||||
.file_suffix = "private-key",
|
||||
.is_secret = TRUE,
|
||||
},
|
||||
_D (NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_CA_CERT,
|
||||
.setting_key = NM_SETTING_802_1X_PHASE2_CA_CERT,
|
||||
.scheme_func = nm_setting_802_1x_get_phase2_ca_cert_scheme,
|
||||
.format_func = NULL,
|
||||
.path_func = nm_setting_802_1x_get_phase2_ca_cert_path,
|
||||
.blob_func = nm_setting_802_1x_get_phase2_ca_cert_blob,
|
||||
.uri_func = nm_setting_802_1x_get_phase2_ca_cert_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_phase2_ca_cert_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_phase2_ca_cert_password_flags,
|
||||
.set_cert_func = nm_setting_802_1x_set_phase2_ca_cert,
|
||||
.file_suffix = "inner-ca-cert",
|
||||
),
|
||||
|
||||
[NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_PRIVATE_KEY] = {
|
||||
.setting_key = NM_SETTING_802_1X_PHASE2_PRIVATE_KEY,
|
||||
.scheme_func = nm_setting_802_1x_get_phase2_private_key_scheme,
|
||||
.format_func = nm_setting_802_1x_get_phase2_private_key_format,
|
||||
.path_func = nm_setting_802_1x_get_phase2_private_key_path,
|
||||
.blob_func = nm_setting_802_1x_get_phase2_private_key_blob,
|
||||
.uri_func = nm_setting_802_1x_get_phase2_private_key_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_phase2_private_key_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_phase2_private_key_password_flags,
|
||||
.set_private_key_func = nm_setting_802_1x_set_phase2_private_key,
|
||||
.file_suffix = "inner-private-key",
|
||||
.is_secret = TRUE,
|
||||
},
|
||||
_D (NM_SETTING_802_1X_SCHEME_TYPE_CLIENT_CERT,
|
||||
.setting_key = NM_SETTING_802_1X_CLIENT_CERT,
|
||||
.scheme_func = nm_setting_802_1x_get_client_cert_scheme,
|
||||
.format_func = NULL,
|
||||
.path_func = nm_setting_802_1x_get_client_cert_path,
|
||||
.blob_func = nm_setting_802_1x_get_client_cert_blob,
|
||||
.uri_func = nm_setting_802_1x_get_client_cert_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_client_cert_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_client_cert_password_flags,
|
||||
.set_cert_func = nm_setting_802_1x_set_client_cert,
|
||||
.file_suffix = "client-cert",
|
||||
),
|
||||
|
||||
[NM_SETTING_802_1X_SCHEME_TYPE_UNKNOWN] = { NULL },
|
||||
_D (NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_CLIENT_CERT,
|
||||
.setting_key = NM_SETTING_802_1X_PHASE2_CLIENT_CERT,
|
||||
.scheme_func = nm_setting_802_1x_get_phase2_client_cert_scheme,
|
||||
.format_func = NULL,
|
||||
.path_func = nm_setting_802_1x_get_phase2_client_cert_path,
|
||||
.blob_func = nm_setting_802_1x_get_phase2_client_cert_blob,
|
||||
.uri_func = nm_setting_802_1x_get_phase2_client_cert_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_phase2_client_cert_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_phase2_client_cert_password_flags,
|
||||
.set_cert_func = nm_setting_802_1x_set_phase2_client_cert,
|
||||
.file_suffix = "inner-client-cert",
|
||||
),
|
||||
|
||||
_D (NM_SETTING_802_1X_SCHEME_TYPE_PRIVATE_KEY,
|
||||
.setting_key = NM_SETTING_802_1X_PRIVATE_KEY,
|
||||
.scheme_func = nm_setting_802_1x_get_private_key_scheme,
|
||||
.format_func = nm_setting_802_1x_get_private_key_format,
|
||||
.path_func = nm_setting_802_1x_get_private_key_path,
|
||||
.blob_func = nm_setting_802_1x_get_private_key_blob,
|
||||
.uri_func = nm_setting_802_1x_get_private_key_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_private_key_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_private_key_password_flags,
|
||||
.set_private_key_func = nm_setting_802_1x_set_private_key,
|
||||
.file_suffix = "private-key",
|
||||
.is_secret = TRUE,
|
||||
),
|
||||
|
||||
_D (NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_PRIVATE_KEY,
|
||||
.setting_key = NM_SETTING_802_1X_PHASE2_PRIVATE_KEY,
|
||||
.scheme_func = nm_setting_802_1x_get_phase2_private_key_scheme,
|
||||
.format_func = nm_setting_802_1x_get_phase2_private_key_format,
|
||||
.path_func = nm_setting_802_1x_get_phase2_private_key_path,
|
||||
.blob_func = nm_setting_802_1x_get_phase2_private_key_blob,
|
||||
.uri_func = nm_setting_802_1x_get_phase2_private_key_uri,
|
||||
.passwd_func = nm_setting_802_1x_get_phase2_private_key_password,
|
||||
.pwflag_func = nm_setting_802_1x_get_phase2_private_key_password_flags,
|
||||
.set_private_key_func = nm_setting_802_1x_set_phase2_private_key,
|
||||
.file_suffix = "inner-private-key",
|
||||
.is_secret = TRUE,
|
||||
),
|
||||
|
||||
#undef _D
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@@ -101,6 +101,7 @@ typedef struct {
|
||||
NMSetting8021xCKFormat *out_format,
|
||||
GError **error);
|
||||
const char *file_suffix;
|
||||
NMSetting8021xSchemeType scheme_type;
|
||||
bool is_secret:1;
|
||||
} NMSetting8021xSchemeVtable;
|
||||
|
||||
|
Reference in New Issue
Block a user