mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-16 19:58:07 +02:00
Instead of handling iBFT (iSCSI Boot Firmware Table) in the ifcfg-rh plugin, create a new plugin for it. This allows all distributions to use iBFT configuration, and makes both iBFT handling and ifcfg-rh less complicated. The plugin (like the old ifcfg-rh code) creates read-only connections backed by the data exported by iscsiadm. The plugin does not support adding new connections or modifying existing connections (since the iBFT data is read-only anyway). Instead, users should change their iBFT data through the normal firmware interfaces. Unmanaged devices can be configured through NetworkManager.conf and the normal 'keyfile' mechanisms. (In the future, we'll read this data directly from the kernel's /sys/firmware/ibft/ethernetX directory instead of iscsiadm, since the kernel has all the information we need and that's where iscsiadm gets it from anyway.) https://bugzilla.gnome.org/show_bug.cgi?id=734009
65 lines
1.9 KiB
C
65 lines
1.9 KiB
C
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
|
/* NetworkManager system settings service
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* Copyright 2014 Red Hat, Inc.
|
|
*/
|
|
|
|
#include <string.h>
|
|
#include <net/ethernet.h>
|
|
#include <netinet/ether.h>
|
|
|
|
#include <glib/gstdio.h>
|
|
|
|
#include "nm-ibft-connection.h"
|
|
#include "errors.h"
|
|
#include "reader.h"
|
|
|
|
G_DEFINE_TYPE (NMIbftConnection, nm_ibft_connection, NM_TYPE_SETTINGS_CONNECTION)
|
|
|
|
NMIbftConnection *
|
|
nm_ibft_connection_new (const GPtrArray *block, GError **error)
|
|
{
|
|
NMConnection *source;
|
|
GObject *object;
|
|
|
|
source = connection_from_block (block, error);
|
|
if (!source)
|
|
return NULL;
|
|
|
|
object = g_object_new (NM_TYPE_IBFT_CONNECTION, NULL);
|
|
/* Update settings with what was read from iscsiadm */
|
|
if (!nm_settings_connection_replace_settings (NM_SETTINGS_CONNECTION (object),
|
|
source,
|
|
FALSE,
|
|
error))
|
|
g_clear_object (&object);
|
|
|
|
return (NMIbftConnection *) object;
|
|
}
|
|
|
|
/* GObject */
|
|
|
|
static void
|
|
nm_ibft_connection_init (NMIbftConnection *connection)
|
|
{
|
|
}
|
|
|
|
static void
|
|
nm_ibft_connection_class_init (NMIbftConnectionClass *ibft_connection_class)
|
|
{
|
|
}
|
|
|