Changeset 22 in Main for trunk/Server/config.c


Ignore:
Timestamp:
Sep 14, 2024, 10:25:38 PM (2 months ago)
Author:
Nishi
Message:

icon works

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Server/config.c

    r21 r22  
    3131}
    3232
    33 bool tw_permission_allowed(const char* path, SOCKADDR addr, struct tw_http_request req, struct tw_config_entry* vhost){
     33bool tw_permission_allowed(const char* path, SOCKADDR addr, struct tw_http_request req, struct tw_config_entry* vhost) {
    3434        int i;
    3535        bool found = false;
     
    3737        bool perm = false;
    3838again:
    39         for(i = 0; i < vhost->dir_count; i++){
     39        for(i = 0; i < vhost->dir_count; i++) {
    4040                struct tw_dir_entry* e = &vhost->dirs[i];
    4141                pathstart = false;
    42                 if(strlen(path) >= strlen(e->dir)){
     42                if(strlen(path) >= strlen(e->dir)) {
    4343                        pathstart = true;
    4444                        int j;
    45                         for(j = 0; path[j] != 0 && e->dir[j] != 0; j++){
    46                                 if(path[j] != e->dir[j]){
     45                        for(j = 0; path[j] != 0 && e->dir[j] != 0; j++) {
     46                                if(path[j] != e->dir[j]) {
    4747                                        pathstart = false;
    4848                                        break;
     
    5252                char* noslash = cm_strdup(e->dir);
    5353                noslash[strlen(noslash) - 1] = 0;
    54                 if(strcmp(e->dir, path) == 0 || strcmp(noslash, path) == 0 || pathstart){
     54                if(strcmp(e->dir, path) == 0 || strcmp(noslash, path) == 0 || pathstart) {
    5555                        found = true;
    56                         if(strcmp(e->name, "all") == 0){
     56                        if(strcmp(e->name, "all") == 0) {
    5757                                perm = e->type == TW_DIR_ALLOW;
    5858                        }
     
    6060                free(noslash);
    6161        }
    62         if(!found && vhost != &config.root){
     62        if(!found && vhost != &config.root) {
    6363                vhost = &config.root;
    6464                goto again;
     
    8282        config.root.mime_count = 0;
    8383        config.root.dir_count = 0;
     84        config.root.icon_count = 0;
    8485        config.vhost_count = 0;
    8586        config.module_count = 0;
     
    180181                                                                current->dir_count = 0;
    181182                                                                current->mime_count = 0;
     183                                                                current->icon_count = 0;
    182184                                                                int i;
    183185                                                                current->name = cm_strdup(vhost);
     
    247249                                                        cm_log("Config", "Missing extension at line %d", ln);
    248250                                                        stop = 1;
    249                                                 }else if(r[2] == NULL) {
     251                                                } else if(r[2] == NULL) {
    250252                                                        cm_log("Config", "Missing MIME at line %d", ln);
    251253                                                        stop = 1;
     
    254256                                                        e->ext = cm_strdup(r[1]);
    255257                                                        e->mime = cm_strdup(r[2]);
     258                                                }
     259                                        } else if(cm_strcaseequ(r[0], "Icon")) {
     260                                                if(r[1] == NULL) {
     261                                                        cm_log("Config", "Missing MIME at line %d", ln);
     262                                                        stop = 1;
     263                                                } else if(r[2] == NULL) {
     264                                                        cm_log("Config", "Missing path at line %d", ln);
     265                                                        stop = 1;
     266                                                } else {
     267                                                        struct tw_icon_entry* e = &current->icons[current->icon_count++];
     268                                                        e->mime = cm_strdup(r[1]);
     269                                                        e->icon = cm_strdup(r[2]);
    256270                                                }
    257271                                        } else if(cm_strcaseequ(r[0], "LoadModule")) {
Note: See TracChangeset for help on using the changeset viewer.