]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[master] Merge branch 'trac4552'
authorMarcin Siodelski <marcin@isc.org>
Thu, 25 Aug 2016 16:18:07 +0000 (18:18 +0200)
committerMarcin Siodelski <marcin@isc.org>
Thu, 25 Aug 2016 16:18:07 +0000 (18:18 +0200)
1  2 
doc/guide/dhcp4-srv.xml
src/bin/dhcp4/dhcp4.spec
src/lib/dhcpsrv/mysql_host_data_source.cc
src/lib/dhcpsrv/pgsql_host_data_source.cc
src/lib/dhcpsrv/tests/generic_host_data_source_unittest.cc
src/lib/dhcpsrv/tests/generic_host_data_source_unittest.h
src/lib/dhcpsrv/tests/mysql_host_data_source_unittest.cc
src/lib/dhcpsrv/tests/pgsql_host_data_source_unittest.cc
src/share/database/scripts/mysql/dhcpdb_create.mysql

Simple merge
Simple merge
index 622b0641bb8209a67f261d93d982d70dc1604a1a,7421facd5a6a2d33ed32cda9429e3069af2a1ae2..3dde4c4c04f6dc109d8d15dfa37aac852e13f3a4
@@@ -1930,33 -2051,11 +2050,34 @@@ TaggedStatementArray tagged_statements 
      {MySqlHostDataSourceImpl::GET_VERSION,
              "SELECT version, minor FROM schema_version"},
  
 -    // Marks the end of the statements table.
 -    {MySqlHostDataSourceImpl::NUM_STATEMENTS, NULL}
 -};
 +    // Inserts a host into the 'hosts' table.
 +    {MySqlHostDataSourceImpl::INSERT_HOST,
 +         "INSERT INTO hosts(host_id, dhcp_identifier, dhcp_identifier_type, "
 +            "dhcp4_subnet_id, dhcp6_subnet_id, ipv4_address, hostname, "
-             "dhcp4_client_classes, dhcp6_client_classes) "
-          "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"},
++            "dhcp4_client_classes, dhcp6_client_classes, dhcp4_next_server, "
++            "dhcp4_server_hostname, dhcp4_boot_file_name) "
++         "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"},
  
 -}; // end anonymouse namespace
 +    // Inserts a single IPv6 reservation into 'reservations' table.
 +    {MySqlHostDataSourceImpl::INSERT_V6_RESRV,
 +         "INSERT INTO ipv6_reservations(address, prefix_len, type, "
 +            "dhcp6_iaid, host_id) "
 +         "VALUES (?,?,?,?,?)"},
 +
 +    // Inserts a single DHCPv4 option into 'dhcp4_options' table.
 +    // Using fixed scope_id = 3, which associates an option with host.
 +    {MySqlHostDataSourceImpl::INSERT_V4_OPTION,
 +         "INSERT INTO dhcp4_options(option_id, code, value, formatted_value, space, "
 +            "persistent, dhcp_client_class, dhcp4_subnet_id, host_id, scope_id) "
 +         " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 3)"},
 +
 +    // Inserts a single DHCPv6 option into 'dhcp6_options' table.
 +    // Using fixed scope_id = 3, which associates an option with host.
 +    {MySqlHostDataSourceImpl::INSERT_V6_OPTION,
 +         "INSERT INTO dhcp6_options(option_id, code, value, formatted_value, space, "
 +            "persistent, dhcp_client_class, dhcp6_subnet_id, host_id, scope_id) "
 +         " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 3)"}}
 +};
  
  MySqlHostDataSourceImpl::
  MySqlHostDataSourceImpl(const MySqlConnection::ParameterMap& parameters)
index 2ab52809233b1edf2012c62e98a5dbafafea8c12,ba886c9d0cdcd704cef8c82443399b62ffc4b047..732db7cf1d2932d2140fcdc432b56075a6796247
@@@ -1416,61 -1475,16 +1453,62 @@@ TaggedStatementArray tagged_statements 
       "ORDER BY h.host_id, o.option_id, r.reservation_id"
      },
  
