Commit 7ac79f0a947e8f7eb9990c1388a6400293108579

Authored by Stéphane Raimbault
1 parent e48f66e0

Removed glib dependency

@@ -8,7 +8,6 @@ Cleanups @@ -8,7 +8,6 @@ Cleanups
8 * split compute_response_size to reuse 8 * split compute_response_size to reuse
9 * split modbus.c (tcp/rtu, query/response) 9 * split modbus.c (tcp/rtu, query/response)
10 * t_id in param_msqg 10 * t_id in param_msqg
11 -* drop glib dependency (not sure)  
12 * only one build_header_message function to replace build_query_packet/response_packet 11 * only one build_header_message function to replace build_query_packet/response_packet
13 12
14 Documentation 13 Documentation
configure.ac
@@ -10,14 +10,6 @@ AC_PROG_CC @@ -10,14 +10,6 @@ AC_PROG_CC
10 AC_PROG_MAKE_SET 10 AC_PROG_MAKE_SET
11 AC_PROG_LIBTOOL 11 AC_PROG_LIBTOOL
12 12
13 -# Checks for libraries.  
14 -AM_PATH_GLIB_2_0(2.0.0,,AC_MSG_ERROR(libmodbus needs GLib 2.X))  
15 -PKG_CHECK_MODULES(GLIB, glib-2.0)  
16 -AC_SUBST(GLIB_CFLAGS)  
17 -AC_SUBST(GLIB_LIBS)  
18 -# Optional requirements to report via pkg-config (in modbus.pc)  
19 -modbus_pkgdeps="glib-2.0"  
20 -  
21 # Checks for header files. 13 # Checks for header files.
22 AC_HEADER_STDC 14 AC_HEADER_STDC
23 AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h termio.h termios.h unistd.h]) 15 AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h termio.h termios.h unistd.h])
modbus.pc.in
@@ -5,7 +5,7 @@ includedir=@includedir@ @@ -5,7 +5,7 @@ includedir=@includedir@
5 5
6 Name: modbus 6 Name: modbus
7 Description: ModBus library 7 Description: ModBus library
8 -Requires: @modbus_pkgdeps@ 8 +Requires:
9 Version: @VERSION@ 9 Version: @VERSION@
10 Libs: -L${libdir} -lmodbus 10 Libs: -L${libdir} -lmodbus
11 Cflags: -I${includedir} 11 Cflags: -I${includedir}
src/Makefile.am
@@ -3,13 +3,10 @@ libmodbus_la_SOURCES = modbus.c modbus.h @@ -3,13 +3,10 @@ libmodbus_la_SOURCES = modbus.c modbus.h
3 3
4 bin_PROGRAMS = test-modbus-master test-modbus-slave 4 bin_PROGRAMS = test-modbus-master test-modbus-slave
5 test_modbus_master_SOURCES = test-modbus-master.c 5 test_modbus_master_SOURCES = test-modbus-master.c
6 -test_modbus_master_INCLUDES = @GLIB_CFLAGS@  
7 -test_modbus_master_LDADD = libmodbus.la @GLIB_LIBS@ 6 +test_modbus_master_LDADD = libmodbus.la
8 7
9 test_modbus_slave_SOURCES = test-modbus-slave.c 8 test_modbus_slave_SOURCES = test-modbus-slave.c
10 -test_modbus_slave_INCLUDES = @GLIB_CFLAGS@  
11 -test_modbus_slave_LDADD = libmodbus.la @GLIB_LIBS@ 9 +test_modbus_slave_LDADD = libmodbus.la
12 10
13 -INCLUDES = @GLIB_CFLAGS@ -I$(top_srcdir)/include  
14 -LDADD = @GLIB_LIBS@ 11 +INCLUDES = -I$(top_srcdir)/include
15 CLEANFILES = *~ 12 CLEANFILES = *~
src/modbus.c
@@ -37,7 +37,6 @@ @@ -37,7 +37,6 @@
37 #include <sys/time.h> 37 #include <sys/time.h>
38 #include <unistd.h> 38 #include <unistd.h>
39 #include <errno.h> 39 #include <errno.h>
40 -#include <glib.h>  
41 40
42 /* TCP */ 41 /* TCP */
43 #include <sys/types.h> 42 #include <sys/types.h>
@@ -137,7 +136,7 @@ static void error_treat(int ret, const char *string, modbus_param_t *mb_param) @@ -137,7 +136,7 @@ static void error_treat(int ret, const char *string, modbus_param_t *mb_param)
137 { 136 {
138 if (ret == -1) 137 if (ret == -1)
139 perror(string); 138 perror(string);
140 - g_print("\n\nERROR %s\n\n", string); 139 + printf("\n\nERROR %s\n\n", string);
141 140
142 if (mb_param->type_com == RTU) { 141 if (mb_param->type_com == RTU) {
143 tcflush(mb_param->fd, TCIOFLUSH); 142 tcflush(mb_param->fd, TCIOFLUSH);
@@ -334,12 +333,10 @@ int check_crc16(modbus_param_t *mb_param, @@ -334,12 +333,10 @@ int check_crc16(modbus_param_t *mb_param,
334 if (crc_calc == crc_received) { 333 if (crc_calc == crc_received) {
335 ret = 0; 334 ret = 0;
336 } else { 335 } else {
337 - char *s_error;  
338 - s_error = g_strdup_printf(  
339 - "invalid crc received %0X - crc_calc %0X", 336 + char s_error[64];
  337 + sprintf(s_error, "invalid crc received %0X - crc_calc %0X",
340 crc_received, crc_calc); 338 crc_received, crc_calc);
341 error_treat(0, s_error, mb_param); 339 error_treat(0, s_error, mb_param);
342 - g_free(s_error);  
343 ret = INVALID_CRC; 340 ret = INVALID_CRC;
344 } 341 }
345 } else { 342 } else {
@@ -367,11 +364,11 @@ static int modbus_send(modbus_param_t *mb_param, unsigned char *query, @@ -367,11 +364,11 @@ static int modbus_send(modbus_param_t *mb_param, unsigned char *query,
367 } 364 }
368 365
369 if (mb_param->debug) { 366 if (mb_param->debug) {
370 - g_print("\n"); 367 + printf("\n");
371 for (i = 0; i < query_size; i++) 368 for (i = 0; i < query_size; i++)
372 - g_print("[%.2X]", query[i]); 369 + printf("[%.2X]", query[i]);
373 370
374 - g_print("\n"); 371 + printf("\n");
375 } 372 }
376 373
377 if (mb_param->type_com == RTU) 374 if (mb_param->type_com == RTU)
@@ -404,7 +401,7 @@ int compute_query_size_header(int function) @@ -404,7 +401,7 @@ int compute_query_size_header(int function)
404 else 401 else
405 byte = 0; 402 byte = 0;
406 403
407 - g_print("compute_query_size_header FC %d, B%d\n", function, byte); 404 + printf("compute_query_size_header FC %d, B%d\n", function, byte);
408 405
409 return byte; 406 return byte;
410 } 407 }
@@ -422,7 +419,7 @@ int compute_query_size_data(modbus_param_t *mb_param, unsigned char *msg) @@ -422,7 +419,7 @@ int compute_query_size_data(modbus_param_t *mb_param, unsigned char *msg)
422 byte = 0; 419 byte = 0;
423 420
424 byte += mb_param->checksum_size; 421 byte += mb_param->checksum_size;
425 - g_print("compute_query_size_data FC %d, B %d\n", function, byte); 422 + printf("compute_query_size_data FC %d, B %d\n", function, byte);
426 423
427 return byte; 424 return byte;
428 } 425 }
@@ -431,7 +428,7 @@ int compute_query_size_data(modbus_param_t *mb_param, unsigned char *msg) @@ -431,7 +428,7 @@ int compute_query_size_data(modbus_param_t *mb_param, unsigned char *msg)
431 { \ 428 { \
432 while ((select_ret = select(mb_param->fd+1, &rfds, NULL, NULL, &tv)) == -1) { \ 429 while ((select_ret = select(mb_param->fd+1, &rfds, NULL, NULL, &tv)) == -1) { \
433 if (errno == EINTR) { \ 430 if (errno == EINTR) { \
434 - g_print("A non blocked signal was caught\n"); \ 431 + printf("A non blocked signal was caught\n"); \
435 /* Necessary after an error */ \ 432 /* Necessary after an error */ \
436 FD_ZERO(&rfds); \ 433 FD_ZERO(&rfds); \
437 FD_SET(mb_param->fd, &rfds); \ 434 FD_SET(mb_param->fd, &rfds); \
@@ -472,9 +469,9 @@ int receive_msg(modbus_param_t *mb_param, @@ -472,9 +469,9 @@ int receive_msg(modbus_param_t *mb_param,
472 469
473 if (mb_param->debug) { 470 if (mb_param->debug) {
474 if (msg_size_computed == MSG_SIZE_UNDEFINED) 471 if (msg_size_computed == MSG_SIZE_UNDEFINED)
475 - g_print("Waiting for a message...\n"); 472 + printf("Waiting for a message...\n");
476 else 473 else
477 - g_print("Waiting for a message (%d bytes)...\n", msg_size_computed); 474 + printf("Waiting for a message (%d bytes)...\n", msg_size_computed);
478 } 475 }
479 476
480 /* Add a file descriptor to the set */ 477 /* Add a file descriptor to the set */
@@ -526,7 +523,7 @@ int receive_msg(modbus_param_t *mb_param, @@ -526,7 +523,7 @@ int receive_msg(modbus_param_t *mb_param,
526 if (mb_param->debug) { 523 if (mb_param->debug) {
527 int i; 524 int i;
528 for (i=0; i < read_ret; i++) 525 for (i=0; i < read_ret; i++)
529 - g_print("<%.2X>", p_msg[i]); 526 + printf("<%.2X>", p_msg[i]);
530 } 527 }
531 528
532 if ((*msg_size) < msg_size_computed) { 529 if ((*msg_size) < msg_size_computed) {
@@ -539,20 +536,20 @@ int receive_msg(modbus_param_t *mb_param, @@ -539,20 +536,20 @@ int receive_msg(modbus_param_t *mb_param,
539 size_to_read = compute_query_size_header(msg[mb_param->header_length + 1]); 536 size_to_read = compute_query_size_header(msg[mb_param->header_length + 1]);
540 msg_size_computed += size_to_read; 537 msg_size_computed += size_to_read;
541 state = BYTE; 538 state = BYTE;
542 - g_print("\nBYTE:"); 539 + printf("\nBYTE:");
543 break; 540 break;
544 case BYTE: 541 case BYTE:
545 size_to_read = compute_query_size_data(mb_param, msg); 542 size_to_read = compute_query_size_data(mb_param, msg);
546 msg_size_computed += size_to_read; 543 msg_size_computed += size_to_read;
547 state = COMPLETE; 544 state = COMPLETE;
548 - g_print("\nCOMPLETE:"); 545 + printf("\nCOMPLETE:");
549 break; 546 break;
550 case COMPLETE: 547 case COMPLETE:
551 size_to_read = 0; 548 size_to_read = 0;
552 break; 549 break;
553 } 550 }
554 } 551 }
555 - g_print(" size to read %d\n", size_to_read); 552 + printf(" size to read %d\n", size_to_read);
556 553
557 /* Moves the pointer to receive other datas */ 554 /* Moves the pointer to receive other datas */
558 p_msg = &(p_msg[read_ret]); 555 p_msg = &(p_msg[read_ret]);
@@ -571,7 +568,7 @@ int receive_msg(modbus_param_t *mb_param, @@ -571,7 +568,7 @@ int receive_msg(modbus_param_t *mb_param,
571 } 568 }
572 569
573 if (mb_param->debug) 570 if (mb_param->debug)
574 - g_print("\n"); 571 + printf("\n");
575 572
576 /* OK */ 573 /* OK */
577 return 0; 574 return 0;
@@ -652,12 +649,10 @@ static int modbus_check_response(modbus_param_t *mb_param, @@ -652,12 +649,10 @@ static int modbus_check_response(modbus_param_t *mb_param,
652 /* The chances are low to hit this 649 /* The chances are low to hit this
653 case but can avoid a vicious 650 case but can avoid a vicious
654 segfault */ 651 segfault */
655 - char *s_error;  
656 - s_error = g_strdup_printf(  
657 - "Invalid exception code %d",  
658 - response[offset + 2]); 652 + char s_error[64];
  653 + sprintf(s_error, "Invalid exception code %d", response[offset + 2]);
659 error_treat(0, s_error, mb_param); 654 error_treat(0, s_error, mb_param);
660 - g_free(s_error); 655 + free(s_error);
661 return INVALID_EXCEPTION_CODE; 656 return INVALID_EXCEPTION_CODE;
662 } 657 }
663 } 658 }
@@ -735,12 +730,12 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query, @@ -735,12 +730,12 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query,
735 count = (query[offset+4] << 8) + query[offset+5]; 730 count = (query[offset+4] << 8) + query[offset+5];
736 byte_count = 2 * count; 731 byte_count = 2 * count;
737 offset = build_response_packet(mb_param, slave, function, byte_count, response); 732 offset = build_response_packet(mb_param, slave, function, byte_count, response);
738 - g_print("offset %d\n", offset); 733 + printf("offset %d\n", offset);
739 for (i = address; i < address + count; i++) { 734 for (i = address; i < address + count; i++) {
740 response[offset++] = mb_mapping->tab_holding_registers[i] >> 8; 735 response[offset++] = mb_mapping->tab_holding_registers[i] >> 8;
741 response[offset++] = mb_mapping->tab_holding_registers[i] & 0xFF; 736 response[offset++] = mb_mapping->tab_holding_registers[i] & 0xFF;
742 } 737 }
743 - g_print("fin offset %d\n", offset); 738 + printf("fin offset %d\n", offset);
744 break; 739 break;
745 case FC_READ_INPUT_REGISTERS: 740 case FC_READ_INPUT_REGISTERS:
746 count = (query[offset+4] << 8) + query[offset+5]; 741 count = (query[offset+4] << 8) + query[offset+5];
@@ -758,8 +753,8 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query, @@ -758,8 +753,8 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query,
758 else if (data == 0x0) 753 else if (data == 0x0)
759 mb_mapping->tab_coil_status[address] = OFF; 754 mb_mapping->tab_coil_status[address] = OFF;
760 else 755 else
761 - g_print("FIXME Error %d\n", data);  
762 - g_print("FIXME works only in TCP mode (CRC)"); 756 + printf("FIXME Error %d\n", data);
  757 + printf("FIXME works only in TCP mode (CRC)");
763 memcpy(response, query, query_size); 758 memcpy(response, query, query_size);
764 offset = query_size; 759 offset = query_size;
765 break; 760 break;
@@ -768,7 +763,7 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query, @@ -768,7 +763,7 @@ void manage_query(modbus_param_t *mb_param, unsigned char *query,
768 case FC_FORCE_MULTIPLE_COILS: 763 case FC_FORCE_MULTIPLE_COILS:
769 case FC_PRESET_MULTIPLE_REGISTERS: 764 case FC_PRESET_MULTIPLE_REGISTERS:
770 case FC_REPORT_SLAVE_ID: 765 case FC_REPORT_SLAVE_ID:
771 - g_print("Not implemented\n"); 766 + printf("Not implemented\n");
772 break; 767 break;
773 } 768 }
774 769
@@ -897,7 +892,7 @@ int read_holding_registers(modbus_param_t *mb_param, int slave, @@ -897,7 +892,7 @@ int read_holding_registers(modbus_param_t *mb_param, int slave,
897 int status; 892 int status;
898 893
899 if (count > MAX_READ_HOLD_REGS) { 894 if (count > MAX_READ_HOLD_REGS) {
900 - g_print("WARNING Too many holding registers requested\n"); 895 + printf("WARNING Too many holding registers requested\n");
901 count = MAX_READ_HOLD_REGS; 896 count = MAX_READ_HOLD_REGS;
902 } 897 }
903 898
@@ -914,7 +909,7 @@ int read_input_registers(modbus_param_t *mb_param, int slave, @@ -914,7 +909,7 @@ int read_input_registers(modbus_param_t *mb_param, int slave,
914 int status; 909 int status;
915 910
916 if (count > MAX_READ_INPUT_REGS) { 911 if (count > MAX_READ_INPUT_REGS) {
917 - g_print("WARNING Too many input registers requested\n"); 912 + printf("WARNING Too many input registers requested\n");
918 count = MAX_READ_INPUT_REGS; 913 count = MAX_READ_INPUT_REGS;
919 } 914 }
920 915
@@ -1023,7 +1018,7 @@ int force_multiple_coils(modbus_param_t *mb_param, int slave, @@ -1023,7 +1018,7 @@ int force_multiple_coils(modbus_param_t *mb_param, int slave,
1023 unsigned char query[MAX_PACKET_SIZE]; 1018 unsigned char query[MAX_PACKET_SIZE];
1024 1019
1025 if (coil_count > MAX_WRITE_COILS) { 1020 if (coil_count > MAX_WRITE_COILS) {
1026 - g_print("WARNING Writing to too many coils\n"); 1021 + printf("WARNING Writing to too many coils\n");
1027 coil_count = MAX_WRITE_COILS; 1022 coil_count = MAX_WRITE_COILS;
1028 } 1023 }
1029 1024
@@ -1071,7 +1066,7 @@ int preset_multiple_registers(modbus_param_t *mb_param, int slave, @@ -1071,7 +1066,7 @@ int preset_multiple_registers(modbus_param_t *mb_param, int slave,
1071 unsigned char query[MAX_PACKET_SIZE]; 1066 unsigned char query[MAX_PACKET_SIZE];
1072 1067
1073 if (reg_count > MAX_WRITE_REGS) { 1068 if (reg_count > MAX_WRITE_REGS) {
1074 - g_print("WARNING Trying to write to too many registers\n"); 1069 + printf("WARNING Trying to write to too many registers\n");
1075 reg_count = MAX_WRITE_REGS; 1070 reg_count = MAX_WRITE_REGS;
1076 } 1071 }
1077 1072
@@ -1177,7 +1172,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) @@ -1177,7 +1172,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param)
1177 speed_t baud_rate; 1172 speed_t baud_rate;
1178 1173
1179 if (mb_param->debug) { 1174 if (mb_param->debug) {
1180 - g_print("Opening %s at %d bauds (%s)\n", 1175 + printf("Opening %s at %d bauds (%s)\n",
1181 mb_param->device, mb_param->baud_i, mb_param->parity); 1176 mb_param->device, mb_param->baud_i, mb_param->parity);
1182 } 1177 }
1183 1178
@@ -1191,7 +1186,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) @@ -1191,7 +1186,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param)
1191 mb_param->fd = open(mb_param->device, O_RDWR | O_NOCTTY | O_NDELAY); 1186 mb_param->fd = open(mb_param->device, O_RDWR | O_NOCTTY | O_NDELAY);
1192 if (mb_param->fd < 0) { 1187 if (mb_param->fd < 0) {
1193 perror("open"); 1188 perror("open");
1194 - g_print("ERROR Opening device %s (no : %d)\n", 1189 + printf("ERROR Opening device %s (no : %d)\n",
1195 mb_param->device, errno); 1190 mb_param->device, errno);
1196 return -1; 1191 return -1;
1197 } 1192 }
@@ -1240,7 +1235,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param) @@ -1240,7 +1235,7 @@ static int modbus_connect_rtu(modbus_param_t *mb_param)
1240 break; 1235 break;
1241 default: 1236 default:
1242 baud_rate = B9600; 1237 baud_rate = B9600;
1243 - g_print("WARNING Unknown baud rate %d for %s (B9600 used)\n", 1238 + printf("WARNING Unknown baud rate %d for %s (B9600 used)\n",
1244 mb_param->baud_i, mb_param->device); 1239 mb_param->baud_i, mb_param->device);
1245 } 1240 }
1246 1241
@@ -1460,7 +1455,7 @@ static int modbus_connect_tcp(modbus_param_t *mb_param) @@ -1460,7 +1455,7 @@ static int modbus_connect_tcp(modbus_param_t *mb_param)
1460 } 1455 }
1461 1456
1462 if (mb_param->debug) { 1457 if (mb_param->debug) {
1463 - g_print("Connecting to %s\n", mb_param->ip); 1458 + printf("Connecting to %s\n", mb_param->ip);
1464 } 1459 }
1465 1460
1466 ret = connect(mb_param->fd, (struct sockaddr *)&addr, 1461 ret = connect(mb_param->fd, (struct sockaddr *)&addr,
@@ -1499,34 +1494,38 @@ int modbus_mapping_new(modbus_mapping_t *mb_mapping, @@ -1499,34 +1494,38 @@ int modbus_mapping_new(modbus_mapping_t *mb_mapping,
1499 { 1494 {
1500 /* 0X */ 1495 /* 0X */
1501 mb_mapping->nb_coil_status = nb_coil_status; 1496 mb_mapping->nb_coil_status = nb_coil_status;
1502 - mb_mapping->tab_coil_status = (unsigned char *) g_malloc0(nb_coil_status * sizeof(unsigned char)); 1497 + mb_mapping->tab_coil_status = (unsigned char *) malloc(nb_coil_status * sizeof(unsigned char));
  1498 + memset(mb_mapping->tab_coil_status, 0, nb_coil_status * sizeof(unsigned char));
1503 if (mb_mapping->tab_coil_status == NULL) 1499 if (mb_mapping->tab_coil_status == NULL)
1504 return FALSE; 1500 return FALSE;
1505 1501
1506 /* 1X */ 1502 /* 1X */
1507 mb_mapping->nb_input_status = nb_input_status; 1503 mb_mapping->nb_input_status = nb_input_status;
1508 - mb_mapping->tab_input_status = (unsigned char *) g_malloc0(nb_input_status * sizeof(unsigned char)); 1504 + mb_mapping->tab_input_status = (unsigned char *) malloc(nb_input_status * sizeof(unsigned char));
  1505 + memset(mb_mapping->tab_input_status, 0, nb_input_status * sizeof(unsigned char));
1509 if (mb_mapping->tab_input_status == NULL) { 1506 if (mb_mapping->tab_input_status == NULL) {
1510 - g_free(mb_mapping->tab_coil_status); 1507 + free(mb_mapping->tab_coil_status);
1511 return FALSE; 1508 return FALSE;
1512 } 1509 }
1513 1510
1514 /* 3X */ 1511 /* 3X */
1515 mb_mapping->nb_input_registers = nb_input_registers; 1512 mb_mapping->nb_input_registers = nb_input_registers;
1516 - mb_mapping->tab_input_registers = (unsigned short *) g_malloc0(nb_input_registers * sizeof(unsigned short)); 1513 + mb_mapping->tab_input_registers = (unsigned short *) malloc(nb_input_registers * sizeof(unsigned short));
  1514 + memset(mb_mapping->tab_input_registers, 0, nb_input_registers * sizeof(unsigned short));
1517 if (mb_mapping->tab_input_registers == NULL) { 1515 if (mb_mapping->tab_input_registers == NULL) {
1518 - g_free(mb_mapping->tab_coil_status);  
1519 - g_free(mb_mapping->tab_input_status); 1516 + free(mb_mapping->tab_coil_status);
  1517 + free(mb_mapping->tab_input_status);
1520 return FALSE; 1518 return FALSE;
1521 } 1519 }
1522 1520
1523 /* 4X */ 1521 /* 4X */
1524 mb_mapping->nb_holding_registers = nb_holding_registers; 1522 mb_mapping->nb_holding_registers = nb_holding_registers;
1525 - mb_mapping->tab_holding_registers = (unsigned short *) g_malloc0(nb_holding_registers * sizeof(unsigned short)); 1523 + mb_mapping->tab_holding_registers = (unsigned short *) malloc(nb_holding_registers * sizeof(unsigned short));
  1524 + memset(mb_mapping->tab_holding_registers, 0, nb_holding_registers * sizeof(unsigned short));
1526 if (mb_mapping->tab_holding_registers == NULL) { 1525 if (mb_mapping->tab_holding_registers == NULL) {
1527 - g_free(mb_mapping->tab_coil_status);  
1528 - g_free(mb_mapping->tab_input_status);  
1529 - g_free(mb_mapping->tab_input_registers); 1526 + free(mb_mapping->tab_coil_status);
  1527 + free(mb_mapping->tab_input_status);
  1528 + free(mb_mapping->tab_input_registers);
1530 return FALSE; 1529 return FALSE;
1531 } 1530 }
1532 1531
@@ -1536,10 +1535,10 @@ int modbus_mapping_new(modbus_mapping_t *mb_mapping, @@ -1536,10 +1535,10 @@ int modbus_mapping_new(modbus_mapping_t *mb_mapping,
1536 /* Frees the 4 arrays */ 1535 /* Frees the 4 arrays */
1537 void modbus_mapping_free(modbus_mapping_t *mb_mapping) 1536 void modbus_mapping_free(modbus_mapping_t *mb_mapping)
1538 { 1537 {
1539 - g_free(mb_mapping->tab_coil_status);  
1540 - g_free(mb_mapping->tab_input_status);  
1541 - g_free(mb_mapping->tab_input_registers);  
1542 - g_free(mb_mapping->tab_holding_registers); 1538 + free(mb_mapping->tab_coil_status);
  1539 + free(mb_mapping->tab_input_status);
  1540 + free(mb_mapping->tab_input_registers);
  1541 + free(mb_mapping->tab_holding_registers);
1543 } 1542 }
1544 1543
1545 /* Listens for any query from a modbus master */ 1544 /* Listens for any query from a modbus master */
@@ -1561,7 +1560,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) @@ -1561,7 +1560,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param)
1561 perror("socket"); 1560 perror("socket");
1562 exit(1); 1561 exit(1);
1563 } else { 1562 } else {
1564 - g_print("Socket OK\n"); 1563 + printf("Socket OK\n");
1565 } 1564 }
1566 1565
1567 ret = bind(new_socket, (struct sockaddr *)&addr, 1566 ret = bind(new_socket, (struct sockaddr *)&addr,
@@ -1571,7 +1570,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) @@ -1571,7 +1570,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param)
1571 close(new_socket); 1570 close(new_socket);
1572 exit(1); 1571 exit(1);
1573 } else { 1572 } else {
1574 - g_print("Bind OK\n"); 1573 + printf("Bind OK\n");
1575 } 1574 }
1576 1575
1577 ret = listen(new_socket, 1); 1576 ret = listen(new_socket, 1);
@@ -1580,7 +1579,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) @@ -1580,7 +1579,7 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param)
1580 close(new_socket); 1579 close(new_socket);
1581 exit(1); 1580 exit(1);
1582 } else { 1581 } else {
1583 - g_print("Listen OK\n"); 1582 + printf("Listen OK\n");
1584 } 1583 }
1585 1584
1586 addrlen = sizeof(struct sockaddr_in); 1585 addrlen = sizeof(struct sockaddr_in);
@@ -1591,8 +1590,8 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param) @@ -1591,8 +1590,8 @@ int modbus_init_listen_tcp(modbus_param_t *mb_param)
1591 new_socket = 0; 1590 new_socket = 0;
1592 exit(1); 1591 exit(1);
1593 } else { 1592 } else {
1594 - g_print("The client %s is connected\n",  
1595 - inet_ntoa(addr.sin_addr)); 1593 + printf("The client %s is connected\n",
  1594 + inet_ntoa(addr.sin_addr));
1596 } 1595 }
1597 1596
1598 return new_socket; 1597 return new_socket;
@@ -17,7 +17,6 @@ def set_options(opt): @@ -17,7 +17,6 @@ def set_options(opt):
17 17
18 def configure(conf): 18 def configure(conf):
19 conf.check_tool('compiler_cc') 19 conf.check_tool('compiler_cc')
20 - conf.check_pkg('glib-2.0', destvar='GLIB', mandatory=True)  
21 conf.check_tool('misc') 20 conf.check_tool('misc')
22 21
23 headers = 'arpa/inet.h fcntl.h netinet/in.h stdlib.h \ 22 headers = 'arpa/inet.h fcntl.h netinet/in.h stdlib.h \
@@ -62,8 +61,7 @@ def build(bld): @@ -62,8 +61,7 @@ def build(bld):
62 'prefix': bld.env()['PREFIX'], 61 'prefix': bld.env()['PREFIX'],
63 'exec_prefix': bld.env()['PREFIX'], 62 'exec_prefix': bld.env()['PREFIX'],
64 'libdir': bld.env()['PREFIX'] + '/lib', 63 'libdir': bld.env()['PREFIX'] + '/lib',
65 - 'includedir': bld.env()['PREFIX'] + '/include',  
66 - 'modbus_pkgdeps' : 'glib-2.0'} 64 + 'includedir': bld.env()['PREFIX'] + '/include'}
67 65
68 def shutdown(): 66 def shutdown():
69 import UnitTest 67 import UnitTest