Exclude unreachable errors from dropped conn count

Network may become temporary unreachable at any time, e.g. while
switching between wifi and mobile
This commit is contained in:
emanuele-f 2022-10-05 22:20:05 +02:00
parent ef2c295660
commit eccacc9ad8
3 changed files with 12 additions and 7 deletions

View File

@ -1128,7 +1128,7 @@ public class CaptureService extends VpnService implements Runnable {
boolean lowMemory = (level != TRIM_MEMORY_UI_HIDDEN) && (level >= TRIM_MEMORY_RUNNING_LOW);
boolean critical = lowMemory && (level >= TRIM_MEMORY_COMPLETE);
Log.w(TAG, "onTrimMemory: " + lvlStr + " - low= " + lowMemory + ", critical=" + critical);
Log.w(TAG, "onTrimMemory: " + lvlStr + " - low=" + lowMemory + ", critical=" + critical);
if(critical && !mLowMemory)
handleLowMemory();

View File

@ -583,11 +583,16 @@ int run_vpn(pcapdroid_t *pd) {
data->vpn.fw_pctx = &pctx;
if(zdtun_forward(zdt, &pkt, conn) != 0) {
char buf[512];
zdtun_conn_status_t status = zdtun_conn_get_status(conn);
log_e("zdtun_forward failed: %s",
zdtun_5tuple2str(&pkt.tuple, buf, sizeof(buf)));
if(status != CONN_STATUS_UNREACHABLE) {
log_e("zdtun_forward failed[%d]: %s", status,
zdtun_5tuple2str(&pkt.tuple, buf, sizeof(buf)));
pd->num_dropped_connections++;
} else
log_w("%s: net/host unreachable", zdtun_5tuple2str(&pkt.tuple, buf, sizeof(buf)));
pd->num_dropped_connections++;
zdtun_conn_close(zdt, conn, CONN_STATUS_ERROR);
goto housekeeping;
} else {

View File

@ -302,7 +302,7 @@ static void check_blacklisted_domain(pcapdroid_t *pd, pd_conn_t *data, const zdt
char buf[512];
get_appname_by_uid(pd, data->uid, appbuf, sizeof(appbuf));
log_w("Blocked domain [%s]: %s [%s]", data->info, zdtun_5tuple2str(tuple, buf, sizeof(buf)), appbuf);
log_i("Blocked domain [%s]: %s [%s]", data->info, zdtun_5tuple2str(tuple, buf, sizeof(buf)), appbuf);
}
}
}
@ -424,7 +424,7 @@ pd_conn_t* pd_new_connection(pcapdroid_t *pd, const zdtun_5tuple_t *tuple, int u
char buf[256];
get_appname_by_uid(pd, data->uid, appbuf, sizeof(appbuf));
log_w("Blocked ip: %s [%s]", zdtun_5tuple2str(tuple, buf, sizeof(buf)), appbuf);
log_i("Blocked ip: %s [%s]", zdtun_5tuple2str(tuple, buf, sizeof(buf)), appbuf);
} else {
data->to_block |= blacklist_match_uid(pd->firewall.bl, data->uid);
if(data->to_block) {
@ -432,7 +432,7 @@ pd_conn_t* pd_new_connection(pcapdroid_t *pd, const zdtun_5tuple_t *tuple, int u
char buf[256];
get_appname_by_uid(pd, data->uid, appbuf, sizeof(appbuf));
log_w("Blocked app: %s [%s]", zdtun_5tuple2str(tuple, buf, sizeof(buf)), appbuf);
log_i("Blocked app: %s [%s]", zdtun_5tuple2str(tuple, buf, sizeof(buf)), appbuf);
}
}