32 #include "../ucx/string.h" |
32 #include "../ucx/string.h" |
33 |
33 |
34 int object_type_by_extension(pblock *pb, Session *sn, Request *rq) { |
34 int object_type_by_extension(pblock *pb, Session *sn, Request *rq) { |
35 sstr_t ppath = sstr(pblock_findkeyval(pb_key_ppath, rq->vars)); |
35 sstr_t ppath = sstr(pblock_findkeyval(pb_key_ppath, rq->vars)); |
36 |
36 |
37 printf("\nobject_type_by_extension: {%s}[%d]\n\n", ppath); |
37 //printf("\nobject_type_by_extension: {%s}[%d]\n\n", ppath); |
38 |
38 |
39 sstr_t ct; |
39 sstr_t ct; |
40 if(ppath.ptr[ppath.length - 1] == '/') { |
40 if(ppath.ptr[ppath.length - 1] == '/') { |
41 /* directory */ |
41 /* directory */ |
42 ct = sstrn("internal/directory", 18); |
42 ct = sstrn("internal/directory", 18); |
63 } else if(!sstrcmp(ext, sstrn("html", 4))) { |
63 } else if(!sstrcmp(ext, sstrn("html", 4))) { |
64 ct = sstr("text/html"); |
64 ct = sstr("text/html"); |
65 } else if(!sstrcmp(ext, sstrn("xml", 3))) { |
65 } else if(!sstrcmp(ext, sstrn("xml", 3))) { |
66 ct = sstr("text/xml"); |
66 ct = sstr("text/xml"); |
67 } else { |
67 } else { |
68 return REQ_ABORTED; |
68 return REQ_NOACTION; |
69 } |
69 } |
70 } |
70 } |
71 |
71 |
72 pblock_kvinsert(pb_key_content_type, ct.ptr, ct.length, rq->srvhdrs); |
72 pblock_kvinsert(pb_key_content_type, ct.ptr, ct.length, rq->srvhdrs); |
73 return REQ_PROCEED; |
73 return REQ_PROCEED; |