Make it compile on FreeBSD.

This commit is contained in:
Li-Wen Hsu 2013-12-17 02:30:36 +08:00
parent d39a4e43c6
commit efdaafe0b2
6 changed files with 25 additions and 15 deletions

View File

@ -1,13 +1,13 @@
srcdir=. srcdir=.
CFLAGS=-g -O2 CFLAGS=-I/usr/local/include
LDFLAGS= LDFLAGS=-L/usr/local/lib
CPPFLAGS= CPPFLAGS=
DEFS=-DHAVE_CONFIG_H DEFS=-DHAVE_CONFIG_H
COMPILE_FLAGS=${CFLAGS} ${CPPFLAGS} ${DEFS} -Wall -Wextra -Werror -Wno-deprecated -fno-strict-aliasing -fno-omit-frame-pointer -ggdb COMPILE_FLAGS=${CFLAGS} ${CPPFLAGS} ${DEFS} -Wall -Wextra -Werror -fno-strict-aliasing -fno-omit-frame-pointer -ggdb
EXTRA_LIBS= -lreadline -lrt -lconfig EXTRA_LIBS=
LOCAL_LDFLAGS=-lm -lcrypto -lz -lssl -rdynamic -ggdb ${EXTRA_LIBS} LOCAL_LDFLAGS=-lm -lcrypto -lz -lssl -rdynamic -ggdb -lconfig -lreadline -lexecinfo ${EXTRA_LIBS}
LINK_FLAGS=${LDFLAGS} ${LOCAL_LDFLAGS} LINK_FLAGS=${LDFLAGS} ${LOCAL_LDFLAGS}
HEADERS= ${srcdir}/constants.h ${srcdir}/include.h ${srcdir}/interface.h ${srcdir}/LICENSE.h ${srcdir}/loop.h ${srcdir}/mtproto-client.h ${srcdir}/mtproto-common.h ${srcdir}/net.h ${srcdir}/no-preview.h ${srcdir}/queries.h ${srcdir}/structures.h ${srcdir}/telegram.h ${srcdir}/tree.h ${srcdir}/config.h ${srcdir}/binlog.h HEADERS= ${srcdir}/constants.h ${srcdir}/include.h ${srcdir}/interface.h ${srcdir}/LICENSE.h ${srcdir}/loop.h ${srcdir}/mtproto-client.h ${srcdir}/mtproto-common.h ${srcdir}/net.h ${srcdir}/no-preview.h ${srcdir}/queries.h ${srcdir}/structures.h ${srcdir}/telegram.h ${srcdir}/tree.h ${srcdir}/config.h ${srcdir}/binlog.h

View File

@ -4,10 +4,10 @@ CFLAGS=@CFLAGS@
LDFLAGS=@LDFLAGS@ LDFLAGS=@LDFLAGS@
CPPFLAGS=@CPPFLAGS@ CPPFLAGS=@CPPFLAGS@
DEFS=@DEFS@ DEFS=@DEFS@
COMPILE_FLAGS=${CFLAGS} ${CPPFLAGS} ${DEFS} -Wall -Wextra -Werror -Wno-deprecated -fno-strict-aliasing -fno-omit-frame-pointer -ggdb COMPILE_FLAGS=${CFLAGS} ${CPPFLAGS} ${DEFS} -Wall -Wextra -Werror -fno-strict-aliasing -fno-omit-frame-pointer -ggdb
EXTRA_LIBS=@EXTRA_LIBS@ EXTRA_LIBS=@EXTRA_LIBS@
LOCAL_LDFLAGS=-lm -lcrypto -lz -lssl -rdynamic -ggdb ${EXTRA_LIBS} LOCAL_LDFLAGS=-lm -lcrypto -lz -lssl -rdynamic -ggdb -lconfig -lreadline -lexecinfo ${EXTRA_LIBS}
LINK_FLAGS=${LDFLAGS} ${LOCAL_LDFLAGS} LINK_FLAGS=${LDFLAGS} ${LOCAL_LDFLAGS}
HEADERS= ${srcdir}/constants.h ${srcdir}/include.h ${srcdir}/interface.h ${srcdir}/LICENSE.h ${srcdir}/loop.h ${srcdir}/mtproto-client.h ${srcdir}/mtproto-common.h ${srcdir}/net.h ${srcdir}/no-preview.h ${srcdir}/queries.h ${srcdir}/structures.h ${srcdir}/telegram.h ${srcdir}/tree.h ${srcdir}/config.h ${srcdir}/binlog.h HEADERS= ${srcdir}/constants.h ${srcdir}/include.h ${srcdir}/interface.h ${srcdir}/LICENSE.h ${srcdir}/loop.h ${srcdir}/mtproto-client.h ${srcdir}/mtproto-common.h ${srcdir}/net.h ${srcdir}/no-preview.h ${srcdir}/queries.h ${srcdir}/structures.h ${srcdir}/telegram.h ${srcdir}/tree.h ${srcdir}/config.h ${srcdir}/binlog.h

