+
+ if (text.startsWith(WPS_EVENT_ENROLLEE_SEEN)) {
+ /* TODO: need to time out this somehow or remove on successful
+ * WPS run, etc. */
+ /*
+ * WPS-ENROLLEE-SEEN 02:00:00:00:01:00
+ * 572cf82f-c957-5653-9b16-b5cfb298abf1 1-0050F204-1 0x80 4 1
+ * [Wireless Client]
+ * (MAC addr, UUID-E, pri dev type, config methods,
+ * dev passwd id, request type, [dev name])
+ */
+ QStringList items = text.split(' ');
+ if (items.size() < 7)
+ return;
+ QString addr = items[1];
+ QString uuid = items[2];
+ QString pri_dev_type = items[3];
+ int config_methods = items[4].toInt(0, 0);
+ int dev_passwd_id = items[5].toInt();
+ QString name;
+
+ int pos = text.indexOf('[');
+ if (pos >= 0) {
+ int pos2 = text.lastIndexOf(']');
+ if (pos2 >= pos) {
+ QStringList items2 =
+ text.mid(pos + 1, pos2 - pos - 1).
+ split('|');
+ name = items2[0];
+ }
+ }
+ if (name.isEmpty())
+ name = addr;
+
+ QStandardItem *item;
+
+ item = find_uuid(uuid);
+ if (item) {
+ QVariant var = item->data(peer_role_config_methods);
+ QVariant var2 = item->data(peer_role_dev_passwd_id);
+ if ((var.isValid() && config_methods != var.toInt()) ||
+ (var2.isValid() && dev_passwd_id != var2.toInt()))
+ remove_enrollee_uuid(uuid);
+ else
+ return;
+ }
+
+ item = new QStandardItem(*laptop_icon, name);
+ if (item) {
+ item->setData(uuid, peer_role_uuid);
+ item->setData(addr, peer_role_address);
+ item->setData(PEER_TYPE_WPS_ENROLLEE,
+ peer_role_type);
+ item->setToolTip(ItemType(PEER_TYPE_WPS_ENROLLEE));
+ item->setData(items.join(QString("\n")),
+ peer_role_details);
+ item->setData(pri_dev_type, peer_role_pri_dev_type);
+ item->setData(config_methods,
+ peer_role_config_methods);
+ item->setData(dev_passwd_id, peer_role_dev_passwd_id);
+ model.appendRow(item);
+ }
+
+ return;
+ }