65 const DWORD glyph_size =
sizeof(wchar_t);
68 wchar_t domains_0[
BUF_SIZE] = L
"openvpn.com";
69 len = (DWORD)wcslen(domains_0) + 1;
70 size = len * glyph_size;
72 assert_int_equal(size, 0);
73 assert_int_equal(err, ERROR_FILE_NOT_FOUND);
76 wchar_t domains_1[
BUF_SIZE] = L
"openvpn.com";
77 len = (DWORD)wcslen(domains_1) + 1;
78 size = len * glyph_size;
79 wchar_t domains_1_res[] = L
".openvpn.com\0";
81 assert_memory_equal(domains_1, domains_1_res, size);
82 assert_int_equal(size,
sizeof(domains_1_res));
83 assert_int_equal(err, NO_ERROR);
86 wchar_t domains_2[
BUF_SIZE] = L
"openvpn.com,openvpn.net";
87 len = (DWORD)wcslen(domains_2) + 1;
88 size = len * glyph_size;
89 wchar_t domains_2_res[] = L
".openvpn.com\0";
91 assert_memory_equal(domains_2, domains_2_res, size);
92 assert_int_equal(size,
sizeof(domains_2_res));
93 assert_int_equal(err, NO_ERROR);
96 wchar_t domains_3[
BUF_SIZE] = L
"openvpn.com,openvpn.net";
97 len = (DWORD)wcslen(domains_3) + 1;
98 size = len * glyph_size;
99 wchar_t domains_3_res[] = L
".openvpn.net\0";
101 assert_memory_equal(domains_3, domains_3_res, size);
102 assert_int_equal(size,
sizeof(domains_3_res));
103 assert_int_equal(err, NO_ERROR);
106 wchar_t domains_4[
BUF_SIZE] = L
"openvpn.com,openvpn.net";
107 len = (DWORD)wcslen(domains_4) + 1;
108 size = len * glyph_size;
109 wchar_t domains_4_res[] = L
".openvpn.com\0.openvpn.net\0";
111 assert_memory_equal(domains_4, domains_4_res, size);
112 assert_int_equal(size,
sizeof(domains_4_res));
113 assert_int_equal(err, NO_ERROR);
116 wchar_t domains_5[
BUF_SIZE] = L
"openvpn.com,openvpn.net,openvpn.org";
117 len = (DWORD)wcslen(domains_5) + 1;
118 size = len * glyph_size;
119 wchar_t domains_5_res[] = L
".openvpn.net\0.openvpn.org\0";
121 assert_memory_equal(domains_5, domains_5_res, size);
122 assert_int_equal(size,
sizeof(domains_5_res));
123 assert_int_equal(err, NO_ERROR);
126 wchar_t domains_6[
BUF_SIZE] = L
"openvpn.com,openvpn.net,openvpn.org";
127 len = (DWORD)wcslen(domains_6) + 1;
128 size = len * glyph_size;
129 wchar_t domains_6_res[] = L
".openvpn.com\0.openvpn.org\0";
131 assert_memory_equal(domains_6, domains_6_res, size);
132 assert_int_equal(size,
sizeof(domains_6_res));
133 assert_int_equal(err, NO_ERROR);
136 wchar_t domains_7[
BUF_SIZE] = L
"openvpn.com,openvpn.net,openvpn.org";
137 len = (DWORD)wcslen(domains_7) + 1;
138 size = len * glyph_size;
139 wchar_t domains_7_res[] = L
".openvpn.com\0.openvpn.net\0";
141 assert_memory_equal(domains_7, domains_7_res, size);
142 assert_int_equal(size,
sizeof(domains_7_res));
143 assert_int_equal(err, NO_ERROR);
146 wchar_t domains_8[
BUF_SIZE] = L
"openvpn.com,openvpn.net,openvpn.org,am-ende-noch-eine-lange.de";
147 len = (DWORD)wcslen(domains_8) + 1;
148 size = len * glyph_size;
149 wchar_t domains_8_res[] = L
".openvpn.com\0.openvpn.net\0.openvpn.org\0";
151 assert_memory_equal(domains_8, domains_8_res, size);
152 assert_int_equal(size,
sizeof(domains_8_res));
153 assert_int_equal(err, ERROR_MORE_DATA);
164 assert_int_equal(wcscmp(list, L
"a.com"), 0);
167 wcscpy(list, L
"x.com");
169 assert_int_equal(wcscmp(list, L
"x.com,a.com,b.com"), 0);
172 wcscpy(list, L
"x.com");
174 assert_int_equal(wcscmp(list, L
"x.com"), 0);
177 wcscpy(list, L
"x.com");
179 assert_int_equal(wcscmp(list, L
"x.com,x.com"), 0);
183 wcscpy(tiny, L
"abc");
185 assert_int_equal(wcscmp(tiny, L
"abc"), 0);
195 wcscpy(list, L
"test.vpn.corp.local,other.com,vpn.corp.local");
197 assert_int_equal(wcscmp(list, L
"test.vpn.corp.local,other.com"), 0);
200 wcscpy(list, L
"corp.local,corp.local");
202 assert_int_equal(wcscmp(list, L
"corp.local"), 0);
208 wcscpy(list, L
"a,b,a");
210 assert_int_equal(wcscmp(list, L
"a,b"), 0);
213 wcscpy(list, L
"a,b,c,d");
215 assert_int_equal(wcscmp(list, L
"a,c"), 0);
218 wcscpy(list, L
"a,b,c");
220 assert_int_equal(wcscmp(list, L
"a,b,c"), 0);
223 wcscpy(list, L
"a,b,c");
225 assert_int_equal(wcscmp(list, L
"b,c"), 0);
228 wcscpy(list, L
"a,b,c");
230 assert_int_equal(wcscmp(list, L
"a,b"), 0);
233 wcscpy(list, L
"a,b");
235 assert_int_equal(wcscmp(list, L
""), 0);
238 wcscpy(list, L
"x,x,x");
240 assert_int_equal(wcscmp(list, L
"x"), 0);
245 assert_int_equal(wcscmp(list, L
""), 0);
250 assert_int_equal(wcscmp(list, L
""), 0);
253 wcscpy(list, L
"a,b");
255 assert_int_equal(wcscmp(list, L
"a,b"), 0);
259 wcscpy(list, L
"a,,b");
261 assert_int_equal(wcscmp(list, L
"a,"), 0);
static BOOL AppendSearchList(PWSTR list, size_t list_cap, PCWSTR add)
Append a comma-separated list of domains to another comma-separated list, in place.
static LSTATUS ConvertItfDnsDomains(PCWSTR search_domains, PWSTR domains, PDWORD size, const DWORD capacity)
Convert interface specific domain suffix(es) from comma-separated string to MULTI_SZ string.