Bug fixes

This commit is contained in:
Juan Gilsanz Polo 2023-10-08 14:22:03 +02:00
parent bb5cdc13d1
commit 151cbb996e
3 changed files with 153 additions and 101 deletions

View file

@ -13,7 +13,7 @@ class DnsInfo {
int? cacheTtlMin; int? cacheTtlMin;
int? cacheTtlMax; int? cacheTtlMax;
bool? cacheOptimistic; bool? cacheOptimistic;
bool resolveClients; bool? resolveClients;
bool usePrivatePtrResolvers; bool usePrivatePtrResolvers;
List<String> localPtrUpstreams; List<String> localPtrUpstreams;
String blockingIpv4; String blockingIpv4;

View file

@ -79,7 +79,7 @@ class _PrivateReverseDnsServersScreenState extends State<PrivateReverseDnsServer
editReverseResolvers = true; editReverseResolvers = true;
} }
usePrivateReverseDnsResolvers = dnsProvider.dnsInfo!.usePrivatePtrResolvers; usePrivateReverseDnsResolvers = dnsProvider.dnsInfo!.usePrivatePtrResolvers;
enableReverseResolve = dnsProvider.dnsInfo!.resolveClients; enableReverseResolve = dnsProvider.dnsInfo!.resolveClients ?? false;
validValues = true; validValues = true;
super.initState(); super.initState();
} }

View file

