Richard Fuchs
3069720052
fix copy-pasto
13 years ago
Richard Fuchs
2872d18f43
implement call_answer
13 years ago
Richard Fuchs
5d1c2aabed
support some flags passed from rtpproxy-ng module
13 years ago
Richard Fuchs
5accfd0751
dont return ipv6 address by default
13 years ago
Richard Fuchs
011e0e7e4e
unify call_update_udp and call_lookup_udp
13 years ago
Richard Fuchs
e5d7341bdc
unify call_request and call_lookup
13 years ago
Richard Fuchs
6fd39168f1
obsolete infohash
13 years ago
Richard Fuchs
ecc37e4b2a
fix segfault related to null log_info
13 years ago
Richard Fuchs
b66809bb8c
use new struct stream_input where appropriate
13 years ago
Richard Fuchs
8fe26b2d3b
obsolete the "mediatype" element
13 years ago
Richard Fuchs
9589a73b42
obsolete call{ed,ing}_agent element
13 years ago
Richard Fuchs
337167faf7
use enum stream_address_format
13 years ago
Richard Fuchs
923a7bdf5a
correctly mark ip6 address
13 years ago
Richard Fuchs
c75394d3cd
first take on SDP rewriting
13 years ago
Richard Fuchs
2b60a82e36
more mass deployment of the new "str" object - does this thing still work? now really?
13 years ago
Richard Fuchs
60da1bc445
mass deployment of the new "str" object - does this thing still work?
13 years ago
Richard Fuchs
8db7ab6c94
introduce kamailio-style "str" data type/struct
...
also remove several occurences of "const" that keep biting me in the rear.
13 years ago
Richard Fuchs
ccfa304354
sdp_streams() initial implementation
13 years ago
Richard Fuchs
f6a336ce89
prefer objects on stack instead of heap when possible
13 years ago
Richard Fuchs
a2ac8075a9
WIP on SDP parser
13 years ago
Richard Fuchs
be4a6c7d58
make my life easier with a smart_ntop_port() function
13 years ago
Richard Fuchs
5ea5dcddfa
call_offer()/answer stubs
13 years ago
Richard Fuchs
bca25d7700
make call_lookup_udp() remember viabranches like call_update_udp()
13 years ago
Richard Fuchs
ef521030ab
make viabranch in udp lookup optional
13 years ago
Richard Fuchs
ed7f8dda04
remove obsolete code; add more locking
13 years ago
Richard Fuchs
644e5ba9df
calculate proper "TTL"
13 years ago
Richard Fuchs
bbb8327750
implement udp Q command
13 years ago
Richard Fuchs
a99ada4e41
add more logging to xmlrpc call mechanism
13 years ago
Richard Fuchs
eda487e579
un-shoot myself in the foot, gna
13 years ago
Richard Fuchs
8092a56761
another locking fix
13 years ago
Richard Fuchs
bb054ec00b
fix more locking problems
13 years ago
Richard Fuchs
3a26e9fceb
fix possible race condition
13 years ago
Richard Fuchs
39207a0859
dont fail on zero port in tcp controller
13 years ago
Richard Fuchs
37013fd148
IPv6 socket requires IPv4 PKTINFO for setting source address correctly
13 years ago
Richard Fuchs
59c5ffd0da
fix reference count leak
13 years ago
Richard Fuchs
08d40d8ac5
add debian buildflags and address generated warnings
13 years ago
Richard Fuchs
594297a3ea
use string chunk for all the little call-related strings
13 years ago
Richard Fuchs
afb1f5de95
need to lock the call a bit earlier
13 years ago
Richard Fuchs
d8ef1885cc
split callstream_init into callstream_new for redis module
13 years ago
Richard Fuchs
c291d1220b
fix logging inconsistency
13 years ago
Richard Fuchs
72840c8d1d
reorder calls to redis for proper locking
13 years ago
Richard Fuchs
d20d747a63
since xmlrpc is still segfaulting even in its own process, disable core dumps in the child and retry the xmlrpc call up to 3 times if the child terminates abnormally. jumping through hoops ftw!
13 years ago
Richard Fuchs
2ad1d6f65e
xmlrpc still segfaulting. leaves no choice but to fork out a new process, ugh.
13 years ago
Richard Fuchs
f4833f6b74
xmlrpc calls still causing segfaults, lets try with a dedicated client object per call... i'm starting to dislike this library
13 years ago
Richard Fuchs
fabcb53a3b
the curl xmlrpc transport isnt playing nicely - revert to default
13 years ago
Richard Fuchs
08c764c748
cant decref null references
13 years ago
Richard Fuchs
0f6d898171
add proper locking to callstream setup procedure
13 years ago
Richard Fuchs
94f2f320a6
actually the call struct needs neither linked flag nor shutdown flag due to the sequence of events and locking
13 years ago
Richard Fuchs
d8776907f8
need to lock the callstream a bit earlier
13 years ago
Richard Fuchs
ab3b8c60f0
fix a silly, threading-unrelated, statistics-skewing bug
13 years ago
Richard Fuchs
45f34b9784
turns out you actually have to free/destroy mutexes. who woulda thunk?
13 years ago
Richard Fuchs
54353022ff
om nom nom memory leak... well, reference count leak
13 years ago
Richard Fuchs
b7a68659b1
analoguous to the last race, call_destroy() must not assume that it's getting the last reference to the call
13 years ago
Richard Fuchs
ddffe5eeec
global xmlrpc init must be done prior to any threading
13 years ago
Richard Fuchs
d1fbf9bef9
alarms arent usable in a threaded environment, so use curl internal timeout instead
13 years ago
Richard Fuchs
feeeee2fab
must extract needed tags for xmlrpc call teardown prior to destroying the calls
13 years ago
Richard Fuchs
973d92d9c7
moving call teardown due to timeout to a separate thread
13 years ago
Richard Fuchs
2dd6cfe68c
keeping the lock hold time to a minimum in lengthy calls_status operation
13 years ago
Richard Fuchs
8c2c69f5e6
make the stats collection thread-safe
13 years ago
Richard Fuchs
d9e09f33bc
lets try with a lot of large, nested, naive locks
13 years ago
Richard Fuchs
ae5a36f5ce
getting rid of call->log_info and introducing call->lock
13 years ago
Richard Fuchs
900f76a17e
make the callmaster struct private - also requires update to redis module
13 years ago
Richard Fuchs
aeb5398b0d
granular lock for "ports used" bit field
13 years ago
Richard Fuchs
a8680cc2d9
TOS for ipv6 needs an int to work
13 years ago
Richard Fuchs
0b0b41e67f
gonna need more than one lock in callmaster, so rename the one we have
13 years ago
Richard Fuchs
4588e13a76
getting rid of more global variables
13 years ago
Richard Fuchs
e033d1da1c
EINTR requires special handling
13 years ago
Richard Fuchs
db15692f21
using thread-local-storage for eliminating constant calls to time()
13 years ago
Richard Fuchs
5f5e158d76
private structs make for safer threading
13 years ago
Richard Fuchs
ebd2893e96
missing a streambuf lock here
13 years ago
Richard Fuchs
7dc00bd258
making timers thread-safe
13 years ago
Richard Fuchs
de33b8da40
add basic locking to callmaster struct
13 years ago
Richard Fuchs
8e5ad59558
make the obj_ primitives more liberal to make for easier calling
13 years ago
Richard Fuchs
145bbd1f7c
Prepare for multi-threaded operation
...
Introduce generic "objects" with reference counting primitives and automatic
resource deallocation when no refs are left ("garbage collection"). Overhaul
poller framework to make extensive use of these objects to allow for future
thread-concurrent operation.
No locking added anywhere yet except in poller. Poller is still not 100%
thread safe, but close.
Valgrind reports no errors or memleaks.
13 years ago
Richard Fuchs
2594da3b45
dont poll kernel list when table couldnt be opened
13 years ago
Richard Fuchs
8d50923508
good bye poll(), hello epoll_*()
13 years ago
Richard Fuchs
2a8c07df0e
take rtcp ports into account when checking for timeouts
13 years ago
Richard Fuchs
70ac6a274c
take 0-byte packets into consideration when updating peer info for NAT'd streams
13 years ago
Richard Fuchs
24cf5a0ca0
dump packet stats upon call teardown
13 years ago
Richard Fuchs
b6650a9d78
increase max udp packet len to 8192 and add warning message if the limit is hit
13 years ago
Richard Fuchs
e4575cf31f
who knew that zero-length udp packets are valid?
13 years ago
Richard Fuchs
33b7872115
be a bit more clear in the read error message
13 years ago
Richard Fuchs
35404af428
log error code upon RTP socket error
13 years ago
Richard Fuchs
dc7517121d
remove uuid helper code
13 years ago