Home | History | Annotate | Download | only in pending

Lines Matching refs:optptr

833 static uint8_t *dhcpc_addclientid(uint8_t *optptr)
835 *optptr++ = DHCP_OPTION_CLIENTID;
836 *optptr++ = 7;
837 *optptr++ = 1;
838 memcpy(optptr, &state->macaddr, 6);
839 return optptr + 6;
843 static uint8_t *dhcpc_addmsgtype(uint8_t *optptr, uint8_t type)
845 *optptr++ = DHCP_OPTION_MSG_TYPE;
846 *optptr++ = 1;
847 *optptr++ = type;
848 return optptr;
852 static uint8_t *dhcpc_addmaxsize(uint8_t *optptr, uint16_t size)
854 *optptr++ = DHCP_OPTION_MAX_SIZE;
855 *optptr++ = 2;
856 memcpy(optptr, &size, 2);
857 return optptr + 2;
860 static uint8_t *dhcpc_addstropt(uint8_t *optptr, uint8_t opcode, char* str, int len)
862 *optptr++ = opcode;
863 *optptr++ = len;
864 memcpy(optptr, str, len);
865 return optptr + len;
869 static uint8_t *dhcpc_addserverid(struct in_addr *serverid, uint8_t *optptr)
871 *optptr++ = DHCP_OPTION_SERVER_ID;
872 *optptr++ = 4;
873 memcpy(optptr, &serverid->s_addr, 4);
874 return optptr + 4;
878 static uint8_t *dhcpc_addreqipaddr(struct in_addr *ipaddr, uint8_t *optptr)
880 *optptr++ = DHCP_OPTION_REQ_IPADDR;
881 *optptr++ = 4;
882 memcpy(optptr, &ipaddr->s_addr, 4);
883 return optptr + 4;
887 static uint8_t *dhcpc_addfdnname(uint8_t *optptr, char *hname)
891 *optptr++ = DHCP_OPTION_FQDN;
892 *optptr++ = size + 3;
893 *optptr++ = 0x1; //flags
894 optptr += 2; // two blank bytes
895 strcpy((char*)optptr, hname); // name
897 return optptr + size;
901 static uint8_t *dhcpc_addreqoptions(uint8_t *optptr)
905 *optptr++ = DHCP_OPTION_REQ_LIST;
906 len = optptr;
908 optptr++;
912 *optptr++ = DHCP_OPTION_SUBNET_MASK;
913 *optptr++ = DHCP_OPTION_ROUTER;
914 *optptr++ = DHCP_OPTION_DNS_SERVER;
915 *optptr++ = DHCP_OPTION_BROADCAST;
918 memcpy(optptr++, raw_opt, raw_optcount);
921 return optptr;
924 static uint8_t *dhcpc_addend(uint8_t *optptr)
926 *optptr++ = DHCP_OPTION_END;
927 return optptr;
931 static uint8_t* set_xopt(uint8_t *optptr)
937 *optptr++ = (uint8_t) (options_list[count].code & 0x00FF);
938 *optptr++ = (uint8_t) options_list[count].len;
939 memcpy(optptr, options_list[count].val, options_list[count].len);
940 optptr += options_list[count].len;
942 return optptr;
1053 * parses options from received dhcp packet at OPTPTR and
1056 static uint8_t dhcpc_parseoptions(dhcpc_result_t *presult, uint8_t *optptr)
1089 while (*optptr != DHCP_OPTION_END) {
1090 if (*optptr == DHCP_OPTION_PADDING) {
1091 optptr++;
1094 if (*optptr == DHCP_OPTION_OVERLOAD) {
1095 overloaded = optptr[2];
1096 optptr += optptr[1] + 2;
1100 if ((msgopt_list[count].code & 0X00FF) == *optptr) {
1107 memcpy(&convtmp, &optptr[2], sizeof(uint32_t));
1114 memcpy(&convtmp, &optptr[2], sizeof(uint16_t));
1121 memcpy(&convtmp, &optptr[2], sizeof(uint8_t));
1127 memcpy(&convtmp, &optptr[2], sizeof(uint32_t));
1134 sprintf(toybuf, "%.*s", optptr[1], &optptr[2]);
1139 optlen = optptr[1];
1142 memcpy(&convtmp, &optptr[2], sizeof(uint32_t));
1157 options = &optptr[2];
1158 optlen = optptr[1];
1188 optptr += optptr[1] + 2;
1190 if ((overloaded == 1) || (overloaded == 3)) dhcpc_parseoptions(presult, optptr);
1191 if ((overloaded == 2) || (overloaded == 3)) dhcpc_parseoptions(presult, optptr);