123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #include "DHCPCommon.h"
- #if defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
- uint8_t DHCPCommon_SetOption(uint8_t* DHCPOptionList,
- const uint8_t Option,
- const uint8_t DataLen,
- void* const OptionData)
- {
-
- while (*DHCPOptionList != DHCP_OPTION_END)
- DHCPOptionList += (DHCPOptionList[1] + 2);
-
- DHCPOptionList[0] = Option;
- DHCPOptionList[1] = DataLen;
- memcpy(&DHCPOptionList[2], OptionData, DataLen);
- DHCPOptionList[2 + DataLen] = DHCP_OPTION_END;
-
- return (2 + DataLen);
- }
- bool DHCPCommon_GetOption(const uint8_t* DHCPOptionList,
- const uint8_t Option,
- void* const Destination)
- {
-
- while (*DHCPOptionList != DHCP_OPTION_END)
- {
-
- if (DHCPOptionList[0] == Option)
- {
-
- memcpy(Destination, &DHCPOptionList[2], DHCPOptionList[1]);
-
- return true;
- }
-
- DHCPOptionList += (DHCPOptionList[1] + 2);
- }
-
- return false;
- }
- #endif
|