linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] Simplify eir_parse function
@ 2011-10-19 13:32 Frédéric Danis
  2011-10-19 13:32 ` [PATCH 2/2] add unit/test-eir to .gitignore Frédéric Danis
  2011-10-19 14:14 ` [PATCH 1/2] Simplify eir_parse function Luiz Augusto von Dentz
  0 siblings, 2 replies; 3+ messages in thread
From: Frédéric Danis @ 2011-10-19 13:32 UTC (permalink / raw)
  To: linux-bluetooth

---
 src/eir.c |  135 ++++++++++++++++++++++++++++---------------------------------
 1 files changed, 62 insertions(+), 73 deletions(-)

diff --git a/src/eir.c b/src/eir.c
index e82d30b..bf6b4a4 100644
--- a/src/eir.c
+++ b/src/eir.c
@@ -54,23 +54,17 @@
 void eir_data_free(struct eir_data *eir)
 {
 	g_slist_free_full(eir->services, g_free);
+	eir->services = NULL;
 	g_free(eir->name);
+	eir->name = NULL;
 }
 
 int eir_parse(struct eir_data *eir, uint8_t *eir_data)
 {
 	uint16_t len = 0;
-	size_t total;
-	size_t uuid16_count = 0;
-	size_t uuid32_count = 0;
-	size_t uuid128_count = 0;
-	uint8_t *uuid16 = NULL;
-	uint8_t *uuid32 = NULL;
-	uint8_t *uuid128 = NULL;
+	uint8_t *uuid_ptr = NULL;
 	uuid_t service;
 	char *uuid_str;
-	const char *name = NULL;
-	size_t name_len;
 	unsigned int i;
 
 	eir->flags = -1;
@@ -86,92 +80,87 @@ int eir_parse(struct eir_data *eir, uint8_t *eir_data)
 		if (field_len == 0)
 			break;
 
+		len += field_len + 1;
+
+		/* Bail out if got incorrect length */
+		if (len > HCI_MAX_EIR_LENGTH) {
+			eir_data_free(eir);
+			return -EINVAL;
+		}
+
 		switch (eir_data[1]) {
 		case EIR_UUID16_SOME:
 		case EIR_UUID16_ALL:
-			uuid16_count = field_len / 2;
-			uuid16 = &eir_data[2];
+			uuid_ptr = &eir_data[2];
+			service.type = SDP_UUID16;
+			for (i = 0; i < field_len / 2; i++) {
+				uint16_t val16 = uuid_ptr[1];
+
+				val16 = (val16 << 8) + uuid_ptr[0];
+				service.value.uuid16 = val16;
+				uuid_str = bt_uuid2string(&service);
+				eir->services = g_slist_append(eir->services,
+								uuid_str);
+				uuid_ptr += 2;
+			}
 			break;
+
 		case EIR_UUID32_SOME:
 		case EIR_UUID32_ALL:
-			uuid32_count = field_len / 4;
-			uuid32 = &eir_data[2];
+			uuid_ptr = &eir_data[2];
+			service.type = SDP_UUID32;
+			for (i = 0; i < field_len / 4; i++) {
+				uint32_t val32 = uuid_ptr[3];
+				int k;
+
+				for (k = 2; k >= 0; k--)
+					val32 = (val32 << 8) + uuid_ptr[k];
+
+				service.value.uuid32 = val32;
+				uuid_str = bt_uuid2string(&service);
+				eir->services = g_slist_append(eir->services,
+								uuid_str);
+				uuid_ptr += 4;
+			}
 			break;
+
 		case EIR_UUID128_SOME:
 		case EIR_UUID128_ALL:
-			uuid128_count = field_len / 16;
-			uuid128 = &eir_data[2];
+			uuid_ptr = &eir_data[2];
+			service.type = SDP_UUID128;
+			for (i = 0; i < field_len / 16; i++) {
+				int k;
+
+				for (k = 0; k < 16; k++)
+					service.value.uuid128.data[k] =
+							uuid_ptr[16 - k - 1];
+
+				uuid_str = bt_uuid2string(&service);
+				eir->services = g_slist_append(eir->services,
+								uuid_str);
+				uuid_ptr += 16;
+			}
 			break;
+
 		case EIR_FLAGS:
 			eir->flags = eir_data[2];
 			break;
+
 		case EIR_NAME_SHORT:
 		case EIR_NAME_COMPLETE:
-			name = (const char *) &eir_data[2];
-			name_len = field_len - 1;
+			if (g_utf8_validate((char *) &eir_data[2],
+							field_len - 1, NULL))
+				eir->name = g_strndup((char *) &eir_data[2],
+								field_len - 1);
+			else
+				eir->name = g_strdup("");
 			eir->name_complete = eir_data[1] == EIR_NAME_COMPLETE;
 			break;
 		}
 
-		len += field_len + 1;
 		eir_data += field_len + 1;
 	}
 
