VSTR_AUTOCONF_uintmax_t fsize = req->f_stat->st_size;
uintmax_t fsize = req->f_stat->st_size;
static int http_parse_range(struct Con *con, Httpd_req_data *req){  Vstr_base *data     = req->http_hdrs->multi->comb;  Vstr_sect_node *h_r = req->http_hdrs->multi->hdr_range;  size_t pos = h_r->pos;  size_t len = h_r->len;  VSTR_AUTOCONF_uintmax_t fsize = req->f_stat->st_size;  unsigned int num_flags = 10 | (VSTR_FLAG_PARSE_NUM_NO_BEG_PM |                                 VSTR_FLAG_PARSE_NUM_OVERFLOW);  size_t num_len = 0;    if (!VPREFIX(data, pos, len, "bytes"))    return (0);  len -= CLEN("bytes"); pos += CLEN("bytes");  HTTP_SKIP_LWS(data, pos, len);    if (!VPREFIX(data, pos, len, "="))    return (0);  len -= CLEN("="); pos += CLEN("=");  http__parse_skip_blanks(data, &pos, &len);    while (len)  {    VSTR_AUTOCONF_uintmax_t range_beg = 0;    VSTR_AUTOCONF_uintmax_t range_end = 0;        if (VPREFIX(data, pos, len, "-"))    { /* num bytes at end */      VSTR_AUTOCONF_uintmax_t tmp = 0;      len -= CLEN("-"); pos += CLEN("-");      HTTP_SKIP_LWS(data, pos, len);      tmp = vstr_parse_uintmax(data, pos, len, num_flags, &num_len, NULL);      len -= num_len; pos += num_len;      if (!num_len)        return (0);      if (!tmp)        return (416);          if (tmp >= fsize)        return (0);          range_beg = fsize - tmp;      range_end = fsize - 1;    }    else    { /* offset - [end] */      range_beg = vstr_parse_uintmax(data, pos, len, num_flags, &num_len, NULL);      len -= num_len; pos += num_len;      HTTP_SKIP_LWS(data, pos, len);          if (!VPREFIX(data, pos, len, "-"))        return (0);      len -= CLEN("-"); pos += CLEN("-");      HTTP_SKIP_LWS(data, pos, len);      if (!len || VPREFIX(data, pos, len, ","))        range_end = fsize - 1;      else      {        range_end = vstr_parse_uintmax(data, pos, len, num_flags, &num_len, 0);        len -= num_len; pos += num_len;        if (!num_len)          return (0);              if (range_end >= fsize)          range_end = fsize - 1;      }          if ((range_beg >= fsize) || (range_beg > range_end))        return (416);          if ((range_beg == 0) &&           (range_end == (fsize - 1)))        return (0);    }      http__parse_skip_blanks(data, &pos, &len);    if (!httpd__file_sect_add(con, req, range_beg, range_end, len))      return (0); /* after all that, ignore if there is more than one range */  }  return (200);}