#define STATUS_SERVER_PERIOD 25
#define IDLE_TIMEOUT 300
+/* 27262 is vendor DANTE Ltd. */
+#define DEFAULT_TTL_ATTR "27262:1"
+
#define RAD_UDP 0
#define RAD_TLS 1
#define RAD_TCP 2
#define RAD_DTLS 3
+#define RAD_PROTOCOUNT 4
struct options {
- char **listenudp;
- char **listentcp;
- char **listentls;
- char **listendtls;
- char **listenaccudp;
- char *sourceudp;
- char *sourcetcp;
- char *sourcetls;
- char *sourcedtls;
+ char **listenargs[RAD_PROTOCOUNT];
+ char *sourcearg[RAD_PROTOCOUNT];
char *logdestination;
+ char *ttlattr;
+ uint32_t ttlattrtype[2];
+ uint8_t addttl;
uint8_t loglevel;
uint8_t loopprevention;
};
uint8_t retrycount;
uint8_t dupinterval;
uint8_t certnamecheck;
+ uint8_t addttl;
struct rewrite *rewritein;
struct rewrite *rewriteout;
struct addrinfo *addrinfo;
uint32_t cacheexpiry;
uint32_t tlsexpiry;
uint32_t dtlsexpiry;
+ X509_VERIFY_PARAM *vpm;
SSL_CTX *tlsctx;
SSL_CTX *dtlsctx;
};
struct protodefs {
char *name;
char *secretdefault;
- uint8_t socktype;
+ int socktype;
char *portdefault;
uint8_t retrycountdefault;
uint8_t retrycountmax;
uint8_t retryintervalmax;
uint8_t duplicateintervaldefault;
void *(*listener)(void*);
- char **srcaddrport;
int (*connecter)(struct server *, struct timeval *, int, char *);
void *(*clientconnreader)(void*);
int (*clientradput)(struct server *, unsigned char *);
void (*addclient)(struct client *);
void (*addserverextra)(struct clsrvconf *);
+ void (*setsrcres)(char *source);
void (*initextra)();
};
#define ATTRVAL(x) ((x) + 2)
#define ATTRVALLEN(x) ((x)[1] - 2)
-struct addrinfo *getsrcprotores(uint8_t type);
struct clsrvconf *find_clconf(uint8_t type, struct sockaddr *addr, struct list_node **cur);
struct clsrvconf *find_srvconf(uint8_t type, struct sockaddr *addr, struct list_node **cur);
struct clsrvconf *find_clconf_type(uint8_t type, struct list_node **cur);
int verifyconfcert(X509 *cert, struct clsrvconf *conf);
void replyh(struct server *server, unsigned char *buf);
SSL_CTX *tlsgetctx(uint8_t type, struct tls *t);
+struct addrinfo *resolve_hostport_addrinfo(uint8_t type, char *hostport);