]> jfr.im git - irc/quakenet/newserv.git/blob - nterfacer/library.h
Merge pull request #132 from retropc/lua_country
[irc/quakenet/newserv.git] / nterfacer / library.h
1 /*
2 nterface library functions
3 Copyright (C) 2003-2004 Chris Porter.
4 */
5
6 #ifndef __nterface_library_H
7 #define __nterface_library_H
8
9 #include "../core/error.h"
10 #include "../core/nsmalloc.h"
11
12 #include "../lib/sha2.h"
13
14 #define RE_OK 0x00
15 #define RE_MEM_ERROR 0x01
16 #define RE_BAD_LINE 0x02
17 #define RE_REQUEST_REJECTED 0x03
18 #define RE_SERVICE_NOT_FOUND 0x04
19 #define RE_CONNECTION_CLOSED 0x05
20 #define RE_TRANSPORT_NOT_FOUND 0x06
21 #define RE_COMMAND_NOT_FOUND 0x07
22 #define RE_WRONG_ARG_COUNT 0x08
23 #define RE_TOO_MANY_ARGS 0x09
24 #define RE_SERVICER_NOT_FOUND 0x0A
25 #define RE_SOCKET_ERROR 0x0B
26 #define RE_ACCESS_DENIED 0x0C
27
28 #define snc(err, f) strncpy(err, f, sizeof(err) - 1)
29 #define TwentyByteHex(output, buf) snprintf(output, sizeof(output), "%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13], buf[14], buf[15], buf[16], buf[17], buf[18], buf[19]);
30 #define SixteenByteHex(output, buf) snprintf(output, sizeof(output), "%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13], buf[14], buf[15]);
31 #define ThirtyTwoByteHex(output, buf) snprintf(output, sizeof(output), "%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13], buf[14], buf[15], buf[16], buf[17], buf[18], buf[19], buf[20], buf[21], buf[22], buf[23], buf[24], buf[25], buf[26], buf[27], buf[28], buf[29], buf[30], buf[31]);
32
33 #define MemError() Error("nterface", ERR_FATAL, "Memory allocation error, file: %s line: %d", __FILE__, __LINE__);
34
35 #define RANDOM_LOCATION "/dev/urandom"
36
37 #define MemCheck(x) \
38 if(!x) { \
39 MemError(); \
40 return; \
41 }
42
43 #define MemCheckR(x, y) \
44 if(!x) { \
45 MemError(); \
46 return y; \
47 }
48
49 int getcopyconfigitemint(char *section, char *key, int def, int *value);
50 int getcopyconfigitemintpositive(char *section, char *key, int def);
51 int protected_atoi(char *buf, int *value);
52 int positive_atoi(char *data);
53 char *challenge_response(char *challenge, char *password);
54 char *request_error(int errn);
55 int get_entropy(unsigned char *data, int bytes);
56 int generate_nonce(unsigned char *nonce, int nterfacer);
57 char *int_to_hex(unsigned char *input, char *buf, int len);
58 int hex_to_int(char *input, unsigned char *buf, int buflen);
59
60 #define ntmalloc(x) nsmalloc(POOL_NTERFACER, x)
61 #define ntfree(x) nsfree(POOL_NTERFACER, x)
62 #define ntrealloc(x, y) nsrealloc(POOL_NTERFACER, x, y)
63
64 #endif