| 13 | sockaddr_in dhcpServerAddress; |
| 14 | |
| 15 | void SendDHCPMessage(DHCPHeader& header, std::vector<void*>& options){ |
| 16 | uint8_t* headerOptions = header.options; |
| 17 | |
| 18 | for(void* p : options){ |
| 19 | DHCPOption<0>* opt = (DHCPOption<0>*)p; |
| 20 | |
| 21 | memcpy(headerOptions, opt, opt->length + sizeof(DHCPOption<0>)); |
| 22 | |
| 23 | headerOptions += opt->length + sizeof(DHCPOption<0>); |
| 24 | } |
| 25 | |
| 26 | *headerOptions = 0xFF; // End mark |
| 27 | headerOptions++; |
| 28 | |
| 29 | sendto(dhcpSocket, &header, sizeof(DHCPHeader), 0, (sockaddr*)&dhcpServerAddress, sizeof(sockaddr_in)); |
| 30 | } |
| 31 | |
| 32 | int main(){ |
| 33 | dhcpSocket = socket(AF_INET, SOCK_DGRAM, 0); |