huaweimodem: Add error handling for too many ^DHCP failures

This commit is contained in:
Marcel Holtmann 2010-10-05 16:28:52 +02:00
parent 45a2077e67
commit b41f354a2f
1 changed files with 9 additions and 1 deletions

View File

@ -50,6 +50,7 @@ struct gprs_context_data {
GAtChat *chat;
unsigned int active_context;
unsigned int dhcp_source;
unsigned int dhcp_count;
union {
ofono_gprs_context_cb_t down_cb; /* Down 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 gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
check_dhcp(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);
gcd->dhcp_count++;
gcd->dhcp_source = 0;
return FALSE;
@ -189,6 +195,8 @@ static void at_ndisdup_up_cb(gboolean ok, GAtResult *result,
gcd->up_cb = cb;
gcd->cb_data = cbd->data;
gcd->dhcp_count = 0;
check_dhcp(gc);
return;
}