Ignore:
Timestamp:
Feb 2, 2016, 9:54:35 PM (8 years ago)
Author:
coas-nagasima
Message:

SDカードの中身を/~/でアクセスできるよう変更

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/uip/apps/webserver/httpd.c

    r152 r154  
    198198  memcpy(pos, statushdr, len); pos += len;
    199199
    200   len = strlen(http_content_encoding_gzip);
    201   memcpy(pos, http_content_encoding_gzip, len); pos += len;
     200  if (s->drv == 0) {
     201    len = strlen(http_content_encoding_gzip);
     202    memcpy(pos, http_content_encoding_gzip, len); pos += len;
     203  }
    202204
    203205  ptr = strrchr(s->message.request_url, ISO_period);
     
    244246PT_THREAD(handle_output(struct httpd_state *s))
    245247{
    246   char *ptr;
    247 
    248248  PT_BEGIN(&s->outputpt);
    249249
    250   if (!httpd_fs_open(s->message.request_url, &s->file)) {
    251     httpd_fs_open(http_404_html, &s->file);
     250  s->file.fs = ((char *)&s[1]) - 64 - 512;
     251
     252  if (!httpd_fs_open(s->drv, s->filename, &s->file)) {
     253    s->drv = 0;
     254    httpd_fs_open(s->drv, http_404_html, &s->file);
    252255    strcpy_s(s->message.request_url, sizeof(s->message.request_url), http_404_html);
    253256    PT_WAIT_THREAD(&s->outputpt,
     
    259262      send_headers(s,
    260263      http_header_200));
    261     ptr = strchr(s->message.request_url, ISO_period);
    262264    PT_WAIT_THREAD(&s->outputpt, send_file(s));
    263265  }
     
    406408  if ((s->message.request_url[0] == '\0') || ((s->message.request_url[0] == '/') && (s->message.request_url[1] == '\0'))) {
    407409    strncpy_s(s->message.request_url, sizeof(s->message.request_url), http_index_html, sizeof(s->message.request_url));
     410    s->filename = s->message.request_url;
     411  }
     412  /* "/~/"ならSDカードから読み込み */
     413  else if ((s->message.request_url[0] == '/') && (s->message.request_url[1] == '~') && (s->message.request_url[2] == '/')) {
     414    s->drv = 1;
     415    s->filename = &s->message.request_url[2];
     416  }
     417  else {
     418    s->drv = 0;
     419    s->filename = s->message.request_url;
    408420  }
    409421
Note: See TracChangeset for help on using the changeset viewer.