libidav/resource.c

changeset 225
a297c2e28fa1
parent 223
cbbdf207e67e
child 227
bf485439222a
equal deleted inserted replaced
224:4b55f05f4e00 225:a297c2e28fa1
744 } 744 }
745 745
746 DavResource* dav_create_child(DavResource *parent, char *name) { 746 DavResource* dav_create_child(DavResource *parent, char *name) {
747 DavResource *res = dav_resource_new_child(parent->session, parent, name); 747 DavResource *res = dav_resource_new_child(parent->session, parent, name);
748 if(dav_create(res)) { 748 if(dav_create(res)) {
749 // TODO: free resource 749 dav_resource_free(res);
750 return NULL; 750 return NULL;
751 } else { 751 } else {
752 return res; 752 return res;
753 } 753 }
754 } 754 }
806 int len = strlen(name); 806 int len = strlen(name);
807 if(name[len - 1] == '/') { 807 if(name[len - 1] == '/') {
808 name[len - 1] = '\0'; 808 name[len - 1] = '\0';
809 } 809 }
810 if(resource_add_crypto_info(sn, h, name, NULL)) { 810 if(resource_add_crypto_info(sn, h, name, NULL)) {
811 // TODO: error 811 sn->error = DAV_ERROR;
812 dav_session_set_errstr(sn, "Cannot set crypto properties for ancestor");
812 } 813 }
813 break; 814 break;
814 } else if(status == 405) { 815 } else if(status == 405) {
815 // parent already exists 816 // parent already exists
816 break; 817 break;
850 curl_easy_getinfo(handle, CURLINFO_RESPONSE_CODE, &s); 851 curl_easy_getinfo(handle, CURLINFO_RESPONSE_CODE, &s);
851 *status = s; 852 *status = s;
852 if(code == CURLE_OK && (s >= 200 && s < 300)) { 853 if(code == CURLE_OK && (s >= 200 && s < 300)) {
853 sn->error = DAV_OK; 854 sn->error = DAV_OK;
854 // if the session has encrypted file names, add crypto infos 855 // if the session has encrypted file names, add crypto infos
855 resource_add_crypto_info(sn, res->href, res->name, NULL); // TODO: check return type 856 if(!resource_add_crypto_info(sn, res->href, res->name, NULL)) {
856 857 // do a minimal propfind request
857 // do a minimal propfind request 858 UcxBuffer *rqbuf = create_propfind_request(sn, NULL);
858 UcxBuffer *rqbuf = create_propfind_request(sn, NULL); 859 int ret = dav_propfind(sn, res, rqbuf);
859 int ret = dav_propfind(sn, res, rqbuf); 860 ucx_buffer_free(rqbuf);
860 ucx_buffer_free(rqbuf); 861 return ret;
861 return ret; 862 } else {
863 return 1;
864 }
862 } else { 865 } else {
863 dav_session_set_error(sn, code, s); 866 dav_session_set_error(sn, code, s);
864 return 1; 867 return 1;
865 } 868 }
866 } 869 }

mercurial