@ -616,19 +616,33 @@ class ApiClient {
} }
Future getClients() async { Future getClients() async {
final result = await Future.wait([ try {
apiRequest(server: server, method: 'get', urlPath: '/clients', type: 'get_clients'), final result = await Future.wait([
apiRequest(server: server, method: 'get', urlPath: '/access/list', type: 'get_clients'), apiRequest(server: server, method: 'get', urlPath: '/clients', type: 'get_clients'),
]); apiRequest(server: server, method: 'get', urlPath: '/access/list', type: 'get_clients'),
]);
if (result[0]['hasResponse'] == true && result[1]['hasResponse'] == true) { if (result[0]['hasResponse'] == true && result[1]['hasResponse'] == true) {
if (result[0]['statusCode'] == 200 && result[1]['statusCode'] == 200) { if (result[0]['statusCode'] == 200 && result[1]['statusCode'] == 200) {
final clients = Clients.fromJson(jsonDecode(result[0]['body'])); final clients = Clients.fromJson(jsonDecode(result[0]['body']));
clients.clientsAllowedBlocked = ClientsAllowedBlocked.fromJson(jsonDecode(result[1]['body'])); clients.clientsAllowedBlocked = ClientsAllowedBlocked.fromJson(jsonDecode(result[1]['body']));
return { return {
'result': 'success', 'result': 'success',
'data': clients 'data': clients
}; };
}
else {
return {
'result': 'error',
'log': AppLog(
type: 'get_clients',
dateTime: DateTime.now(),
message: 'error_code_not_expected',
statusCode: result.map((res) => res['statusCode'] ?? 'null').toString(),
resBody: result.map((res) => res['body'] ?? 'null').toString(),
)
};
}
} }
else { else {
return { return {
@ -636,22 +650,21 @@ class ApiClient {
'log': AppLog( 'log': AppLog(
type: 'get_clients', type: 'get_clients',
dateTime: DateTime.now(), dateTime: DateTime.now(),
message: 'error_code_not_expected', message: 'no_response',
statusCode: result.map((res) => res['statusCode'] ?? 'null').toString(), statusCode: result.map((res) => res['statusCode'] ?? 'null').toString(),
resBody: result.map((res) => res['body'] ?? 'null').toString(), resBody: result.map((res) => res['body'] ?? 'null').toString(),
) )
}; };
} }
} } catch (e) {
else { Sentry.captureException(e);
return { return {
'result': 'error', 'result': 'error',
'log': AppLog( 'log': AppLog(
type: 'get_clients', type: 'get_clients',
dateTime: DateTime.now(), dateTime: DateTime.now(),
message: 'no_response', message: 'no_response',
statusCode: result.map((res) => res['statusCode'] ?? 'null').toString(), resBody: e.toString()
resBody: result.map((res) => res['body'] ?? 'null').toString(),
) )
}; };
} }
@ -701,68 +714,94 @@ class ApiClient {
String? responseStatus, String? responseStatus,
String? search String? search
}) async { }) async {
final result = await apiRequest( try {
server: server, final result = await apiRequest(
method: 'get', server: server,
urlPath: '/querylog?limit=$count${offset != null ? '&offset=$offset' : ''}${olderThan != null ? '&older_than=${olderThan.toIso8601String()}' : ''}${responseStatus != null ? '&response_status=$responseStatus' : ''}${search != null ? '&search=$search' : ''}', method: 'get',
type: 'get_logs' urlPath: '/querylog?limit=$count${offset != null ? '&offset=$offset' : ''}${olderThan != null ? '&older_than=${olderThan.toIso8601String()}' : ''}${responseStatus != null ? '&response_status=$responseStatus' : ''}${search != null ? '&search=$search' : ''}',
); type: 'get_logs'
);
if (result['hasResponse'] == true) {
if (result['statusCode'] == 200) { if (result['hasResponse'] == true) {
return { if (result['statusCode'] == 200) {
'result': 'success', return {
'data': LogsData.fromJson(jsonDecode(result['body'])) 'result': 'success',
}; 'data': LogsData.fromJson(jsonDecode(result['body']))
};
}
else {
return {
'result': 'error',
'log': AppLog(
type: 'get_logs',
dateTime: DateTime.now(),
message: 'error_code_not_expected',
statusCode: result['statusCode'].toString(),
resBody: result['body']
)
};
}
} }
else { else {
return { return result;
'result': 'error',
'log': AppLog(
type: 'get_logs',
dateTime: DateTime.now(),
message: 'error_code_not_expected',
statusCode: result['statusCode'].toString(),
resBody: result['body']
)
};
} }
} } catch (e) {
else { Sentry.captureException(e);
return result; return {
'result': 'error',
'log': AppLog(
type: 'get_logs',
dateTime: DateTime.now(),
message: 'error_code_not_expected',
resBody: e.toString()
)
};
} }
} }
Future getFilteringRules() async { Future getFilteringRules() async {
final result = await apiRequest( try {
server: server, final result = await apiRequest(
method: 'get', server: server,
urlPath: '/filtering/status', method: 'get',
type: 'get_filtering_rules' urlPath: '/filtering/status',
); type: 'get_filtering_rules'
);
if (result['hasResponse'] == true) {
if (result['statusCode'] == 200) { if (result['hasResponse'] == true) {
return { if (result['statusCode'] == 200) {
'result': 'success', return {
'data': FilteringStatus.fromJson(jsonDecode(result['body'])) 'result': 'success',
}; 'data': FilteringStatus.fromJson(jsonDecode(result['body']))
};
}
else {
return {
'result': 'error',
'log': AppLog(
type: 'get_filtering_rules',
dateTime: DateTime.now(),
message: 'error_code_not_expected',
statusCode: result['statusCode'].toString(),
resBody: result['body']
)
};
}
} }
else { else {
return { return result;
'result': 'error',
'log': AppLog(
type: 'get_filtering_rules',
dateTime: DateTime.now(),
message: 'error_code_not_expected',
statusCode: result['statusCode'].toString(),
resBody: result['body']
)
};
} }
} } catch (e) {
else { Sentry.captureException(e);
return result; return {
'result': 'error',
'log': AppLog(
type: 'get_filtering_rules',
dateTime: DateTime.now(),
message: 'error_code_not_expected',
resBody: e.toString()
)
};
} }
} }
@ -899,32 +938,46 @@ class ApiClient {
} }
Future getFiltering() async { Future getFiltering() async {
final result = await Future.wait([ try {
apiRequest( final result = await Future.wait([
urlPath: '/filtering/status', apiRequest(
method: 'get', urlPath: '/filtering/status',
server: server, method: 'get',
type: 'get_filtering_status' server: server,
), type: 'get_filtering_status'
apiRequest( ),
urlPath: '/blocked_services/list', apiRequest(
method: 'get', urlPath: '/blocked_services/list',
server: server, method: 'get',
type: 'get_filtering_status' server: server,
), type: 'get_filtering_status'
]); ),
]);
if (result[0]['hasResponse'] == true && result[0]['hasResponse'] == true) { if (result[0]['hasResponse'] == true && result[0]['hasResponse'] == true) {
if (result[0]['statusCode'] == 200 && result[0]['statusCode'] == 200) { if (result[0]['statusCode'] == 200 && result[0]['statusCode'] == 200) {
return { return {
'result': 'success', 'result': 'success',
'data': Filtering.fromJson({ 'data': Filtering.fromJson({
...jsonDecode(result[0]['body']), ...jsonDecode(result[0]['body']),
"blocked_services": result[1]['body'] != null "blocked_services": result[1]['body'] != null
? jsonDecode(result[1]['body']) ? jsonDecode(result[1]['body'])
: [] : []
}) })
}; };
}
else {
return {
'result': 'error',
'log': AppLog(
type: 'get_filtering_status',
dateTime: DateTime.now(),
message: 'error_code_not_expected',
statusCode: result.map((res) => res['statusCode'] ?? 'null').toString(),
resBody: result.map((res) => res['body'] ?? 'null').toString(),
)
};
}
} }
else { else {
return { return {
@ -932,22 +985,21 @@ class ApiClient {
'log': AppLog( 'log': AppLog(
type: 'get_filtering_status', type: 'get_filtering_status',
dateTime: DateTime.now(), dateTime: DateTime.now(),
message: 'error_code_not_expected', message: 'no_response',
statusCode: result.map((res) => res['statusCode'] ?? 'null').toString(), statusCode: result.map((res) => res['statusCode'] ?? 'null').toString(),
resBody: result.map((res) => res['body'] ?? 'null').toString(), resBody: result.map((res) => res['body'] ?? 'null').toString(),
) )
}; };
} }
} } catch (e) {
else { Sentry.captureException(e);
return { return {
'result': 'error', 'result': 'error',
'log': AppLog( 'log': AppLog(
type: 'get_filtering_status', type: 'get_filtering_status',
dateTime: DateTime.now(), dateTime: DateTime.now(),
message: 'no_response', message: 'no_response',
statusCode: result.map((res) => res['statusCode'] ?? 'null').toString(), resBody: e.toString(),
resBody: result.map((res) => res['body'] ?? 'null').toString(),
) )
}; };
} }