Skip to content

Commit cafa674

Browse files
committed
Update POSIX per recent changes
Include simplification, got/lost/update socket arg removal, lock sanitization, HTTP keep-alive updates.
1 parent 1909b7c commit cafa674

22 files changed

+149
-121
lines changed

core/pubnub_alloc_std.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,18 +104,18 @@ void pballoc_free_at_last(pubnub_t *pb)
104104
{
105105
PUBNUB_ASSERT_OPT(pb != NULL);
106106

107+
pubnub_mutex_lock(pb->monitor);
107108
pubnub_mutex_init_static(m_lock);
108109
pubnub_mutex_lock(m_lock);
109-
pubnub_mutex_lock(pb->monitor);
110110

111111
PUBNUB_ASSERT_OPT(pb->state == PBS_NULL);
112112

113113
pbcc_deinit(&pb->core);
114114
pbpal_free(pb);
115115
remove_allocated(pb);
116-
pubnub_mutex_unlock(m_lock);
117116
pubnub_mutex_unlock(pb->monitor);
118117
pubnub_mutex_destroy(pb->monitor);
118+
pubnub_mutex_unlock(m_lock);
119119
free(pb);
120120
}
121121

core/pubnub_generate_uuid_v3_md5.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/* -*- c-file-style:"stroustrup"; indent-tabs-mode: nil -*- */
2-
#include "pubnub_generate_uuid.h"
2+
#include "core/pubnub_generate_uuid.h"
33

4-
#include "pbmd5.h"
5-
#include "pubnub_assert.h"
4+
#include "lib/md5/pbmd5.h"
5+
#include "core/pubnub_assert.h"
66

77
#include <stdlib.h>
88

core/samples/pubnub_sync_publish_retry.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/* -*- c-file-style:"stroustrup"; indent-tabs-mode: nil -*- */
22
#include "pubnub_sync.h"
33

4-
#include "pubnub_helper.h"
5-
#include "pubnub_timers.h"
4+
#include "core/pubnub_helper.h"
5+
#include "core/pubnub_timers.h"
66

77
#include <stdio.h>
88
#include <time.h>

core/samples/pubnub_sync_subloop_sample.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/* -*- c-file-style:"stroustrup"; indent-tabs-mode: nil -*- */
22
#include "pubnub_sync.h"
33

4-
#include "pubnub_sync_subscribe_loop.h"
5-
#include "pubnub_helper.h"
4+
#include "core/pubnub_sync_subscribe_loop.h"
5+
#include "core/pubnub_helper.h"
66

77
#include <stdio.h>
88

cpp/fntest/pubnub_fntest.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "pubnub.hpp"
66

77
extern "C" {
8-
#include "pubnub_helper.h"
8+
#include "core/pubnub_helper.h"
99
}
1010

1111
#include <vector>

cpp/posix.mk

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ SOURCEFILES += ../posix/monotonic_clock_get_time_posix.c
1717
LDLIBS=-lrt -lpthread
1818
endif
1919

20-
CFLAGS =-g -I ../core -I ../posix -I . -I ../lib/base64 -I ../lib/md5 -Wall -D PUBNUB_THREADSAFE
20+
CFLAGS =-g -I .. -I ../posix -I . -Wall -D PUBNUB_THREADSAFE
2121
# -g enables debugging, remove to get a smaller executable
2222

2323

@@ -27,7 +27,6 @@ cpp98: pubnub_sync_sample pubnub_callback_sample cancel_subscribe_sync_sample su
2727

2828
cpp11: pubnub_callback_cpp11_sample futres_nesting_callback_cpp11 fntest_runner pubnub_callback_cpp11_subloop_sample
2929

30-
3130
pubnub_sync_sample: samples/pubnub_sample.cpp $(SOURCEFILES) ../core/pubnub_ntf_sync.c pubnub_futres_sync.cpp
3231
$(CXX) -o $@ $(CFLAGS) samples/pubnub_sample.cpp ../core/pubnub_ntf_sync.c pubnub_futres_sync.cpp $(SOURCEFILES) $(LDLIBS)
3332

@@ -40,26 +39,38 @@ futres_nesting_sync: samples/futres_nesting.cpp $(SOURCEFILES) ../core/pubnub_nt
4039
pubnub_sync_subloop_sample: samples/pubnub_subloop_sample.cpp $(SOURCEFILES) ../core/pubnub_ntf_sync.c pubnub_futres_sync.cpp
4140
$(CXX) -o $@ $(CFLAGS) samples/pubnub_subloop_sample.cpp ../core/pubnub_ntf_sync.c pubnub_futres_sync.cpp $(SOURCEFILES) $(LDLIBS)
4241

