summary refs log tree commit diff
path: root/cptc.h
blob: 463e2c9356eec38db2c21dd19dcc9bf63d5a678c (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#ifndef __CPTC_H__
#define __CPTC_H__

#include <netinet/in.h>


/**
 * HTTP methods that CPTC supports
 */
enum CPTC_Method
{
    CPTC_GET = 'G',
    CPTC_HEAD = 'H',
};

/**
 * Discord bot's token. CPTC_downloadAvatar requires it when requests avatar ID
 *
 * Library users should create it and set before calling CPTC
 */
extern const char *CPTC_token;

/**
 * Contents of README file. CPTC_requestHandler responses with this when
 * requesting on "/"
 */
extern const char *CPTC_root;

/**
 * Starts CPTC server
 * @param address Adress to bind
 * @param port Port to bind
 */
void CPTC(const char *address, in_port_t port);

/**
 * Handles request
 * Paths:
 *  /         README
 *  /<UID>.*  GIF that pets given UID
 * @param fd Request
 * @param n Any number, used for generating random files in /tmp/
 */
void CPTC_requestHandler(int fd, int n);

/**
 * Downloads given user's avatar
 * @param uid UserID
 * @param download_path Path where to save avatar.
 */
char *CPTC_downloadAvatar(long long uid, const char *download_path);

#endif /* __CPTC_H__ */