Changeset 32008


Ignore:
Timestamp:
May 10, 2017, 9:44:12 PM (2 months ago)
Author:
brainslayer
Message:

add some documentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/router/httpd/modules/base.c

    r32007 r32008  
    436436}
    437437
     438/* bigfile.bin download method used for benchmarking. use http://x.x.x.x/bigfile.bin?size=FILESIZE to request any filesize you want */
    438439static void do_bigfile(char *method, struct mime_handler *handler, char *path, webs_t stream, char *query)
    439440{
     
    451452        char *size = strstr(fs, parameter);
    452453        long long filesize = 0;
    453         if (!size)
     454        if (!size)              // if no argument parameter has been supplied, just use the following argument as numeric value
    454455                filesize = atoll(fs);
    455456        else {
    456457                char *s_fs = size + strlen(parameter);  //skip size=
    457                 idx = indexof(s_fs, '&');
     458                idx = indexof(s_fs, '&');       // skip any following parameter
    458459                if (idx > 0)
    459460                        s_fs[idx] = 0;
     
    461462        }
    462463
    463         if (!filesize || filesize < 0)
     464        if (!filesize || filesize < 0)  //if argument is not numeric or invalid, just return with no action
    464465                return;
    465466        long i;
     
    475476                        asprintf(&extra, "%s", options);
    476477                if (!strncasecmp(method, "OPTIONS", 7)) {
    477                         send_headers(200, "Ok", extra, handler->mime_type, 0, NULL);
    478                         free(extra);
    479                         return;
     478                        send_headers(200, "Ok", extra, handler->mime_type, 0, NULL);    // special case if call was for OPTIONS and not GET, so we return the requested header with zero body size
     479                        goto ret;
    480480                } else {
    481481                        send_headers(200, "Ok", extra, handler->mime_type, filesize, "bigfile.bin");
    482                         free(extra);
    483                 }
    484         }
    485 
     482                }
     483        }
     484        // send body in 64kb chunks based on random values
    486485        char *test = malloc(65536);
    487486        srand(time(NULL));
     
    494493        }
    495494        wfwrite(test, filesize % 65536, 1, stream);
    496 
    497495        free(test);
     496
     497      ret:;
     498        free(extra);
     499        return;
     500
    498501}
    499502
Note: See TracChangeset for help on using the changeset viewer.