src/server/safs/objecttype.c

changeset 116
d7a186cf87f6
parent 92
382bff43c6eb
child 201
196a3caebdc7
equal deleted inserted replaced
115:51d9a15eac98 116:d7a186cf87f6
34 34
35 #include "../daemon/config.h" 35 #include "../daemon/config.h"
36 #include "../daemon/session.h" 36 #include "../daemon/session.h"
37 37
38 int object_type_by_extension(pblock *pb, Session *sn, Request *rq) { 38 int object_type_by_extension(pblock *pb, Session *sn, Request *rq) {
39 sstr_t ppath = sstr(pblock_findkeyval(pb_key_ppath, rq->vars)); 39 sstr_t path = sstr(pblock_findkeyval(pb_key_path, rq->vars));
40 //printf("\nobject_type_by_extension: {%s}[%d]\n\n", ppath); 40 //printf("\nobject_type_by_extension: {%s}[%d]\n\n", path);
41 41
42 sstr_t ct; 42 sstr_t ct;
43 if(ppath.ptr[ppath.length - 1] == '/') { 43 if(path.ptr[path.length - 1] == '/') {
44 // directory 44 // directory
45 ct = sstrn("internal/directory", 18); 45 ct = sstrn("internal/directory", 18);
46 } else { 46 } else {
47 sstr_t ext; 47 sstr_t ext;
48 ext.length = 0; 48 ext.length = 0;
49 for(int i=ppath.length - 1;i>=0;i--) { 49 for(int i=path.length - 1;i>=0;i--) {
50 if(ppath.ptr[i] == '.') { 50 if(path.ptr[i] == '.') {
51 ext.ptr = ppath.ptr + i + 1; 51 ext.ptr = path.ptr + i + 1;
52 ext.length = ppath.length - i - 1; 52 ext.length = path.length - i - 1;
53 } 53 }
54 } 54 }
55 55
56 if(ext.length == 0) { 56 if(ext.length == 0) {
57 // no extension, no type 57 // no extension, no type

mercurial