43-
pubnub_callback_sample: samples/pubnub_sample.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_posix.cpp
44-
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) -D PUBNUB_LOG_LEVEL=PUBNUB_LOG_LEVEL_TRACE samples/pubnub_sample.cpp ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS) $(LDLIBS)
42+
##
43+
# The socket poller module to use. You should use the `poll` poller it
44+
# doesn't have the weird restrictions of `select` poller. OTOH,
45+
# select() on Windows is compatible w/BSD sockets poll(), while
46+
# WSAPoll() has some weird differences to poll(). The names are the
47+
# same until the last `_`, then it's `poll` vs `select.
48+
SOCKET_POLLER_C=../lib/sockets/pbpal_ntf_callback_poller_poll.c
49+
SOCKET_POLLER_OBJ=pbpal_ntf_callback_poller_poll.obj
50+
51+
CALLBACK_INTF_SOURCEFILES= ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c ../core/pubnub_timer_list.c ../lib/sockets/pbpal_adns_sockets.c $(SOCKET_POLLER_C) ../core/pbpal_ntf_callback_queue.c ../core/pbpal_ntf_callback_admin.c ../core/pbpal_ntf_callback_handle_timer_list.c ../core/pubnub_callback_subscribe_loop.c
52+
CALLBACK_INTF_OBJFILES=pubnub_ntf_callback_windows.obj pubnub_get_native_socket.obj pubnub_timer_list.obj pbpal_adns_sockets.obj $(SOCKET_POLLER_OBJ) pbpal_ntf_callback_queue.obj pbpal_ntf_callback_admin.obj pbpal_ntf_callback_handle_timer_list.obj pubnub_callback_subscribe_loop.obj
53+
54+
pubnub_callback_sample: samples/pubnub_sample.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp
55+
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) -D PUBNUB_LOG_LEVEL=PUBNUB_LOG_LEVEL_TRACE samples/pubnub_sample.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS) $(LDLIBS)
4556

46-
pubnub_callback_cpp11_sample: samples/pubnub_sample.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_cpp11.cpp
47-
$(CXX) -o $@ -std=c++11 -D PUBNUB_CALLBACK_API $(CFLAGS) -D PUBNUB_LOG_LEVEL=PUBNUB_LOG_LEVEL_TRACE samples/pubnub_sample.cpp ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_cpp11.cpp $(SOURCEFILES) $(LDLIBS)
57+
pubnub_callback_cpp11_sample: samples/pubnub_sample.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_cpp11.cpp
58+
$(CXX) -o $@ -std=c++11 -D PUBNUB_CALLBACK_API $(CFLAGS) -D PUBNUB_LOG_LEVEL=PUBNUB_LOG_LEVEL_TRACE samples/pubnub_sample.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_cpp11.cpp $(SOURCEFILES) $(LDLIBS)
4859

49-
subscribe_publish_callback_sample: samples/subscribe_publish_callback_sample.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_posix.cpp
50-
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/subscribe_publish_callback_sample.cpp ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
60+
subscribe_publish_callback_sample: samples/subscribe_publish_callback_sample.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp
61+
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/subscribe_publish_callback_sample.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
5162

52-
futres_nesting_callback: samples/futres_nesting.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_posix.cpp
53-
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/futres_nesting.cpp ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
63+
futres_nesting_callback: samples/futres_nesting.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp
64+
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/futres_nesting.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
5465

55-
futres_nesting_callback_cpp11: samples/futres_nesting.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_cpp11.cpp
56-
$(CXX) -o $@ -std=c++11 -D PUBNUB_CALLBACK_API $(CFLAGS) samples/futres_nesting.cpp ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_cpp11.cpp $(SOURCEFILES) $(LDLIBS)
66+
futres_nesting_callback_cpp11: samples/futres_nesting.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_cpp11.cpp
67+
$(CXX) -o $@ -std=c++11 -D PUBNUB_CALLBACK_API $(CFLAGS) samples/futres_nesting.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_cpp11.cpp $(SOURCEFILES) $(LDLIBS)
5768

