Hi Denis,
On 05/05/2011 05:42 AM, Denis Kenzior wrote:
Hi Philippe,
On 05/04/2011 12:26 PM, Philippe Nunes wrote:
> ---
> include/gprs.h | 16 ++++
> src/gprs.c | 234 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> 2 files changed, 246 insertions(+), 4 deletions(-)
>
> diff --git a/include/gprs.h b/include/gprs.h
> index 157a6f9..0bb37f7 100644
> --- a/include/gprs.h
> +++ b/include/gprs.h
> @@ -36,6 +36,10 @@ typedef void (*ofono_gprs_status_cb_t)(const struct ofono_error
*error,
>
> typedef void (*ofono_gprs_cb_t)(const struct ofono_error *error, void *data);
>
> +typedef void (*ofono_gprs_add_pdp_context_cb_t)(int error, char *interface,
> + char *ipv4, char *ipv6,
> + void *data);
> +
> struct ofono_gprs_driver {
> const char *name;
> int (*probe)(struct ofono_gprs *gprs, unsigned int vendor,
> @@ -77,7 +81,19 @@ void ofono_gprs_set_cid_range(struct ofono_gprs *gprs,
> unsigned int min, unsigned int max);
> void ofono_gprs_add_context(struct ofono_gprs *gprs,
> struct ofono_gprs_context *gc);
> +unsigned int ofono_gprs_add_pdp_context(struct ofono_gprs *gprs,
> + const char *type,
> + const char *protocol,
> + const char *apn,
> + const char *username,
> + const char *password,
> + const char *host);
> +
> +int ofono_gprs_remove_pdp_context(struct ofono_gprs *gprs, unsigned int id);
>
> +int ofono_gprs_activate_pdp_context(struct ofono_gprs *gprs, unsigned int id,
> + ofono_gprs_add_pdp_context_cb_t cb,
> + void *data);
Why do you want to expose STK activated contexts over D-Bus and try to
deal with the consequences of this decision? Having oFono handle them
completely internally would simplify the design quite a bit, no?
Yes, indeed. I thought that the PDP context created by and for oFono
should be however visible from outside. But I agree,
STK PDP context should not be handled from outside. So, I will remove
the D-BUS interface registration for this kind of context.
Should I also consider to not add this context to the gprs->contexts list?
As you can see, I'm using a callback to notify the STK atom when the
context is activated. Since the context is no more subject to D-BUS
handling, do you think I could map this callback directly as the
callback for the gprs_context driver (id
ofono_stk_activate_pdp_context_cb = ofono_gprs_context_cb_t)?
It implies that I need to setup the interface directly in the STK atom
but so far, I don't know if you agree with the modifications I did in
gprs.c regarding how this interface is updated when this is linked to a
STK PDP context (particularly for the host route).
Perhaps, even if it duplicates some code, you would prefer to see the
STK atom updating the interface directly?
Regards
Philippe.