aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/ipaccess/ipaccess-firmware.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/ipaccess/ipaccess-firmware.c')
-rw-r--r--openbsc/src/ipaccess/ipaccess-firmware.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/openbsc/src/ipaccess/ipaccess-firmware.c b/openbsc/src/ipaccess/ipaccess-firmware.c
index 8fdc2e9a4..5cf99d428 100644
--- a/openbsc/src/ipaccess/ipaccess-firmware.c
+++ b/openbsc/src/ipaccess/ipaccess-firmware.c
@@ -28,6 +28,7 @@
#include <stdlib.h>
#include <string.h>
+#define PART_LENGTH 138
struct sdp_firmware {
char magic[4];
@@ -36,12 +37,7 @@ struct sdp_firmware {
unsigned int file_length;
char sw_part[20];
char text1[122];
- u_int8_t no_idea_1[4];
- char text2[64];
- char time[8];
- u_int8_t no_idea_2[4];
- char date[8];
- u_int8_t no_idea_3[6];
+ unsigned int short part_length;
/* stuff i don't know */
} __attribute__((packed));
@@ -77,10 +73,9 @@ static void analyze_file(int fd)
printf("header_length: %u\n", ntohl(firmware_header->header_length));
printf("file_length: %u\n", ntohl(firmware_header->file_length));
printf("sw_part: %.20s\n", firmware_header->sw_part);
- printf("text1: %.122s\n", firmware_header->text1);
- printf("text2: %.64s\n", firmware_header->text2);
- printf("time: %.8s\n", firmware_header->time);
- printf("date: %.8s\n", firmware_header->date);
+ printf("text1: %.120s\n", firmware_header->text1);
+ printf("items: %u (rest %u)\n", ntohs(firmware_header->part_length) / PART_LENGTH,
+ ntohs(firmware_header->part_length) % PART_LENGTH);
/* verify the file */
if (fstat(fd, &stat) == -1) {