58-
pubnub_callback_subloop_sample: samples/pubnub_subloop_sample.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_posix.cpp
59-
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/pubnub_subloop_sample.cpp ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
69+
pubnub_callback_subloop_sample: samples/pubnub_subloop_sample.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp
70+
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/pubnub_subloop_sample.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
6071

61-
pubnub_callback_cpp11_subloop_sample: samples/pubnub_subloop_sample.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_cpp11.cpp
62-
$(CXX) -o $@ -std=c++11 -D PUBNUB_CALLBACK_API $(CFLAGS) samples/pubnub_subloop_sample.cpp ../core/pubnub_timer_list.c ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c pubnub_futres_cpp11.cpp $(SOURCEFILES) $(LDLIBS)
72+
pubnub_callback_cpp11_subloop_sample: samples/pubnub_subloop_sample.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_cpp11.cpp
73+
$(CXX) -o $@ -std=c++11 -D PUBNUB_CALLBACK_API $(CFLAGS) samples/pubnub_subloop_sample.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_cpp11.cpp $(SOURCEFILES) $(LDLIBS)
6374

6475
fntest_runner: fntest/pubnub_fntest_runner.cpp $(SOURCEFILES) ../core/pubnub_ntf_sync.c pubnub_futres_sync.cpp fntest/pubnub_fntest.cpp fntest/pubnub_fntest_basic.cpp fntest/pubnub_fntest_medium.cpp
6576
$(CXX) -o $@ -std=c++11 -D PUBNUB_LOG_LEVEL=PUBNUB_LOG_LEVEL_TRACE $(CFLAGS) fntest/pubnub_fntest_runner.cpp ../core/pubnub_ntf_sync.c pubnub_futres_sync.cpp fntest/pubnub_fntest.cpp fntest/pubnub_fntest_basic.cpp fntest/pubnub_fntest_medium.cpp $(SOURCEFILES) $(LDLIBS)

cpp/posix_openssl.mk

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
SOURCEFILES = ../core/pubnub_pubsubapi.c ../core/pubnub_coreapi.c ../core/pubnub_ccore_pubsub.c ../core/pubnub_ccore.c ../core/pubnub_netcore.c ../openssl/pbpal_openssl.c ../openssl/pbpal_resolv_and_connect_openssl.c ../openssl/pbpal_add_system_certs_posix.c ../core/pubnub_alloc_std.c ../core/pubnub_assert_std.c ../core/pubnub_generate_uuid.c ../core/pubnub_blocking_io.c ../core/pubnub_free_with_timeout_std.c ../core/pubnub_timers.c ../core/pubnub_json_parse.c ../core/pubnub_proxy.c ../core/pubnub_proxy_core.c ../core/pbhttp_digest.c ../core/pbntlm_core.c ../core/pbntlm_packer_std.c ../lib/base64/pbbase64.c ../core/pubnub_helper.c ../openssl/pubnub_version_openssl.c ../posix/pubnub_generate_uuid_posix.c ../openssl/pbpal_openssl_blocking_io.c ../core/pubnub_crypto.c ../core/pubnub_coreapi_ex.c ../openssl/pbaes256.c
1+
SOURCEFILES = ../core/pubnub_pubsubapi.c ../core/pubnub_coreapi.c ../core/pubnub_ccore_pubsub.c ../core/pubnub_ccore.c ../core/pubnub_netcore.c ../openssl/pbpal_openssl.c ../openssl/pbpal_resolv_and_connect_openssl.c ../openssl/pbpal_add_system_certs_posix.c ../core/pubnub_alloc_std.c ../core/pubnub_assert_std.c ../core/pubnub_generate_uuid.c ../core/pubnub_blocking_io.c ../core/pubnub_free_with_timeout_std.c ../core/pubnub_timers.c ../core/pubnub_json_parse.c ../core/pubnub_proxy.c ../core/pubnub_proxy_core.c ../core/pbhttp_digest.c ../lib/md5/md5.c ../core/pbntlm_core.c ../core/pbntlm_packer_std.c ../lib/base64/pbbase64.c ../core/pubnub_helper.c ../openssl/pubnub_version_openssl.c ../posix/pubnub_generate_uuid_posix.c ../openssl/pbpal_openssl_blocking_io.c ../core/pubnub_crypto.c ../core/pubnub_coreapi_ex.c ../openssl/pbaes256.c
22

33
OS := $(shell uname)
44
ifeq ($(OS),Darwin)
@@ -9,7 +9,7 @@ SOURCEFILES += ../posix/monotonic_clock_get_time_posix.c
99
LDLIBS=-lrt -lpthread -lssl -lcrypto
1010
endif
1111

