aboutsummaryrefslogtreecommitdiff
path: root/src/Proxy/Proxy.h
blob: d9a438d487adb73ef0a3861001d3ec9dcc7c02d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef PROXY_H
#define PROXY_H

#include <curl/curl.h>

typedef enum { PROXY_HTTP, PROXY_SOCKS4, PROXY_SOCKS5 } ProxyType;

typedef struct {
  ProxyType type;
  char host[256];
  int port;
  char username[64];
  char password[64];
  int failures;
} Proxy;

extern Proxy *proxy_list;
extern int proxy_count;
extern int max_proxy_retries;
extern int randomize_username;
extern int randomize_password;
extern char proxy_url[512];

int load_proxy_list(const char *filename);
void free_proxy_list(void);
Proxy *get_random_proxy(void);
void record_proxy_failure(Proxy *proxy);
void apply_proxy_settings(CURL *curl);
void set_proxy_config(const char *proxy_str, int rand_user, int rand_pass);

#endif