skullernet / openffa

Free-for-all deathmatch mod for Quake 2
GNU General Public License v2.0
22 stars 11 forks source link

Fails to build on FreeBSD 13.1 #11

Closed isadon closed 1 year ago

isadon commented 2 years ago

Running gmake on openffa repo yields:

g_bans.c:90:19: error: use of undeclared identifier 'AF_INET'
    if (inet_pton(AF_INET, s, addr) == 1) {
                  ^
g_bans.c:91:18: error: use of undeclared identifier 'AF_INET'
        family = AF_INET;
                 ^
g_bans.c:92:26: error: use of undeclared identifier 'AF_INET6'
    } else if (inet_pton(AF_INET6, s, addr) == 1) {
                         ^
g_bans.c:93:18: error: use of undeclared identifier 'AF_INET6'
        family = AF_INET6;
                 ^
g_bans.c:99:16: error: use of undeclared identifier 'AF_INET6'
        bits = ADDR_BITS(family);
               ^
g_bans.c:56:42: note: expanded from macro 'ADDR_BITS'
#define ADDR_BITS(family)   ((family) == AF_INET6 ? 128 : 32)
                                         ^
g_bans.c:101:32: error: use of undeclared identifier 'AF_INET6'
        if (bits < 0 || bits > ADDR_BITS(family))
                               ^
g_bans.c:56:42: note: expanded from macro 'ADDR_BITS'
#define ADDR_BITS(family)   ((family) == AF_INET6 ? 128 : 32)
                                         ^
g_bans.c:128:29: error: use of undeclared identifier 'AF_INET6'
    memcpy(&ip->addr, addr, ADDR_SIZE(family));
                            ^
g_bans.c:57:42: note: expanded from macro 'ADDR_SIZE'
#define ADDR_SIZE(family)   ((family) == AF_INET6 ?  16 :  4)
                                         ^
g_bans.c:129:29: error: use of undeclared identifier 'AF_INET6'
    memcpy(&ip->mask, mask, ADDR_SIZE(family));
                            ^
g_bans.c:57:42: note: expanded from macro 'ADDR_SIZE'
#define ADDR_SIZE(family)   ((family) == AF_INET6 ?  16 :  4)
                                         ^
g_bans.c:155:23: error: use of undeclared identifier 'AF_INET6'
        if (inet_pton(AF_INET6, s, addr) == 1)
                      ^
g_bans.c:156:20: error: use of undeclared identifier 'AF_INET6'
            return AF_INET6;
                   ^
g_bans.c:161:23: error: use of undeclared identifier 'AF_INET'
        if (inet_pton(AF_INET, s, addr) == 1)
                      ^
g_bans.c:162:20: error: use of undeclared identifier 'AF_INET'
            return AF_INET;
                   ^
g_bans.c:200:27: error: use of undeclared identifier 'AF_INET6'
        if (ip->family == AF_INET6) {
                          ^
g_bans.c:345:32: error: use of undeclared identifier 'AF_INET6'
    make_mask(&mask, family == AF_INET6 ? 64 : 32);
                               ^
g_bans.c:353:21: error: use of undeclared identifier 'AF_INET6'
    for (i = 0; i < ADDR_BITS(family) && mask->u8[i >> 3] & (1 << (7 - (i & 7))); i++)
                    ^
g_bans.c:56:42: note: expanded from macro 'ADDR_BITS'
#define ADDR_BITS(family)   ((family) == AF_INET6 ? 128 : 32)
                                         ^
g_bans.c:387:38: error: use of undeclared identifier 'AF_INET6'
            memcmp(&ip->addr, &addr, ADDR_SIZE(family)) ||
                                     ^
g_bans.c:57:42: note: expanded from macro 'ADDR_SIZE'
#define ADDR_SIZE(family)   ((family) == AF_INET6 ?  16 :  4)
                                         ^
g_bans.c:388:38: error: use of undeclared identifier 'AF_INET6'
            memcmp(&ip->mask, &mask, ADDR_SIZE(family))) {
                                     ^
g_bans.c:57:42: note: expanded from macro 'ADDR_SIZE'
#define ADDR_SIZE(family)   ((family) == AF_INET6 ?  16 :  4)
                                         ^
17 errors generated.
gmake: *** [Makefile:104: g_bans.o] Error 1

I believe these should be easy to fix. opentdm repo builds fine.

Update: Little bit of digging shows that some missing includes are needed to g_bans.c on FreeBSD:

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

as per man inet_pton

skullernet commented 2 years ago

I think only sys/socket.h is necessary, please test.

isadon commented 1 year ago

Builds correctly now.