bglibs
envstr.h
1 #ifndef BGLIBS__STR__ENV__H__
2 #define BGLIBS__STR__ENV__H__
3 
4 struct str;
5 
16 extern const char* envstr_find(const struct str* env, const char* var, long varlen);
17 extern const char* envstr_get(const struct str* env, const char* var);
18 extern int envstr_set(struct str* env, const char* var, const char* val, int overwrite);
19 extern void envstr_unset(struct str* env, const char* var);
20 extern int envstr_put(struct str* env, const char* asgn, int overwrite);
21 extern int envstr_from_array(struct str* env, char** array, int overwrite);
22 extern int envstr_from_string(struct str* env, const char* s, int overwrite);
23 extern char** envstr_make_array(const struct str* env);
24 
27 #endif
dns_mx::name
char * name
Definition: dns.h:124
dns_transmit::tcpstate
int tcpstate
Definition: dns.h:101
surfrand::counter
uint32 counter[SURF_IN_U32]
Definition: surfrand.h:20
str::s
char * s
Definition: str.h:36
IPV6ADDR_V4PREFIX
const ipv6addr IPV6ADDR_V4PREFIX
Definition: ipv6_addr.c:10
str_endb
int str_endb(const str *a, const char *b, unsigned len)
Definition: end.c:35
dns_rotateipv6
void dns_rotateipv6(ipv6addr *, unsigned int)
Definition: dns_rotate.c:33
dns_ip4_packet
int dns_ip4_packet(struct dns_result *out, const char *buf, unsigned int len)
Definition: dns_ip4.c:18
dns_qualify
int dns_qualify(struct dns_result *out, str *fqdn, const char *in, int(*fn)(struct dns_transmit *, struct dns_result *, const char *))
Definition: dns_qualify.c:99
ipv6addr
Definition: ipv6.h:11
DNS_T_A
#define DNS_T_A
Definition: dns.h:41
ipv4_scan
const char * ipv4_scan(const char *s, ipv4addr *addr)
Definition: ipv4_scan.c:25
dns_mx_packet
int dns_mx_packet(struct dns_result *out, const char *buf, unsigned int len)
Definition: dns_mx.c:34
envstr_find
const char * envstr_find(const struct str *env, const char *var, long len)
Definition: env_find.c:9
ibuf_openreadclose
int ibuf_openreadclose(const char *filename, struct str *s)
Definition: ibuf_openreadclose.c:5
dns_name6
int dns_name6(struct dns_result *, const ipv6addr *)
dns_domain_equal
int dns_domain_equal(const char *dn1, const char *dn2)
Definition: dns_domain.c:44
str_catb
int str_catb(str *s, const char *in, unsigned len)
Definition: cat.c:43
obuf_putu
int obuf_putu(obuf *out, unsigned long data)
Definition: obuf_putunumw.c:21
striter_start
void striter_start(striter *iter, const struct str *s, char sep)
Definition: iter_start.c:5
dns_transmit::packetlen
unsigned int packetlen
Definition: dns.h:87
dns_result::type
int type
Definition: dns.h:142
socket_tcp
int socket_tcp(void)
Definition: tcp4.c:32
dns_txt
int dns_txt(struct dns_result *, const char *)
envstr_make_array
char ** envstr_make_array(const struct str *env)
Definition: env_make_array.c:11
dns_result::rr
union dns_result_rrs rr
Definition: dns.h:144
dns_ip4_r
int dns_ip4_r(struct dns_transmit *tx, struct dns_result *out, const char *fqdn)
Definition: dns_ip4.c:27
dns_transmit::curserver
unsigned int curserver
Definition: dns.h:105
envstr_from_array
int envstr_from_array(struct str *env, char **array, int overwrite)
Definition: env_from_array.c:9
dns_transmit::s1
int s1
Definition: dns.h:91
surfrand
Definition: surfrand.h:10
dns_ip6
int dns_ip6(struct dns_result *, const char *)
dns_transmit::qtype
uint16 qtype
Definition: dns.h:115
dns_result
Definition: dns.h:137
socket_connected
int socket_connected(int sock)
Definition: connected.c:24
dns_result_alloc
int dns_result_alloc(struct dns_result *d, int type, int count, int size)
Definition: dns_result.c:21
socket_connect4
int socket_connect4(int sock, const ipv4addr *ip, ipv4port port)
Definition: connect4.c:28
obuf_endl
int obuf_endl(obuf *out)
Definition: obuf_endl.c:4
dns_name6_r
int dns_name6_r(struct dns_transmit *tx, struct dns_result *out, const ipv6addr *ip)
Definition: dns_name6.c:4
ipv4_format
const char * ipv4_format(const ipv4addr *addr)
Definition: ipv4_format.c:18
dns_transmit::localip
ipv4addr localip
Definition: dns.h:113
envstr_from_string
int envstr_from_string(struct str *env, const char *s, int overwrite)
Definition: env_from_string.c:8
str_copyb
int str_copyb(str *s, const char *in, unsigned len)
Definition: copy.c:34
str::len
unsigned len
Definition: str.h:40
dns_transmit::pos
unsigned int pos
Definition: dns.h:109
dns_result::__buffer
void * __buffer
Definition: dns.h:146
dns_domain_todot_cat
int dns_domain_todot_cat(str *out, const char *d)
Definition: dns_domain_todot.c:4
dns_resolvconfrewrite
int dns_resolvconfrewrite(str *)
Definition: dns_resolvconfrewrite.c:128
ipv6_isv4mapped
int ipv6_isv4mapped(const ipv6addr *addr)
Definition: ipv6_addr.c:13
obuf_puts
#define obuf_puts(out, str)
Definition: obuf.h:74
dns_domain_free
void dns_domain_free(char **out)
Definition: dns_domain.c:20
dns_domain_length
unsigned int dns_domain_length(const char *dn)
Definition: dns_domain.c:8
dns_transmit::querylen
unsigned int querylen
Definition: dns.h:83
fmt_udec
unsigned fmt_udec(char *buffer, unsigned long num)
Definition: udec.c:10
striter_loop
#define striter_loop(ITER, STR, SEP)
Definition: striter.h:43
ipv4addr::addr
uint8 addr[4]
Definition: ipv4.h:13
dns_mx::distance
uint16 distance
Definition: dns.h:122
dns_rotate
void dns_rotate(unsigned char *s, unsigned int n, unsigned int shift)
Definition: dns_rotate.c:11
dns_transmit::servers
const ipv4addr * servers
Definition: dns.h:111
DNS_T_AAAA
#define DNS_T_AAAA
Definition: dns.h:63
dns_domain_suffix
int dns_domain_suffix(const char *big, const char *little)
Definition: dns_domain.c:56
striter::startptr
const char * startptr
Definition: striter.h:22
dns_packet_copy
unsigned int dns_packet_copy(const char *, unsigned int, unsigned int, unsigned char *, unsigned int)
Definition: dns_packet.c:12
ipv4addr
Definition: ipv4.h:11
dns_name4
int dns_name4(struct dns_result *, const ipv4addr *)
socket_udp
int socket_udp(void)
Definition: udp4.c:32
ipv6_scan
const char * ipv6_scan(const char *s, ipv6addr *addr)
Definition: ipv6_scan.c:53
dns_qualify_rules
int dns_qualify_rules(struct dns_result *out, str *fqdn, const char *in, const str *rules, int(*fn)(struct dns_transmit *, struct dns_result *, const char *))
Definition: dns_qualify.c:50
str_ends
int str_ends(const str *a, const char *b)
Definition: end.c:23
striter_advance
int striter_advance(striter *)
Definition: iter_advance.c:5
DNS_R_FN_WRAP
#define DNS_R_FN_WRAP(NAME, TYPE)
Definition: dns.h:216
obuf_putf
int obuf_putf(obuf *out, const char *format,...)
Definition: obuf_putf.c:26
str_end
int str_end(const str *a, const str *b)
Definition: end.c:29
dns_ip6_r
int dns_ip6_r(struct dns_transmit *tx, struct dns_result *out, const char *fqdn)
Definition: dns_ip6.c:27
obuf_flush
int obuf_flush(obuf *out)
Definition: obuf_flush.c:6
ipv4port
uint16 ipv4port
Definition: ipv4.h:16
ipv6addr::addr
uint8 addr[16]
Definition: ipv6.h:13
DNS_T_TXT
#define DNS_T_TXT
Definition: dns.h:55
dns_transmit::udploop
unsigned int udploop
Definition: dns.h:103
str_copys
int str_copys(str *s, const char *in)
Definition: copy.c:28
str_realloc
#define str_realloc(S, SZ)
Definition: str.h:74
striter
Definition: striter.h:15
str_truncate
int str_truncate(str *s, unsigned len)
Definition: truncate.c:27
dns_domain_suffixpos
unsigned int dns_domain_suffixpos(const char *big, const char *little)
Definition: dns_domain.c:69
dns_name4_domain
void dns_name4_domain(char[DNS_NAME4_DOMAIN], const ipv4addr *)
Definition: dns_name4_domain.c:7
dns_mx_r
int dns_mx_r(struct dns_transmit *tx, struct dns_result *out, const char *fqdn)
Definition: dns_mx.c:40
DNS_T_MX
#define DNS_T_MX
Definition: dns.h:53
striter_valid
int striter_valid(striter *)
Definition: iter_valid.c:5
dns_transmit_free
void dns_transmit_free(struct dns_transmit *)
Definition: dns_transmit.c:79
dns_transmit
Definition: dns.h:79
envstr_put
int envstr_put(struct str *env, const char *asgn, int overwrite)
Definition: env_put.c:9
dns_domain_fromdot
int dns_domain_fromdot(char **out, const char *buf, unsigned int n)
Definition: dns_domain_fromdot.c:8
dns_name6_domain
void dns_name6_domain(char[DNS_NAME6_DOMAIN], const ipv6addr *)
Definition: dns_name6_domain.c:7
outbuf
obuf outbuf
Definition: obuf_stdout.c:7
dns_transmit::deadline
struct timeval deadline
Definition: dns.h:107
dns_packet_skipname
unsigned int dns_packet_skipname(const char *buf, unsigned int len, unsigned int pos)
Definition: dns_packet.c:23
dns_ip6_packet
int dns_ip6_packet(struct dns_result *out, const char *buf, unsigned int len)
Definition: dns_ip6.c:18
dns_name4_r
int dns_name4_r(struct dns_transmit *tx, struct dns_result *out, const ipv4addr *ip)
Definition: dns_name4.c:6
striter::start
unsigned start
Definition: striter.h:20
dns_resolvconfip
int dns_resolvconfip(ipv4addr s[DNS_MAX_IPS])
Definition: dns_resolvconfip.c:84
str_cats
int str_cats(str *s, const char *in)
Definition: cat.c:28
dns_mx
Definition: dns.h:119
fmt_lcase_digits
const char fmt_lcase_digits[36]
Definition: lcase.c:4
DNS_MAX_IPS
#define DNS_MAX_IPS
Definition: dns.h:72
dns_result::count
int count
Definition: dns.h:140
dns_transmit::query
char * query
Definition: dns.h:81
surfrand_init
void surfrand_init(struct surfrand *c, const uint32 *data, unsigned words)
Definition: surfrand.c:51
dns_packet_extract
int dns_packet_extract(struct dns_result *out, const char *buf, unsigned int len, uint16 rrtype, uint16 rrclass, int(*sizefn)(const char *buf, unsigned int len, unsigned int pos, uint16 datalen), int(*copy)(struct dns_result *out, unsigned int index, unsigned int offset, const char *buf, unsigned int len, unsigned int pos, uint16 datalen))
Definition: dns_packet.c:96
dns_resolve
int dns_resolve(struct dns_transmit *, const char *, uint16)
Definition: dns_resolve.c:33
dns_transmit::packet
char * packet
Definition: dns.h:85
envstr_unset
void envstr_unset(struct str *env, const char *var)
Definition: env_unset.c:6
DNS_T_NS
#define DNS_T_NS
Definition: dns.h:43
DNS_T_PTR
#define DNS_T_PTR
Definition: dns.h:49
str_copy
int str_copy(str *s, const str *in)
Definition: copy.c:22
envstr_get
const char * envstr_get(const struct str *env, const char *var)
Definition: env_get.c:7
dns_read_resolvconf
int dns_read_resolvconf(str *out)
Definition: dns_resolvconfip.c:15
dns_txt_packet
int dns_txt_packet(struct dns_result *out, const char *buf, unsigned int len)
Definition: dns_txt.c:44
dns_random
unsigned int dns_random(unsigned int n)
Definition: dns_random.c:28
dns_packet_getname
unsigned int dns_packet_getname(const char *, unsigned int, unsigned int, char **)
Definition: dns_packet.c:41
dns_rotateipv4
void dns_rotateipv4(ipv4addr *, unsigned int)
Definition: dns_rotate.c:27
surfrand_uniform
uint32 surfrand_uniform(struct surfrand *c, uint32 bound)
Definition: surfrand.c:121
DNS_NAME6_DOMAIN
#define DNS_NAME6_DOMAIN
Definition: dns.h:76
ipv6_format
const char * ipv6_format(const ipv6addr *addr)
Definition: ipv6_format.c:29
envstr_set
int envstr_set(struct str *env, const char *var, const char *val, int overwrite)
Definition: env_set.c:6
obuf_puti
int obuf_puti(obuf *out, long data)
Definition: obuf_putsnumw.c:21
dns_result_free
void dns_result_free(struct dns_result *d)
Definition: dns_result.c:8
SURF_SEED
#define SURF_SEED
Definition: surf.h:21
dns_name_packet
int dns_name_packet(struct dns_result *, const char *, unsigned int)
Definition: dns_name_packet.c:31
dns_transmit_get
int dns_transmit_get(struct dns_transmit *, const iopoll_fd *, const struct timeval *)
Definition: dns_transmit.c:257
str_catc
int str_catc(str *s, char in)
Definition: cat.c:34
dns_txt_r
int dns_txt_r(struct dns_transmit *tx, struct dns_result *out, const char *fqdn)
Definition: dns_txt.c:50
fmt_dns_domain
unsigned fmt_dns_domain(char *, const char *)
Definition: dns_fmt.c:4
dns_transmit_start
int dns_transmit_start(struct dns_transmit *, const ipv4addr[DNS_MAX_IPS], int, const char *, uint16, const ipv4addr *)
Definition: dns_transmit.c:204
DNS_NAME4_DOMAIN
#define DNS_NAME4_DOMAIN
Definition: dns.h:74
str
Definition: str.h:30
SURF_SEED_U32
#define SURF_SEED_U32
Definition: surf.h:14
striter::len
unsigned len
Definition: striter.h:24
DNS_C_IN
#define DNS_C_IN
Definition: dns.h:36
socket_bind4
int socket_bind4(int sock, const ipv4addr *ip, ipv4port port)
Definition: bind4.c:26
dns_ip4
int dns_ip4(struct dns_result *, const char *)
dns_transmit_io
void dns_transmit_io(const struct dns_transmit *, iopoll_fd *, struct timeval *)
Definition: dns_transmit.c:236
dns_domain_copy
int dns_domain_copy(char **out, const char *in)
Definition: dns_domain.c:29
obuf_putc
int obuf_putc(obuf *out, char ch)
Definition: obuf_putc.c:4