Diff between f4c7874f790513f5703ef58aaf28ede3391f1bf1 and 8916fbd7c3bd837bc84d3fb8bb2f3cb4bf8fe087

Changed Files

File Additions Deletions Status
tools/parser/obex.c +0 -132 modified
tools/parser/parser.c +133 -0 modified
tools/parser/parser.h +9 -1 modified
tools/parser/rfcomm.c +1 -1 modified
tools/parser/sdp.c +7 -7 modified

Full Patch

diff --git a/tools/parser/obex.c b/tools/parser/obex.c
index 3381442..0a73a79 100644
--- a/tools/parser/obex.c
+++ b/tools/parser/obex.c
@@ -36,133 +36,6 @@
 
 #include "parser.h"
 
-#define TABLE_SIZE 20
-
-static struct {
-	uint16_t handle;
-	uint8_t dlci;
-	uint8_t opcode;
-	uint8_t status;
-	struct frame frm;
-} table[TABLE_SIZE];
-
-static void del_frame(uint16_t handle, uint8_t dlci)
-{
-	int i;
-
-	for (i = 0; i < TABLE_SIZE; i++)
-		if (table[i].handle == handle && table[i].dlci == dlci) {
-			table[i].handle = 0;
-			table[i].dlci   = 0;
-			table[i].opcode = 0;
-			table[i].status = 0;
-			if (table[i].frm.data)
-				free(table[i].frm.data);
-			memset(&table[i].frm, 0, sizeof(struct frame));
-			break;
-		}
-}
-
-static struct frame *add_frame(struct frame *frm)
-{
-	struct frame *fr;
-	void *data;
-	int i, pos = -1;
-
-	for (i = 0; i < TABLE_SIZE; i++) {
-		if (table[i].handle == frm->handle && table[i].dlci == frm->dlci) {
-			pos = i;
-			break;
-		}
-
-		if (pos < 0 && !table[i].handle && !table[i].dlci)
-			pos = i;
-	}
-
-	if (pos < 0)
-		return frm;
-
-	table[pos].handle = frm->handle;
-	table[pos].dlci   = frm->dlci;
-	fr = &table[pos].frm;
-
-	data = malloc(fr->len + frm->len);
-	if (!data) {
-		perror("Can't allocate OBEX stream buffer");
-		del_frame(frm->handle, frm->dlci);
-		return frm;
-	}
-
-	if (fr->len > 0)
-		memcpy(data, fr->ptr, fr->len);
-
-	if (frm->len > 0)
-		memcpy(data + fr->len, frm->ptr, frm->len);
-
-	if (fr->data)
-		free(fr->data);
-
-	fr->data     = data;
-	fr->data_len = fr->len + frm->len;
-	fr->len      = fr->data_len;
-	fr->ptr      = fr->data;
-	fr->dev_id   = frm->dev_id;
-	fr->in       = frm->in;
-	fr->ts       = frm->ts;
-	fr->handle   = frm->handle;
-	fr->cid      = frm->cid;
-	fr->num      = frm->num;
-	fr->dlci     = frm->dlci;
-	fr->channel  = frm->channel;
-	fr->audio_fd = frm->audio_fd;
-
-	return fr;
-}
-
-static uint8_t get_opcode(uint16_t handle, uint8_t dlci)
-{
-	int i;
-
-	for (i = 0; i < TABLE_SIZE; i++)
-		if (table[i].handle == handle && table[i].dlci == dlci)
-			return table[i].opcode;
-
-	return 0x00;
-}
-
-static void set_opcode(uint16_t handle, uint8_t dlci, uint8_t opcode)
-{
-	int i;
-
-	for (i = 0; i < TABLE_SIZE; i++)
-		if (table[i].handle == handle && table[i].dlci == dlci) {
-			table[i].opcode = opcode;
-			break;
-		}
-}
-
-static uint8_t get_status(uint16_t handle, uint8_t dlci)
-{
-	int i;
-
-	for (i = 0; i < TABLE_SIZE; i++)
-		if (table[i].handle == handle && table[i].dlci == dlci)
-			return table[i].status;
-
-	return 0x00;
-}
-
-static void set_status(uint16_t handle, uint8_t dlci, uint8_t status)
-{
-	int i;
-
-	for (i = 0; i < TABLE_SIZE; i++)
-		if (table[i].handle == handle && table[i].dlci == dlci) {
-			table[i].status = status;
-			break;
-		}
-}
-
 static char *opcode2str(uint8_t opcode)
 {
 	switch (opcode & 0x7f) {
@@ -429,8 +302,3 @@ void obex_dump(int level, struct frame *frm)
 		parse_headers(level, frm);
 	}
 }
