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 |