1
0
Fork 0
mirror of https://github.com/albfan/miraclecast.git synced 2025-03-09 23:38:56 +00:00

Separate go_neg_request and provision_discovery

Signed-off-by: Andrey Gusakov <andrey.gusakov@cogentembedded.com>
This commit is contained in:
Andrey Gusakov 2014-09-20 09:15:02 +04:00 committed by albfan
parent 563a415a24
commit 0d54cd4e0b
7 changed files with 75 additions and 1 deletions

View file

@ -308,6 +308,7 @@ static const sd_bus_vtable peer_dbus_vtable[] = {
0,
SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_SIGNAL("ProvisionDiscovery", "ss", 0),
SD_BUS_SIGNAL("GoNegRequest", "ss", 0),
SD_BUS_VTABLE_END
};
@ -408,6 +409,31 @@ void peer_dbus_provision_discovery(struct peer *p,
log_vERR(r);
}
void peer_dbus_go_neg_request(struct peer *p,
const char *type,
const char *pin)
{
_shl_free_ char *node = NULL;
int r;
if (!type)
return;
if (!pin)
pin = "";
node = peer_dbus_get_path(p);
if (!node)
return;
r = sd_bus_emit_signal(p->l->m->bus,
node,
"org.freedesktop.miracle.wifi.Peer",
"GoNegRequest",
"ss", type, pin);
if (r < 0)
log_vERR(r);
}
void peer_dbus_formation_failure(struct peer *p, const char *reason)
{
_shl_free_ char *node = NULL;

View file

@ -200,6 +200,16 @@ void peer_supplicant_provision_discovery(struct peer *p,
peer_dbus_provision_discovery(p, prov, pin);
}
void peer_supplicant_go_neg_request(struct peer *p,
const char *prov,
const char *pin)
{
if (!p || !p->public)
return;
peer_dbus_go_neg_request(p, prov, pin);
}
void peer_supplicant_formation_failure(struct peer *p,
const char *reason)
{

View file

@ -1008,6 +1008,8 @@ static void supplicant_event_p2p_prov_disc_pbc_req(struct supplicant *s,
sp->prov = t;
free(sp->pin);
sp->pin = NULL;
peer_supplicant_provision_discovery(sp->p, sp->prov, sp->pin);
}
static void supplicant_event_p2p_go_neg_request(struct supplicant *s,
@ -1048,7 +1050,7 @@ static void supplicant_event_p2p_go_neg_request(struct supplicant *s,
if (!sp->g) {
log_debug("GO Negotiation Request from %s", mac);
peer_supplicant_provision_discovery(sp->p, sp->prov, sp->pin);
peer_supplicant_go_neg_request(sp->p, sp->prov, sp->pin);
} else {
log_debug("GO Negotiation Request from already connected peer %s",
mac);
@ -1098,6 +1100,8 @@ static void supplicant_event_p2p_prov_disc_show_pin(struct supplicant *s,
sp->prov = t;
free(sp->pin);
sp->pin = u;
peer_supplicant_provision_discovery(sp->p, sp->prov, sp->pin);
}
static void supplicant_event_p2p_prov_disc_enter_pin(struct supplicant *s,
@ -1130,6 +1134,8 @@ static void supplicant_event_p2p_prov_disc_enter_pin(struct supplicant *s,
sp->prov = t;
free(sp->pin);
sp->pin = NULL;
peer_supplicant_provision_discovery(sp->p, sp->prov, sp->pin);
}
static void supplicant_event_p2p_go_neg_success(struct supplicant *s,

View file

@ -101,6 +101,9 @@ void peer_supplicant_wfd_subelements_changed(struct peer *p);
void peer_supplicant_provision_discovery(struct peer *p,
const char *prov,
const char *pin);
void peer_supplicant_go_neg_request(struct peer *p,
const char *prov,
const char *pin);
void peer_supplicant_formation_failure(struct peer *p, const char *reason);
void peer_supplicant_connected_changed(struct peer *p, bool connected);
@ -109,6 +112,9 @@ void peer_dbus_properties_changed(struct peer *p, const char *prop, ...);
void peer_dbus_provision_discovery(struct peer *p,
const char *prov,
const char *pin);
void peer_dbus_go_neg_request(struct peer *p,
const char *type,
const char *pin);
void peer_dbus_formation_failure(struct peer *p, const char *reason);
void peer_dbus_added(struct peer *p);
void peer_dbus_removed(struct peer *p);