After fetching current git code and compiling with gcc 4.3.3 got errors
Here is fix, so rstp compile fine with gcc 4.3.3
bridge_track.c and main.c have functions where is return value not checked.
Because of -Werror it won't compile.
Example:
gcc -Wall -Werror -O2 -g -D_REENTRANT -D__LINUX__ -DVERSION=0.16 -DBUILD=1 -I.
-I./include -I./rstplib -c -o
main.o main.c
cc1: warnings being treated as errors
main.c: In function 'main':
main.c:81: error: ignoring return value of 'daemon', declared with attribute
warn_unused_result
Other fix is missing header file
gcc -Wall -O2 -g -D_REENTRANT -D__LINUX__ -DVERSION=0.16 -DBUILD=1 -I.
-I./include -I./rstplib -c -o
netif_utils.o netif_utils.c
netif_utils.c: In function 'get_bridge_portno':
netif_utils.c:130: error: 'INT_MAX' undeclared (first use in this function)
netif_utils.c:130: error: (Each undeclared identifier is reported only once
netif_utils.c:130: error: for each function it appears in.)
diff -Naur rstp/bridge_track.c rstp-new/bridge_track.c
--- rstp/bridge_track.c 2009-03-28 15:27:04.000000000 +0200
+++ rstp-new/bridge_track.c 2009-03-28 15:30:15.000000000 +0200
@@ -386,6 +386,7 @@
static int stp_enabled(struct ifdata *br)
{
char path[40 + IFNAMSIZ];
+ int ret;
sprintf(path, "/sys/class/net/%s/bridge/stp_state", br->name);
FILE *f = fopen(path, "r");
if (!f) {
@@ -393,7 +394,11 @@
return 0;
}
int enabled = 0;
- fscanf(f, "%d", &enabled);
+ ret = fscanf(f, "%d", &enabled);
+ if (!ret) {
+ LOG("%s, stp_state parsing error", path);
+ return 0;
+ }
fclose(f);
INFO("STP on %s state %d", br->name, enabled);
diff -Naur rstp/ctl_main.c rstp-new/ctl_main.c
--- rstp/ctl_main.c 2009-03-28 15:27:04.000000000 +0200
+++ rstp-new/ctl_main.c 2009-03-28 15:26:33.000000000 +0200
@@ -16,6 +16,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <limits.h>
#include "ctl_socket_client.h"
#include "ctl_functions.h"
diff -Naur rstp/main.c rstp-new/main.c
--- rstp/main.c 2009-03-28 15:27:04.000000000 +0200
+++ rstp-new/main.c 2009-03-28 15:32:12.000000000 +0200
@@ -42,7 +42,7 @@
int main(int argc, char *argv[])
{
- int c;
+ int c,ret;
while ((c = getopt(argc, argv, "dv:")) != -1) {
switch (c) {
case 'd':
@@ -78,7 +78,11 @@
return -1;
}
openlog("rstpd", 0, LOG_DAEMON);
- daemon(0, 0);
+ ret = daemon(0, 0);
+ if (ret) {
+ ERROR("daemon() failed");
+ return -1;
+ }
is_daemon = 1;
fprintf(f, "%d", getpid());
fclose(f);
diff -Naur rstp/netif_utils.c rstp-new/netif_utils.c
--- rstp/netif_utils.c 2009-03-28 15:27:04.000000000 +0200
+++ rstp-new/netif_utils.c 2009-03-28 15:26:06.000000000 +0200
@@ -32,6 +32,7 @@
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <fcntl.h>
+#include <limits.h>
#include <net/if.h>
#include <linux/if_ether.h>
_______________________________________________
Bridge mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/bridge