View File

@ -24,7 +24,7 @@
#define HAVE_MALLOC 1 #define HAVE_MALLOC 1
/* Define to 1 if you have the <malloc.h> header file. */ /* Define to 1 if you have the <malloc.h> header file. */
#define HAVE_MALLOC_H 1 /* #undef HAVE_MALLOC_H */
/* Define to 1 if you have the <memory.h> header file. */ /* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1 #define HAVE_MEMORY_H 1

1
loop.c
View File

@ -20,6 +20,7 @@
#include "config.h" #include "config.h"
#include <assert.h> #include <assert.h>
#define _WITH_GETLINE
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -26,6 +26,7 @@
#include <signal.h> #include <signal.h>
#include <unistd.h> #include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
#include <sys/endian.h>
#include <sys/types.h> #include <sys/types.h>
#include <aio.h> #include <aio.h>
#include <netdb.h> #include <netdb.h>
@ -34,6 +35,7 @@
#include <openssl/pem.h> #include <openssl/pem.h>
#include <openssl/sha.h> #include <openssl/sha.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h> #include <netinet/tcp.h>
#include <poll.h> #include <poll.h>
#include <zlib.h> #include <zlib.h>
@ -46,6 +48,10 @@
#include "structures.h" #include "structures.h"
#include "binlog.h" #include "binlog.h"
#if defined(__FreeBSD__)
#define __builtin_bswap32(x) bswap32(x)
#endif
#define sha1 SHA1 #define sha1 SHA1
#include "mtproto-common.h" #include "mtproto-common.h"
@ -1589,7 +1595,7 @@ int rpc_execute (struct connection *c, int op, int len) {
logprintf ( "have %d Response bytes\n", Response_len); logprintf ( "have %d Response bytes\n", Response_len);
} }
#ifndef __MACH__ #if !defined(__MACH__) && !defined(__FreeBSD__)
setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4); setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4);
#endif #endif
int o = c_state; int o = c_state;
@ -1597,19 +1603,19 @@ int rpc_execute (struct connection *c, int op, int len) {
switch (o) { switch (o) {
case st_reqpq_sent: case st_reqpq_sent:
process_respq_answer (c, Response/* + 8*/, Response_len/* - 12*/); process_respq_answer (c, Response/* + 8*/, Response_len/* - 12*/);
#ifndef __MACH__ #if !defined(__MACH__) && !defined(__FreeBSD__)
setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4); setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4);
#endif #endif
return 0; return 0;
case st_reqdh_sent: case st_reqdh_sent:
process_dh_answer (c, Response/* + 8*/, Response_len/* - 12*/); process_dh_answer (c, Response/* + 8*/, Response_len/* - 12*/);
#ifndef __MACH__ #if !defined(__MACH__) && !defined(__FreeBSD__)
setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4); setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4);
#endif #endif
return 0; return 0;
case st_client_dh_sent: case st_client_dh_sent:
process_auth_complete (c, Response/* + 8*/, Response_len/* - 12*/); process_auth_complete (c, Response/* + 8*/, Response_len/* - 12*/);
#ifndef __MACH__ #if !defined(__MACH__) && !defined(__FreeBSD__)
setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4); setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4);
#endif #endif
return 0; return 0;
@ -1619,7 +1625,7 @@ int rpc_execute (struct connection *c, int op, int len) {
} else { } else {
process_rpc_message (c, (void *)(Response/* + 8*/), Response_len/* - 12*/); process_rpc_message (c, (void *)(Response/* + 8*/), Response_len/* - 12*/);
} }
#ifndef __MACH__ #if !defined(__MACH__) && !defined(__FreeBSD__)
setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4); setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4);
#endif #endif
return 0; return 0;
@ -1647,7 +1653,7 @@ int tc_becomes_ready (struct connection *c) {
assert (write_out (c, &byte, 1) == 1); assert (write_out (c, &byte, 1) == 1);
flush_out (c); flush_out (c);
#ifndef __MACH__ #if !defined(__MACH__) && !defined(__FreeBSD__)
setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4); setsockopt (c->fd, IPPROTO_TCP, TCP_QUICKACK, (int[]){0}, 4);
#endif #endif
int o = c_state; int o = c_state;

5
net.c
View File

@ -21,8 +21,11 @@
#include <stdlib.h> #include <stdlib.h>
#include <assert.h> #include <assert.h>
#include <netdb.h> #include <netdb.h>
#include <netinet/in.h>
#include <netinet/tcp.h> #include <netinet/tcp.h>
#include <sys/fcntl.h> #include <sys/fcntl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h> #include <errno.h>
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
@ -37,7 +40,7 @@
#include "tree.h" #include "tree.h"
#include "interface.h" #include "interface.h"
#ifdef __MACH__ #if defined(__MACH__) || defined(__FreeBSD__)
#define POLLRDHUP 0 #define POLLRDHUP 0
#endif #endif