Changeset 23 in Main for trunk


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

icon works

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Server/http.c

    r22 r23  
    6060                tv.tv_sec = 5;
    6161                tv.tv_usec = 0;
    62                 if(!SSL_has_pending(ssl)) {
     62                if(ssl == NULL || !SSL_has_pending(ssl)) {
    6363                        int n = select(FD_SETSIZE, &fds, NULL, NULL, &tv);
    6464                        if(n <= 0) {
  • trunk/Server/server.c

    r22 r23  
    4040SOCKADDR addresses[MAX_PORTS];
    4141int sockets[MAX_PORTS];
     42
     43/* https://qiita.com/gyu-don/items/5a640c6d2252a860c8cd */
     44int tw_wildcard_match(const char* wildcard, const char* target) {
     45        const char *pw = wildcard, *pt = target;
     46
     47        while(1) {
     48                if(*pt == 0) {
     49                        while(*pw == '*') pw++;
     50                        return *pw == 0;
     51                } else if(*pw == 0) {
     52                        return 0;
     53                } else if(*pw == '*') {
     54                        return *(pw + 1) == 0 || tw_wildcard_match(pw, pt + 1) || tw_wildcard_match(pw + 1, pt);
     55                } else if(*pw == '?' || (*pw == *pt)) {
     56                        pw++;
     57                        pt++;
     58                        continue;
     59                } else {
     60                        return 0;
     61                }
     62        }
     63}
    4264
    4365void close_socket(int sock) {
     
    275297        int i;
    276298        for(i = 0; i < vhost_entry->mime_count; i++) {
    277                 if(strcmp(vhost_entry->mimes[i].ext, "all") == 0 || (ext != NULL && strcmp(vhost_entry->mimes[i].ext, ext) == 0)) {
     299                if(strcmp(vhost_entry->mimes[i].ext, "all") == 0 || (ext != NULL && tw_wildcard_match(vhost_entry->mimes[i].ext, ext))) {
    278300                        mime = vhost_entry->mimes[i].mime;
    279301                        set = true;
     
    282304        if(!set) {
    283305                for(i = 0; i < config.root.mime_count; i++) {
    284                         if(strcmp(config.root.mimes[i].ext, "all") == 0 || (ext != NULL && strcmp(config.root.mimes[i].ext, ext) == 0)) {
     306                        if(strcmp(config.root.mimes[i].ext, "all") == 0 || (ext != NULL && tw_wildcard_match(config.root.mimes[i].ext, ext))) {
    285307                                mime = config.root.mimes[i].mime;
    286308                        }
     
    296318        int i;
    297319        for(i = 0; i < vhost_entry->icon_count; i++) {
    298                 if(strcmp(vhost_entry->icons[i].mime, "all") == 0 || (mime != NULL && strcmp(vhost_entry->icons[i].mime, mime) == 0)) {
     320                if(strcmp(vhost_entry->icons[i].mime, "all") == 0 || (mime != NULL && tw_wildcard_match(vhost_entry->icons[i].mime, mime))) {
    299321                        icon = vhost_entry->icons[i].icon;
    300322                        set = true;
     
    303325        if(!set) {
    304326                for(i = 0; i < config.root.icon_count; i++) {
    305                         if(strcmp(config.root.icons[i].mime, "all") == 0 || (mime != NULL && strcmp(config.root.icons[i].mime, mime) == 0)) {
     327                        if(strcmp(config.root.icons[i].mime, "all") == 0 || (mime != NULL && tw_wildcard_match(config.root.icons[i].mime, mime))) {
    306328                                icon = config.root.icons[i].icon;
    307329                        }
  • trunk/example.conf

    r22 r23  
    44#LoadModule /home/nishi/SVN/tewi/trunk/Module/mod_example.so
    55
    6 Listen 8000 8001 8002 8003 8004
    7 ListenSSL 8443 8444 8445 8446 8447
     6Listen 80
     7ListenSSL 443
    88
    99SSLKey key.pem
     
    1616
    1717Icon all /icons/unknown.png
    18 Icon text/plain /icons/text.png
     18Icon text/* /icons/text.png
    1919Icon misc/dir /icons/folder.png
    2020Icon misc/parent /icons/parent.png
     
    2525        Allow all
    2626EndDirectory
    27 
    28 BeginVirtualHost nishinbsd-ssd
    29 EndVirtualHost
Note: See TracChangeset for help on using the changeset viewer.