-	/* Bail out if got incorrect length */
-	if (len > HCI_MAX_EIR_LENGTH)
-		return -EINVAL;
-
-	if (name != NULL) {
-		if (g_utf8_validate(name, name_len, NULL))
-			eir->name = g_strndup(name, name_len);
-		else
-			eir->name = g_strdup("");
-	}
-
-	total = uuid16_count + uuid32_count + uuid128_count;
-
-	/* No UUIDs were parsed, so skip code below */
-	if (!total)
-		return 0;
-
-	/* Generate uuids in SDP format (EIR data is Little Endian) */
-	service.type = SDP_UUID16;
-	for (i = 0; i < uuid16_count; i++) {
-		uint16_t val16 = uuid16[1];
-
-		val16 = (val16 << 8) + uuid16[0];
-		service.value.uuid16 = val16;
-		uuid_str = bt_uuid2string(&service);
-		eir->services = g_slist_append(eir->services, uuid_str);
-		uuid16 += 2;
-	}
-
-	service.type = SDP_UUID32;
-	for (i = uuid16_count; i < uuid32_count + uuid16_count; i++) {
-		uint32_t val32 = uuid32[3];
-		int k;
-
-		for (k = 2; k >= 0; k--)
-			val32 = (val32 << 8) + uuid32[k];
-
-		service.value.uuid32 = val32;
-		uuid_str = bt_uuid2string(&service);
-		eir->services = g_slist_append(eir->services, uuid_str);
-		uuid32 += 4;
-	}
-
-	service.type = SDP_UUID128;
-	for (i = uuid32_count + uuid16_count; i < total; i++) {
-		int k;
-
-		for (k = 0; k < 16; k++)
-			service.value.uuid128.data[k] = uuid128[16 - k - 1];
-
-		uuid_str = bt_uuid2string(&service);
-		eir->services = g_slist_append(eir->services, uuid_str);
-		uuid128 += 16;
-	}
-
 	return 0;
 }
 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] add unit/test-eir to .gitignore
  2011-10-19 13:32 [PATCH 1/2] Simplify eir_parse function Frédéric Danis
@ 2011-10-19 13:32 ` Frédéric Danis
  2011-10-19 14:14 ` [PATCH 1/2] Simplify eir_parse function Luiz Augusto von Dentz
  1 sibling, 0 replies; 3+ messages in thread
From: Frédéric Danis @ 2011-10-19 13:32 UTC (permalink / raw)
  To: linux-bluetooth

---
 .gitignore |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
index c2fa9e9..4083b7c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -84,6 +84,7 @@ test/mpris-player
 compat/dund
 compat/hidd
 compat/pand
