Browse Source

[master] Merge branch 'trac5340'

Marcin Siodelski 7 years ago
parent
commit
2fdc7efcb8
2 changed files with 10 additions and 8 deletions
  1. 8 6
      src/bin/dhcp4/dhcp4_srv.cc
  2. 2 2
      src/lib/dhcp/pkt4.h

+ 8 - 6
src/bin/dhcp4/dhcp4_srv.cc

@@ -401,14 +401,16 @@ Dhcpv4Exchange::setReservedMessageFields() {
             resp_->setSiaddr(host->getNextServer());
         }
 
-        if (!host->getServerHostname().empty()) {
-            resp_->setSname(reinterpret_cast<
-                            const uint8_t*>(host->getServerHostname().c_str()));
+        std::string sname = host->getServerHostname();
+        if (!sname.empty()) {
+            resp_->setSname(reinterpret_cast<const uint8_t*>(sname.c_str()),
+                            sname.size());
         }
 
-        if (!host->getBootFileName().empty()) {
-            resp_->setFile(reinterpret_cast<
-                           const uint8_t*>(host->getBootFileName().c_str()));
+        std::string bootfile = host->getBootFileName();
+        if (!bootfile.empty()) {
+            resp_->setFile(reinterpret_cast<const uint8_t*>(bootfile.c_str()),
+                           bootfile.size());
         }
     }
 }

+ 2 - 2
src/lib/dhcp/pkt4.h

@@ -269,7 +269,7 @@ public:
     ///
     /// @param sname value to be set
     /// @param sname_len length of the sname buffer (up to MAX_SNAME_LEN)
-    void setSname(const uint8_t* sname, size_t sname_len = MAX_SNAME_LEN);
+    void setSname(const uint8_t* sname, size_t sname_len);
 
     /// @brief Returns file field
     ///
@@ -285,7 +285,7 @@ public:
     /// @param file value to be set
     /// @param file_len length of the file buffer (up to MAX_FILE_LEN)
     void
-    setFile(const uint8_t* file, size_t file_len = MAX_FILE_LEN);
+    setFile(const uint8_t* file, size_t file_len);
 
     /// @brief Sets hardware address.
     ///