12-
CFLAGS =-g -I ../core -I ../openssl -I . -I ../lib/base64 -Wall -D PUBNUB_THREADSAFE
12+
CFLAGS =-g -I .. -I ../openssl -I . -Wall -D PUBNUB_THREADSAFE
1313
# -g enables debugging, remove to get a smaller executable
1414

1515
all: openssl/pubnub_sync_sample openssl/pubnub_callback_sample openssl/pubnub_callback_cpp11_sample openssl/cancel_subscribe_sync_sample openssl/subscribe_publish_callback_sample openssl/futres_nesting_sync openssl/futres_nesting_callback openssl/futres_nesting_callback_cpp11
@@ -24,20 +24,32 @@ openssl/cancel_subscribe_sync_sample: samples/cancel_subscribe_sync_sample.cpp $
2424
openssl/futres_nesting_sync: samples/futres_nesting.cpp $(SOURCEFILES) ../core/pubnub_ntf_sync.c pubnub_futres_sync.cpp
2525
$(CXX) -o $@ $(CFLAGS) samples/futres_nesting.cpp ../core/pubnub_ntf_sync.c pubnub_futres_sync.cpp $(SOURCEFILES) $(LDLIBS)
2626

27-
openssl/pubnub_callback_sample: samples/pubnub_sample.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../openssl/pubnub_ntf_callback_posix.c ../openssl/pubnub_get_native_socket.c pubnub_futres_posix.cpp
28-
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/pubnub_sample.cpp ../core/pubnub_timer_list.c ../openssl/pubnub_ntf_callback_posix.c ../openssl/pubnub_get_native_socket.c pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
27+
##
28+
# The socket poller module to use. You should use the `poll` poller it
29+
# doesn't have the weird restrictions of `select` poller. OTOH,
30+
# select() on Windows is compatible w/BSD sockets poll(), while
31+
# WSAPoll() has some weird differences to poll(). The names are the
32+
# same until the last `_`, then it's `poll` vs `select.
33+
SOCKET_POLLER_C=../lib/sockets/pbpal_ntf_callback_poller_poll.c
34+
SOCKET_POLLER_OBJ=pbpal_ntf_callback_poller_poll.obj
2935

30-
openssl/pubnub_callback_cpp11_sample: samples/pubnub_sample.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../openssl/pubnub_ntf_callback_posix.c ../openssl/pubnub_get_native_socket.c pubnub_futres_cpp11.cpp
31-
$(CXX) -o $@ --std=c++11 -D PUBNUB_CALLBACK_API $(CFLAGS) samples/pubnub_sample.cpp ../core/pubnub_timer_list.c ../openssl/pubnub_ntf_callback_posix.c ../openssl/pubnub_get_native_socket.c pubnub_futres_cpp11.cpp $(SOURCEFILES) $(LDLIBS)
36+
CALLBACK_INTF_SOURCEFILES= ../posix/pubnub_ntf_callback_posix.c ../posix/pubnub_get_native_socket.c ../core/pubnub_timer_list.c $(SOCKET_POLLER_C) ../core/pbpal_ntf_callback_queue.c ../core/pbpal_ntf_callback_admin.c ../core/pbpal_ntf_callback_handle_timer_list.c ../core/pubnub_callback_subscribe_loop.c
37+
CALLBACK_INTF_OBJFILES=pubnub_ntf_callback_windows.obj pubnub_get_native_socket.obj pubnub_timer_list.obj pbpal_adns_sockets.obj $(SOCKET_POLLER_OBJ) pbpal_ntf_callback_queue.obj pbpal_ntf_callback_admin.obj pbpal_ntf_callback_handle_timer_list.obj pubnub_callback_subscribe_loop.obj
3238

33-
openssl/subscribe_publish_callback_sample: samples/subscribe_publish_callback_sample.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../openssl/pubnub_ntf_callback_posix.c ../openssl/pubnub_get_native_socket.c pubnub_futres_posix.cpp
34-
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/subscribe_publish_callback_sample.cpp ../core/pubnub_timer_list.c ../openssl/pubnub_ntf_callback_posix.c ../openssl/pubnub_get_native_socket.c pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
39+
openssl/pubnub_callback_sample: samples/pubnub_sample.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp
40+
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/pubnub_sample.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
3541

