libidav/utils.c

changeset 70
88092b88ec00
parent 69
0dbdd7e8c1fc
child 71
c9aff0a0093d
equal deleted inserted replaced
69:0dbdd7e8c1fc 70:88092b88ec00
170 add_separator = 1; 170 add_separator = 1;
171 } 171 }
172 } 172 }
173 173
174 sstr_t url; 174 sstr_t url;
175 url.length = base.length + path.length + add_separator;
176 url.ptr = malloc(url.length + 1);
177 url.ptr[url.length] = '\0';
178
179 if(add_separator) { 175 if(add_separator) {
180 url = sstrncat(url, 3, base, sstr("/"), path); 176 url = sstrcat(3, base, sstr("/"), path);
181 } else { 177 } else {
182 url = sstrncat(url, 2, base, path); 178 url = sstrcat(2, base, path);
183 } 179 }
184 180
185 return url.ptr; 181 return url.ptr;
186 } 182 }
187 183
190 sstr_t href_str = sstr(href); 186 sstr_t href_str = sstr(href);
191 187
192 char *base_path = util_url_path(sn->base_url); 188 char *base_path = util_url_path(sn->base_url);
193 base.length -= strlen(base_path); 189 base.length -= strlen(base_path);
194 190
195 sstr_t url; 191 sstr_t url = sstrcat(2, base, href_str);
196 url.length = base.length + href_str.length;
197 url.ptr = malloc(url.length + 1);
198 url.ptr[url.length] = '\0';
199 url = sstrncat(url, 2, base, href_str);
200 192
201 curl_easy_setopt(sn->handle, CURLOPT_URL, url); 193 curl_easy_setopt(sn->handle, CURLOPT_URL, url);
202 free(url.ptr); 194 free(url.ptr);
203 } 195 }
204 196

mercurial