-
-void obex_clear(uint16_t handle, uint8_t dlci)
-{
-	del_frame(handle, dlci);
-}
diff --git a/tools/parser/parser.c b/tools/parser/parser.c
index c76dc56..cab8136 100644
--- a/tools/parser/parser.c
+++ b/tools/parser/parser.c
@@ -114,6 +114,139 @@ uint32_t get_proto(uint16_t handle, uint16_t psm, uint8_t channel)
 	return (pos < 0) ? 0 : proto_table[pos].proto;
 }
 
+#define FRAME_TABLE_SIZE 20
+
+static struct {
+	uint16_t handle;
+	uint8_t dlci;
+	uint8_t opcode;
+	uint8_t status;
+	struct frame frm;
+} frame_table[FRAME_TABLE_SIZE];
+
+void del_frame(uint16_t handle, uint8_t dlci)
+{
+	int i;
+
+	for (i = 0; i < FRAME_TABLE_SIZE; i++)
+		if (frame_table[i].handle == handle &&
+					frame_table[i].dlci == dlci) {
+			frame_table[i].handle = 0;
+			frame_table[i].dlci   = 0;
+			frame_table[i].opcode = 0;
+			frame_table[i].status = 0;
+			if (frame_table[i].frm.data)
+				free(frame_table[i].frm.data);
+			memset(&frame_table[i].frm, 0, sizeof(struct frame));
+			break;
+		}
+}
+
+struct frame *add_frame(struct frame *frm)
+{
+	struct frame *fr;
+	void *data;
+	int i, pos = -1;
+
+	for (i = 0; i < FRAME_TABLE_SIZE; i++) {
+		if (frame_table[i].handle == frm->handle &&
+					frame_table[i].dlci == frm->dlci) {
+			pos = i;
+			break;
+		}
+
+		if (pos < 0 && !frame_table[i].handle && !frame_table[i].dlci)
+			pos = i;
+	}
+
+	if (pos < 0)
+		return frm;
+
+	frame_table[pos].handle = frm->handle;
+	frame_table[pos].dlci   = frm->dlci;
+	fr = &frame_table[pos].frm;
+
+	data = malloc(fr->len + frm->len);
+	if (!data) {
+		perror("Can't allocate frame stream buffer");
+		del_frame(frm->handle, frm->dlci);
+		return frm;
+	}
+
+	if (fr->len > 0)
+		memcpy(data, fr->ptr, fr->len);
+
+	if (frm->len > 0)
+		memcpy(data + fr->len, frm->ptr, frm->len);
+
+	if (fr->data)
+		free(fr->data);
+
+	fr->data     = data;
+	fr->data_len = fr->len + frm->len;
+	fr->len      = fr->data_len;
+	fr->ptr      = fr->data;
+	fr->dev_id   = frm->dev_id;
+	fr->in       = frm->in;
+	fr->ts       = frm->ts;
+	fr->handle   = frm->handle;
+	fr->cid      = frm->cid;
+	fr->num      = frm->num;
+	fr->dlci     = frm->dlci;
+	fr->channel  = frm->channel;
+	fr->audio_fd = frm->audio_fd;
+
+	return fr;
+}
+
+uint8_t get_opcode(uint16_t handle, uint8_t dlci)
+{
+	int i;
+
+	for (i = 0; i < FRAME_TABLE_SIZE; i++)
+		if (frame_table[i].handle == handle &&
+					frame_table[i].dlci == dlci)
+			return frame_table[i].opcode;
+
+	return 0x00;
+}
+
+void set_opcode(uint16_t handle, uint8_t dlci, uint8_t opcode)
+{
+	int i;
+
+	for (i = 0; i < FRAME_TABLE_SIZE; i++)
+		if (frame_table[i].handle == handle && 
+					frame_table[i].dlci == dlci) {
+			frame_table[i].opcode = opcode;
+			break;
+		}
+}
+
+uint8_t get_status(uint16_t handle, uint8_t dlci)
+{
+	int i;
+
+	for (i = 0; i < FRAME_TABLE_SIZE; i++)
+		if (frame_table[i].handle == handle &&
+					frame_table[i].dlci == dlci)
+			return frame_table[i].status;
+
+	return 0x00;
+}
+
+void set_status(uint16_t handle, uint8_t dlci, uint8_t status)
+{
+	int i;
+
+	for (i = 0; i < FRAME_TABLE_SIZE; i++)
+		if (frame_table[i].handle == handle &&
+					frame_table[i].dlci == dlci) {
+			frame_table[i].status = status;
+			break;
+		}
+}
+
 void ascii_dump(int level, struct frame *frm, int num)
 {
 	unsigned char *buf = frm->ptr;
diff --git a/tools/parser/parser.h b/tools/parser/parser.h
index 1b82b57..ba16607 100644
--- a/tools/parser/parser.h
+++ b/tools/parser/parser.h
@@ -197,8 +197,16 @@ char *get_uuid_name(int uuid);
 void set_proto(uint16_t handle, uint16_t psm, uint8_t channel, uint32_t proto);
 uint32_t get_proto(uint16_t handle, uint16_t psm, uint8_t channel);
 
+struct frame *add_frame(struct frame *frm);
+void del_frame(uint16_t handle, uint8_t dlci);
+
+uint8_t get_opcode(uint16_t handle, uint8_t dlci);
+void set_opcode(uint16_t handle, uint8_t dlci, uint8_t opcode);
+
+uint8_t get_status(uint16_t handle, uint8_t dlci);
+void set_status(uint16_t handle, uint8_t dlci, uint8_t status);
+
 void l2cap_clear(uint16_t handle);
-void obex_clear(uint16_t handle, uint8_t dlci);
 
 void ascii_dump(int level, struct frame *frm, int num);
 void hex_dump(int level, struct frame *frm, int num);
diff --git a/tools/parser/rfcomm.c b/tools/parser/rfcomm.c
index d576342..e7ffc99 100644
--- a/tools/parser/rfcomm.c
+++ b/tools/parser/rfcomm.c
@@ -339,7 +339,7 @@ void rfcomm_dump(int level, struct frame *frm)
 			break;
 		case DISC:
 			printf("DISC: ");
-			obex_clear(frm->handle, GET_DLCI(head.addr));
+			del_frame(frm->handle, GET_DLCI(head.addr));
 			break;
 		default:
 			printf("ERR: ");
diff --git a/tools/parser/sdp.c b/tools/parser/sdp.c
index f3ddbef..9a3121e 100644
--- a/tools/parser/sdp.c
+++ b/tools/parser/sdp.c
@@ -601,7 +601,7 @@ static char *pid2str(uint8_t pid)
 
 static struct frame frame_table[FRAME_TABLE_SIZE];
 
-static int add_frame(struct frame *frm, int count)
+static int frame_add(struct frame *frm, int count)
 {
 	register struct frame *fr;
 	register unsigned char *data;
@@ -652,11 +652,11 @@ static int add_frame(struct frame *frm, int count)
 	return pos;
 }
 
-static struct frame *get_frame(struct frame *frm, int count)
+static struct frame *frame_get(struct frame *frm, int count)
 {
 	register int pos;
 
-	pos = add_frame(frm, count);
+	pos = frame_add(frm, count);
 	if (pos < 0)
 		return frm;
 
@@ -754,9 +754,9 @@ void sdp_dump(int level, struct frame *frm)
 
 		if (cont == 0) {
 			/* Parse AttributeList */
-			print_attr_list(level + 1, get_frame(frm, count));
+			print_attr_list(level + 1, frame_get(frm, count));
 		} else
-			add_frame(frm, count);
+			frame_add(frm, count);
 
 		print_cont_state(level + 1, frm->ptr + count);
 		break;
@@ -787,9 +787,9 @@ void sdp_dump(int level, struct frame *frm)
 
 		if (cont == 0) {
 			/* Parse AttributeLists */
-			print_attr_lists(level + 1, get_frame(frm, count));
+			print_attr_lists(level + 1, frame_get(frm, count));
 		} else
-			add_frame(frm, count);
+			frame_add(frm, count);
 
 		print_cont_state(level + 1, frm->ptr + count);
 		break;