+unit/test-eir
 
 doc/*.bak
 doc/*.stamp
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] Simplify eir_parse function
  2011-10-19 13:32 [PATCH 1/2] Simplify eir_parse function Frédéric Danis
  2011-10-19 13:32 ` [PATCH 2/2] add unit/test-eir to .gitignore Frédéric Danis
@ 2011-10-19 14:14 ` Luiz Augusto von Dentz
  1 sibling, 0 replies; 3+ messages in thread
From: Luiz Augusto von Dentz @ 2011-10-19 14:14 UTC (permalink / raw)
  To: Frédéric Danis; +Cc: linux-bluetooth

SGkgRnLpZOlyaWMsCgoyMDExLzEwLzE5IEZy6WTpcmljIERhbmlzIDxmcmVkZXJpYy5kYW5pc0Bs
aW51eC5pbnRlbC5jb20+Ogo+IC0tLQo+IKBzcmMvZWlyLmMgfCCgMTM1ICsrKysrKysrKysrKysr
KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiCgMSBmaWxl
cyBjaGFuZ2VkLCA2MiBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1n
aXQgYS9zcmMvZWlyLmMgYi9zcmMvZWlyLmMKPiBpbmRleCBlODJkMzBiLi5iZjZiNGE0IDEwMDY0
NAo+IC0tLSBhL3NyYy9laXIuYwo+ICsrKyBiL3NyYy9laXIuYwo+IEBAIC01NCwyMyArNTQsMTcg
QEAKPiCgdm9pZCBlaXJfZGF0YV9mcmVlKHN0cnVjdCBlaXJfZGF0YSAqZWlyKQo+IKB7Cj4goCCg
IKAgoGdfc2xpc3RfZnJlZV9mdWxsKGVpci0+c2VydmljZXMsIGdfZnJlZSk7Cj4gKyCgIKAgoCBl
aXItPnNlcnZpY2VzID0gTlVMTDsKPiCgIKAgoCCgZ19mcmVlKGVpci0+bmFtZSk7Cj4gKyCgIKAg
oCBlaXItPm5hbWUgPSBOVUxMOwo+IKB9Cj4KPiCgaW50IGVpcl9wYXJzZShzdHJ1Y3QgZWlyX2Rh
dGEgKmVpciwgdWludDhfdCAqZWlyX2RhdGEpCj4goHsKPiCgIKAgoCCgdWludDE2X3QgbGVuID0g
MDsKPiAtIKAgoCCgIHNpemVfdCB0b3RhbDsKPiAtIKAgoCCgIHNpemVfdCB1dWlkMTZfY291bnQg
PSAwOwo+IC0goCCgIKAgc2l6ZV90IHV1aWQzMl9jb3VudCA9IDA7Cj4gLSCgIKAgoCBzaXplX3Qg
dXVpZDEyOF9jb3VudCA9IDA7Cj4gLSCgIKAgoCB1aW50OF90ICp1dWlkMTYgPSBOVUxMOwo+IC0g
oCCgIKAgdWludDhfdCAqdXVpZDMyID0gTlVMTDsKPiAtIKAgoCCgIHVpbnQ4X3QgKnV1aWQxMjgg
PSBOVUxMOwo+ICsgoCCgIKAgdWludDhfdCAqdXVpZF9wdHIgPSBOVUxMOwo+IKAgoCCgIKB1dWlk
X3Qgc2VydmljZTsKPiCgIKAgoCCgY2hhciAqdXVpZF9zdHI7Cj4gLSCgIKAgoCBjb25zdCBjaGFy
ICpuYW1lID0gTlVMTDsKPiAtIKAgoCCgIHNpemVfdCBuYW1lX2xlbjsKPiCgIKAgoCCgdW5zaWdu
ZWQgaW50IGk7Cj4KPiCgIKAgoCCgZWlyLT5mbGFncyA9IC0xOwo+IEBAIC04Niw5MiArODAsODcg
QEAgaW50IGVpcl9wYXJzZShzdHJ1Y3QgZWlyX2RhdGEgKmVpciwgdWludDhfdCAqZWlyX2RhdGEp
Cj4goCCgIKAgoCCgIKAgoCCgaWYgKGZpZWxkX2xlbiA9PSAwKQo+IKAgoCCgIKAgoCCgIKAgoCCg
IKAgoCCgYnJlYWs7Cj4KPiArIKAgoCCgIKAgoCCgIKAgbGVuICs9IGZpZWxkX2xlbiArIDE7Cj4g
Kwo+ICsgoCCgIKAgoCCgIKAgoCAvKiBCYWlsIG91dCBpZiBnb3QgaW5jb3JyZWN0IGxlbmd0aCAq
Lwo+ICsgoCCgIKAgoCCgIKAgoCBpZiAobGVuID4gSENJX01BWF9FSVJfTEVOR1RIKSB7Cj4gKyCg
IKAgoCCgIKAgoCCgIKAgoCCgIKAgZWlyX2RhdGFfZnJlZShlaXIpOwo+ICsgoCCgIKAgoCCgIKAg
oCCgIKAgoCCgIHJldHVybiAtRUlOVkFMOwo+ICsgoCCgIKAgoCCgIKAgoCB9Cj4gKwo+IKAgoCCg
IKAgoCCgIKAgoHN3aXRjaCAoZWlyX2RhdGFbMV0pIHsKPiCgIKAgoCCgIKAgoCCgIKBjYXNlIEVJ
Ul9VVUlEMTZfU09NRToKPiCgIKAgoCCgIKAgoCCgIKBjYXNlIEVJUl9VVUlEMTZfQUxMOgo+IC0g
oCCgIKAgoCCgIKAgoCCgIKAgoCCgIHV1aWQxNl9jb3VudCA9IGZpZWxkX2xlbiAvIDI7Cj4gLSCg
IKAgoCCgIKAgoCCgIKAgoCCgIKAgdXVpZDE2ID0gJmVpcl9kYXRhWzJdOwo+ICsgoCCgIKAgoCCg
IKAgoCCgIKAgoCCgIHV1aWRfcHRyID0gJmVpcl9kYXRhWzJdOwo+ICsgoCCgIKAgoCCgIKAgoCCg
IKAgoCCgIHNlcnZpY2UudHlwZSA9IFNEUF9VVUlEMTY7Cj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCg
IKAgZm9yIChpID0gMDsgaSA8IGZpZWxkX2xlbiAvIDI7IGkrKykgewo+ICsgoCCgIKAgoCCgIKAg
oCCgIKAgoCCgIKAgoCCgIKAgdWludDE2X3QgdmFsMTYgPSB1dWlkX3B0clsxXTsKPiArCj4gKyCg
IKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCB2YWwxNiA9ICh2YWwxNiA8PCA4KSArIHV1aWRf
cHRyWzBdOwo+ICsgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgc2VydmljZS52YWx1ZS51
dWlkMTYgPSB2YWwxNjsKPiArIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIHV1aWRfc3Ry
ID0gYnRfdXVpZDJzdHJpbmcoJnNlcnZpY2UpOwo+ICsgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAg
oCCgIKAgZWlyLT5zZXJ2aWNlcyA9IGdfc2xpc3RfYXBwZW5kKGVpci0+c2VydmljZXMsCj4gKyCg
IKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAg
oCCgIHV1aWRfc3RyKTsKPiArIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIHV1aWRfcHRy
ICs9IDI7Cj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgfQo+IKAgoCCgIKAgoCCgIKAgoCCgIKAg
oCCgYnJlYWs7Cj4gKwo+IKAgoCCgIKAgoCCgIKAgoGNhc2UgRUlSX1VVSUQzMl9TT01FOgo+IKAg
oCCgIKAgoCCgIKAgoGNhc2UgRUlSX1VVSUQzMl9BTEw6Cj4gLSCgIKAgoCCgIKAgoCCgIKAgoCCg
IKAgdXVpZDMyX2NvdW50ID0gZmllbGRfbGVuIC8gNDsKPiAtIKAgoCCgIKAgoCCgIKAgoCCgIKAg
oCB1dWlkMzIgPSAmZWlyX2RhdGFbMl07Cj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgdXVpZF9w
dHIgPSAmZWlyX2RhdGFbMl07Cj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgc2VydmljZS50eXBl
ID0gU0RQX1VVSUQzMjsKPiArIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCBmb3IgKGkgPSAwOyBpIDwg
ZmllbGRfbGVuIC8gNDsgaSsrKSB7Cj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCB1
aW50MzJfdCB2YWwzMiA9IHV1aWRfcHRyWzNdOwo+ICsgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAg
oCCgIKAgaW50IGs7Cj4gKwo+ICsgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgZm9yIChr
ID0gMjsgayA+PSAwOyBrLS0pCj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAg
oCCgIHZhbDMyID0gKHZhbDMyIDw8IDgpICsgdXVpZF9wdHJba107Cj4gKwo+ICsgoCCgIKAgoCCg
IKAgoCCgIKAgoCCgIKAgoCCgIKAgc2VydmljZS52YWx1ZS51dWlkMzIgPSB2YWwzMjsKPiArIKAg
oCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIHV1aWRfc3RyID0gYnRfdXVpZDJzdHJpbmcoJnNl
cnZpY2UpOwo+ICsgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgZWlyLT5zZXJ2aWNlcyA9
IGdfc2xpc3RfYXBwZW5kKGVpci0+c2VydmljZXMsCj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAg
oCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIHV1aWRfc3RyKTsKPiArIKAg
oCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIHV1aWRfcHRyICs9IDQ7Cj4gKyCgIKAgoCCgIKAg
oCCgIKAgoCCgIKAgfQo+IKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgYnJlYWs7Cj4gKwo+IKAgoCCg
IKAgoCCgIKAgoGNhc2UgRUlSX1VVSUQxMjhfU09NRToKPiCgIKAgoCCgIKAgoCCgIKBjYXNlIEVJ
Ul9VVUlEMTI4X0FMTDoKPiAtIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCB1dWlkMTI4X2NvdW50ID0g
ZmllbGRfbGVuIC8gMTY7Cj4gLSCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgdXVpZDEyOCA9ICZlaXJf
ZGF0YVsyXTsKPiArIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCB1dWlkX3B0ciA9ICZlaXJfZGF0YVsy
XTsKPiArIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCBzZXJ2aWNlLnR5cGUgPSBTRFBfVVVJRDEyODsK
PiArIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCBmb3IgKGkgPSAwOyBpIDwgZmllbGRfbGVuIC8gMTY7
IGkrKykgewo+ICsgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgaW50IGs7Cj4gKwo+ICsg
oCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgZm9yIChrID0gMDsgayA8IDE2OyBrKyspCj4g
KyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIHNlcnZpY2UudmFsdWUudXVp
ZDEyOC5kYXRhW2tdID0KPiArIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAg
oCCgIKAgoCCgIKAgoCCgIHV1aWRfcHRyWzE2IC0gayAtIDFdOwo+ICsKPiArIKAgoCCgIKAgoCCg
IKAgoCCgIKAgoCCgIKAgoCCgIHV1aWRfc3RyID0gYnRfdXVpZDJzdHJpbmcoJnNlcnZpY2UpOwo+
ICsgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgZWlyLT5zZXJ2aWNlcyA9IGdfc2xpc3Rf
YXBwZW5kKGVpci0+c2VydmljZXMsCj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCg
IKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIHV1aWRfc3RyKTsKPiArIKAgoCCgIKAgoCCg
IKAgoCCgIKAgoCCgIKAgoCCgIHV1aWRfcHRyICs9IDE2Owo+ICsgoCCgIKAgoCCgIKAgoCCgIKAg
oCCgIH0KPiCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoGJyZWFrOwo+ICsKPiCgIKAgoCCgIKAgoCCg
IKBjYXNlIEVJUl9GTEFHUzoKPiCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoGVpci0+ZmxhZ3MgPSBl
aXJfZGF0YVsyXTsKPiCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoGJyZWFrOwo+ICsKPiCgIKAgoCCg
IKAgoCCgIKBjYXNlIEVJUl9OQU1FX1NIT1JUOgo+IKAgoCCgIKAgoCCgIKAgoGNhc2UgRUlSX05B
TUVfQ09NUExFVEU6Cj4gLSCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgbmFtZSA9IChjb25zdCBjaGFy
ICopICZlaXJfZGF0YVsyXTsKPiAtIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCBuYW1lX2xlbiA9IGZp
ZWxkX2xlbiAtIDE7Cj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgaWYgKGdfdXRmOF92YWxpZGF0
ZSgoY2hhciAqKSAmZWlyX2RhdGFbMl0sCj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAg
oCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCBmaWVsZF9sZW4gLSAxLCBOVUxMKSkKPiArIKAgoCCg
IKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIGVpci0+bmFtZSA9IGdfc3RybmR1cCgoY2hhciAqKSAm
ZWlyX2RhdGFbMl0sCj4gKyCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAg
oCCgIKAgoCCgIKAgoCCgIKAgoCCgIGZpZWxkX2xlbiAtIDEpOwo+ICsgoCCgIKAgoCCgIKAgoCCg
IKAgoCCgIGVsc2UKPiArIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCCgIGVpci0+bmFtZSA9
IGdfc3RyZHVwKCIiKTsKPiCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgoGVpci0+bmFtZV9jb21wbGV0
ZSA9IGVpcl9kYXRhWzFdID09IEVJUl9OQU1FX0NPTVBMRVRFOwo+IKAgoCCgIKAgoCCgIKAgoCCg
IKAgoCCgYnJlYWs7Cj4goCCgIKAgoCCgIKAgoCCgfQo+Cj4gLSCgIKAgoCCgIKAgoCCgIGxlbiAr
PSBmaWVsZF9sZW4gKyAxOwo+IKAgoCCgIKAgoCCgIKAgoGVpcl9kYXRhICs9IGZpZWxkX2xlbiAr
IDE7Cj4goCCgIKAgoH0KPgo+IC0goCCgIKAgLyogQmFpbCBvdXQgaWYgZ290IGluY29ycmVjdCBs
ZW5ndGggKi8KPiAtIKAgoCCgIGlmIChsZW4gPiBIQ0lfTUFYX0VJUl9MRU5HVEgpCj4gLSCgIKAg
oCCgIKAgoCCgIHJldHVybiAtRUlOVkFMOwo+IC0KPiAtIKAgoCCgIGlmIChuYW1lICE9IE5VTEwp
IHsKPiAtIKAgoCCgIKAgoCCgIKAgaWYgKGdfdXRmOF92YWxpZGF0ZShuYW1lLCBuYW1lX2xlbiwg
TlVMTCkpCj4gLSCgIKAgoCCgIKAgoCCgIKAgoCCgIKAgZWlyLT5uYW1lID0gZ19zdHJuZHVwKG5h
bWUsIG5hbWVfbGVuKTsKPiAtIKAgoCCgIKAgoCCgIKAgZWxzZQo+IC0goCCgIKAgoCCgIKAgoCCg
IKAgoCCgIGVpci0+bmFtZSA9IGdfc3RyZHVwKCIiKTsKPiAtIKAgoCCgIH0KPiAtCj4gLSCgIKAg
oCB0b3RhbCA9IHV1aWQxNl9jb3VudCArIHV1aWQzMl9jb3VudCArIHV1aWQxMjhfY291bnQ7Cj4g
LQo+IC0goCCgIKAgLyogTm8gVVVJRHMgd2VyZSBwYXJzZWQsIHNvIHNraXAgY29kZSBiZWxvdyAq
Lwo+IC0goCCgIKAgaWYgKCF0b3RhbCkKPiAtIKAgoCCgIKAgoCCgIKAgcmV0dXJuIDA7Cj4gLQo+
IC0goCCgIKAgLyogR2VuZXJhdGUgdXVpZHMgaW4gU0RQIGZvcm1hdCAoRUlSIGRhdGEgaXMgTGl0
dGxlIEVuZGlhbikgKi8KPiAtIKAgoCCgIHNlcnZpY2UudHlwZSA9IFNEUF9VVUlEMTY7Cj4gLSCg
IKAgoCBmb3IgKGkgPSAwOyBpIDwgdXVpZDE2X2NvdW50OyBpKyspIHsKPiAtIKAgoCCgIKAgoCCg
IKAgdWludDE2X3QgdmFsMTYgPSB1dWlkMTZbMV07Cj4gLQo+IC0goCCgIKAgoCCgIKAgoCB2YWwx
NiA9ICh2YWwxNiA8PCA4KSArIHV1aWQxNlswXTsKPiAtIKAgoCCgIKAgoCCgIKAgc2VydmljZS52
YWx1ZS51dWlkMTYgPSB2YWwxNjsKPiAtIKAgoCCgIKAgoCCgIKAgdXVpZF9zdHIgPSBidF91dWlk
MnN0cmluZygmc2VydmljZSk7Cj4gLSCgIKAgoCCgIKAgoCCgIGVpci0+c2VydmljZXMgPSBnX3Ns
aXN0X2FwcGVuZChlaXItPnNlcnZpY2VzLCB1dWlkX3N0cik7Cj4gLSCgIKAgoCCgIKAgoCCgIHV1
aWQxNiArPSAyOwo+IC0goCCgIKAgfQo+IC0KPiAtIKAgoCCgIHNlcnZpY2UudHlwZSA9IFNEUF9V
VUlEMzI7Cj4gLSCgIKAgoCBmb3IgKGkgPSB1dWlkMTZfY291bnQ7IGkgPCB1dWlkMzJfY291bnQg
KyB1dWlkMTZfY291bnQ7IGkrKykgewo+IC0goCCgIKAgoCCgIKAgoCB1aW50MzJfdCB2YWwzMiA9
IHV1aWQzMlszXTsKPiAtIKAgoCCgIKAgoCCgIKAgaW50IGs7Cj4gLQo+IC0goCCgIKAgoCCgIKAg
oCBmb3IgKGsgPSAyOyBrID49IDA7IGstLSkKPiAtIKAgoCCgIKAgoCCgIKAgoCCgIKAgoCB2YWwz
MiA9ICh2YWwzMiA8PCA4KSArIHV1aWQzMltrXTsKPiAtCj4gLSCgIKAgoCCgIKAgoCCgIHNlcnZp
Y2UudmFsdWUudXVpZDMyID0gdmFsMzI7Cj4gLSCgIKAgoCCgIKAgoCCgIHV1aWRfc3RyID0gYnRf
dXVpZDJzdHJpbmcoJnNlcnZpY2UpOwo+IC0goCCgIKAgoCCgIKAgoCBlaXItPnNlcnZpY2VzID0g
Z19zbGlzdF9hcHBlbmQoZWlyLT5zZXJ2aWNlcywgdXVpZF9zdHIpOwo+IC0goCCgIKAgoCCgIKAg
oCB1dWlkMzIgKz0gNDsKPiAtIKAgoCCgIH0KPiAtCj4gLSCgIKAgoCBzZXJ2aWNlLnR5cGUgPSBT
RFBfVVVJRDEyODsKPiAtIKAgoCCgIGZvciAoaSA9IHV1aWQzMl9jb3VudCArIHV1aWQxNl9jb3Vu
dDsgaSA8IHRvdGFsOyBpKyspIHsKPiAtIKAgoCCgIKAgoCCgIKAgaW50IGs7Cj4gLQo+IC0goCCg
IKAgoCCgIKAgoCBmb3IgKGsgPSAwOyBrIDwgMTY7IGsrKykKPiAtIKAgoCCgIKAgoCCgIKAgoCCg
IKAgoCBzZXJ2aWNlLnZhbHVlLnV1aWQxMjguZGF0YVtrXSA9IHV1aWQxMjhbMTYgLSBrIC0gMV07
Cj4gLQo+IC0goCCgIKAgoCCgIKAgoCB1dWlkX3N0ciA9IGJ0X3V1aWQyc3RyaW5nKCZzZXJ2aWNl
KTsKPiAtIKAgoCCgIKAgoCCgIKAgZWlyLT5zZXJ2aWNlcyA9IGdfc2xpc3RfYXBwZW5kKGVpci0+
c2VydmljZXMsIHV1aWRfc3RyKTsKPiAtIKAgoCCgIKAgoCCgIKAgdXVpZDEyOCArPSAxNjsKPiAt
IKAgoCCgIH0KPiAtCj4goCCgIKAgoHJldHVybiAwOwo+IKB9Cj4KPiAtLQo+IDEuNy4xCj4KCllv
dSBjYW4gZ28gb25lIHN0ZXAgZnVydGhlciBhbmQgc3BsaXQgdGhlIHBhcnNpbmcgaW4gc2VwYXJh
dGUKZnVuY3Rpb25zIGZvciBlYWNoIGRhdGEgdHlwZS4KCi0tIApMdWl6IEF1Z3VzdG8gdm9uIERl
bnR6Cg==

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-10-19 14:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-19 13:32 [PATCH 1/2] Simplify eir_parse function Frédéric Danis
2011-10-19 13:32 ` [PATCH 2/2] add unit/test-eir to .gitignore Frédéric Danis
2011-10-19 14:14 ` [PATCH 1/2] Simplify eir_parse function Luiz Augusto von Dentz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).