-     //PgSqlHostDataSourceImpl::GET_VERSION
+     // PgSqlHostDataSourceImpl::GET_VERSION
      // Retrieves MySQL schema version.
 -    {0, 
 +    {0,
       { OID_NONE },
       "get_version",
       "SELECT version, minor FROM schema_version"
      },
  
 -    // Marks the end of the statements table.
 -    {0, { 0 }, NULL, NULL}
 +    // PgSqlHostDataSourceImpl::INSERT_HOST
 +    // Inserts a host into the 'hosts' table. Returns the inserted host id.
-     {8,
++    {11, 
 +     { OID_BYTEA, OID_INT2,
 +       OID_INT4, OID_INT4, OID_INT8, OID_VARCHAR,
 +       OID_VARCHAR, OID_VARCHAR },
 +     "insert_host",
 +     "INSERT INTO hosts(dhcp_identifier, dhcp_identifier_type, "
 +     "  dhcp4_subnet_id, dhcp6_subnet_id, ipv4_address, hostname, "
-      "  dhcp4_client_classes, dhcp6_client_classes) "
-      "VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING host_id"
++     "  dhcp4_client_classes, dhcp6_client_classes, "
++     "  dhcp4_next_server, dhcp4_server_hostname, dhcp4_boot_file_name) "
++     "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) RETURNING host_id"
 +    },
 +
 +    //PgSqlHostDataSourceImpl::INSERT_V6_RESRV
 +    // Inserts a single IPv6 reservation into 'reservations' table.
 +    {5,
 +     { OID_VARCHAR, OID_INT2, OID_INT4, OID_INT4, OID_INT4 },
 +     "insert_v6_resrv",
 +     "INSERT INTO ipv6_reservations(address, prefix_len, type, "
 +     "  dhcp6_iaid, host_id) "
 +     "VALUES ($1, $2, $3, $4, $5)"
 +    },
 +
 +    // PgSqlHostDataSourceImpl::INSERT_V4_HOST_OPTION
 +    // Inserts a single DHCPv4 option into 'dhcp4_options' table.
 +    // Using fixed scope_id = 3, which associates an option with host.
 +    {6,
 +     { OID_INT2, OID_BYTEA, OID_TEXT,
 +       OID_VARCHAR, OID_BOOL, OID_INT8},
 +     "insert_v4_host_option",
 +     "INSERT INTO dhcp4_options(code, value, formatted_value, space, "
 +     "  persistent, host_id, scope_id) "
 +     "VALUES ($1, $2, $3, $4, $5, $6, 3)"
 +    },
 +
 +    // PgSqlHostDataSourceImpl::INSERT_V6_HOST_OPTION
 +    // Inserts a single DHCPv6 option into 'dhcp6_options' table.
 +    // Using fixed scope_id = 3, which associates an option with host.
 +    {6,
 +     { OID_INT2, OID_BYTEA, OID_TEXT,
 +       OID_VARCHAR, OID_BOOL, OID_INT8},
 +     "insert_v6_host_option",
 +     "INSERT INTO dhcp6_options(code, value, formatted_value, space, "
 +     "  persistent, host_id, scope_id) "
 +     "VALUES ($1, $2, $3, $4, $5, $6, 3)"
 +    }
 +}
  };
  
  }; // end anonymous namespace
index 80aaf082c2a6b976cbd5b148e0626e661650f8a8,4031f50cc19d9d5de0ea37ab02ca37772dc7d0cf..fefebb53e5ae624ca5da1719f7e13490c90c3cac
@@@ -465,10 -465,11 +465,15 @@@ ALTER TABLE dhcp6_option
      ADD CONSTRAINT fk_dhcp6_option_scope FOREIGN KEY (scope_id)
      REFERENCES dhcp_option_scope (scope_id);
  
 +# Add UNSIGNED to reservation_id
 +ALTER TABLE ipv6_reservations
 +    MODIFY reservation_id INT UNSIGNED NOT NULL AUTO_INCREMENT;
 +
+ # Add columns holding reservations for siaddr, sname and file fields
+ # carried within DHCPv4 message.
+ ALTER TABLE hosts ADD COLUMN dhcp4_next_server INT UNSIGNED NULL;
+ ALTER TABLE hosts ADD COLUMN dhcp4_server_hostname VARCHAR(64) NULL;
+ ALTER TABLE hosts ADD COLUMN dhcp4_boot_file_name VARCHAR(128) NULL;
  
  # Update the schema version number
  UPDATE schema_version