if (le32toh(state->readyinfo) & MBIM_READY_INFO_FLAG_PROTECT_UNIQUE_ID)
printf(" dont display subscriberID: 1\n");
for (nr = 0; nr < le32toh(state->telephonenumberscount); nr++) {
- struct mbim_string *str = buffer + le32toh(state->telephonenumbers) + (nr * sizeof(struct mbim_string));
+ struct mbim_string *str = (void *)&state->telephonenumbers + (nr * sizeof(struct mbim_string));
char *number = mbim_get_string(str, buffer);
printf(" number: %s\n", number);
}
struct mbim_basic_connect_ip_configuration_r *ip = (struct mbim_basic_connect_ip_configuration_r *) buffer;
char ipv4[16];
int i;
+ uint32_t offset;
if (len < sizeof(struct mbim_basic_connect_ip_configuration_r)) {
fprintf(stderr, "message not long enough\n");
if (le32toh(ip->ipv4configurationavailable) & MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_ADDRESS)
for (i = 0; i < le32toh(ip->ipv4addresscount); i++) {
- mbim_get_ipv4(buffer, ipv4, ip->ipv4address + (i * 4));
- printf(" ipv4address: %s\n", ipv4);
+ offset = le32toh(ip->ipv4address) + (i * 4);
+ mbim_get_ipv4(buffer, ipv4, 4 + offset);
+ printf(" ipv4address: %s/%d\n", ipv4, mbim_get_int(buffer, offset));
}
if (le32toh(ip->ipv4configurationavailable) & MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_DNS) {
mbim_get_ipv4(buffer, ipv4, ip->ipv4gateway);