mirror of git://git.sysmocom.de/ofono
huaweimodem: Add error handling for too many ^DHCP failures
This commit is contained in:
parent
45a2077e67
commit
b41f354a2f
|
@ -50,6 +50,7 @@ struct gprs_context_data {
|
||||||
GAtChat *chat;
|
GAtChat *chat;
|
||||||
unsigned int active_context;
|
unsigned int active_context;
|
||||||
unsigned int dhcp_source;
|
unsigned int dhcp_source;
|
||||||
|
unsigned int dhcp_count;
|
||||||
union {
|
union {
|
||||||
ofono_gprs_context_cb_t down_cb; /* Down callback */
|
ofono_gprs_context_cb_t down_cb; /* Down callback */
|
||||||
ofono_gprs_context_up_cb_t up_cb; /* Up callback */
|
ofono_gprs_context_up_cb_t up_cb; /* Up callback */
|
||||||
|
@ -64,8 +65,13 @@ static gboolean dhcp_poll(gpointer user_data)
|
||||||
struct ofono_gprs_context *gc = user_data;
|
struct ofono_gprs_context *gc = user_data;
|
||||||
struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
|
struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
|
||||||
|
|
||||||
|
if (gcd->dhcp_count > 10)
|
||||||
|
CALLBACK_WITH_FAILURE(gcd->up_cb, NULL, 0, NULL, NULL,
|
||||||
|
NULL, NULL, gcd->cb_data);
|
||||||
|
else
|
||||||
check_dhcp(gc);
|
check_dhcp(gc);
|
||||||
|
|
||||||
|
gcd->dhcp_count++;
|
||||||
gcd->dhcp_source = 0;
|
gcd->dhcp_source = 0;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -189,6 +195,8 @@ static void at_ndisdup_up_cb(gboolean ok, GAtResult *result,
|
||||||
gcd->up_cb = cb;
|
gcd->up_cb = cb;
|
||||||
gcd->cb_data = cbd->data;
|
gcd->cb_data = cbd->data;
|
||||||
|
|
||||||
|
gcd->dhcp_count = 0;
|
||||||
|
|
||||||
check_dhcp(gc);
|
check_dhcp(gc);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue