diff options
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 12 |
1 files changed, 11 insertions, 1 deletions
| @@ -3676,7 +3676,17 @@ xs_str *make_url(const char *href, const char *proxy, int by_token) | |||
| 3676 | xs_str *url = NULL; | 3676 | xs_str *url = NULL; |
| 3677 | 3677 | ||
| 3678 | if (proxy && !xs_startswith(href, srv_baseurl)) { | 3678 | if (proxy && !xs_startswith(href, srv_baseurl)) { |
| 3679 | xs *p = xs_str_cat(xs_dup(proxy), "/x/"); | 3679 | xs *p = NULL; |
| 3680 | |||
| 3681 | if (by_token) { | ||
| 3682 | xs *tks = xs_fmt("%s:%s", xs_dict_get(srv_config, "proxy_token_seed"), proxy); | ||
| 3683 | xs *tk = xs_md5_hex(tks, strlen(tks)); | ||
| 3684 | |||
| 3685 | p = xs_fmt("y/%s/", tk); | ||
| 3686 | } | ||
| 3687 | else | ||
| 3688 | p = xs_str_cat(xs_dup(proxy), "/x/"); | ||
| 3689 | |||
| 3680 | url = xs_replace(href, "https:/" "/", p); | 3690 | url = xs_replace(href, "https:/" "/", p); |
| 3681 | } | 3691 | } |
| 3682 | else | 3692 | else |