36-
openssl/futres_nesting_callback: samples/futres_nesting.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../openssl/pubnub_ntf_callback_posix.c ../openssl/pubnub_get_native_socket.c pubnub_futres_posix.cpp
37-
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/futres_nesting.cpp ../core/pubnub_timer_list.c ../openssl/pubnub_ntf_callback_posix.c ../openssl/pubnub_get_native_socket.c pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
42+
openssl/pubnub_callback_cpp11_sample: samples/pubnub_sample.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_cpp11.cpp
43+
$(CXX) -o $@ --std=c++11 -D PUBNUB_CALLBACK_API $(CFLAGS) samples/pubnub_sample.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_cpp11.cpp $(SOURCEFILES) $(LDLIBS)
3844

39-
openssl/futres_nesting_callback_cpp11: samples/futres_nesting.cpp $(SOURCEFILES) ../core/pubnub_timer_list.c ../openssl/pubnub_ntf_callback_posix.c ../openssl/pubnub_get_native_socket.c pubnub_futres_cpp11.cpp
40-
$(CXX) -o $@ --std=c++11 -D PUBNUB_CALLBACK_API $(CFLAGS) samples/futres_nesting.cpp ../core/pubnub_timer_list.c ../openssl/pubnub_ntf_callback_posix.c ../openssl/pubnub_get_native_socket.c pubnub_futres_cpp11.cpp $(SOURCEFILES) $(LDLIBS)
45+
openssl/subscribe_publish_callback_sample: samples/subscribe_publish_callback_sample.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp
46+
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/subscribe_publish_callback_sample.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
47+
48+
openssl/futres_nesting_callback: samples/futres_nesting.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp
49+
$(CXX) -o $@ -D PUBNUB_CALLBACK_API $(CFLAGS) samples/futres_nesting.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_posix.cpp $(SOURCEFILES) $(LDLIBS)
50+
51+
openssl/futres_nesting_callback_cpp11: samples/futres_nesting.cpp $(SOURCEFILES) $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_cpp11.cpp
52+
$(CXX) -o $@ --std=c++11 -D PUBNUB_CALLBACK_API $(CFLAGS) samples/futres_nesting.cpp $(CALLBACK_INTF_SOURCEFILES) pubnub_futres_cpp11.cpp $(SOURCEFILES) $(LDLIBS)
4153

4254

4355
clean:

cpp/pubnub_futres_posix.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#if PUBNUB_USE_EXTERN_C
55
extern "C" {
66
#endif
7-
#include "pubnub_ntf_callback.h"
7+
#include "core/pubnub_ntf_callback.h"
88
#if PUBNUB_USE_EXTERN_C
99
}
1010
#endif

lib/sockets/pbpal_adns_sockets.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
#include "core/pubnub_assert.h"
77
#include "core/pubnub_log.h"
88

9+
#if !defined(_WIN32)
10+
#include <arpa/inet.h>
11+
#endif
12+
913
#include <stdint.h>
1014
#include <string.h>
1115

openssl/posix.mk

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ OBJFILES += monotonic_clock_get_time_posix.o
2222
LDLIBS=-lrt -lpthread -lssl -lcrypto
2323
endif
2424

25-
CFLAGS =-g -D PUBNUB_LOG_LEVEL=PUBNUB_LOG_LEVEL_ERROR -Wall -D PUBNUB_THREADSAFE -D PUBNUB_PROXY_API=$(USE_PROXY)
25+
CFLAGS = -fsanitize=thread -g -D PUBNUB_LOG_LEVEL=PUBNUB_LOG_LEVEL_TRACE -Wall -D PUBNUB_THREADSAFE -D PUBNUB_PROXY_API=$(USE_PROXY)
2626
# -g enables debugging, remove to get a smaller executable
2727
# -fsanitize=address Use AddressSanitizer
28+
# -fsanitize=thread Use ThreadSanitizer
2829

29-
INCLUDES=-I ../core -I . -I ../posix/fntest -I ../core/fntest -I ../lib/base64 -I ../lib/sockets
30+
INCLUDES=-I .. -I .
3031

3132
all: pubnub_sync_sample cancel_subscribe_sync_sample pubnub_sync_subloop_sample pubnub_callback_sample subscribe_publish_callback_sample pubnub_callback_subloop_sample pubnub_fntest pubnub_console_sync pubnub_console_callback pubnub_crypto_sync_sample
3233

0 commit comments

Comments
 (0)