Commit Graph

588 Commits (mr3.8.4.1)

Author SHA1 Message Date
Richard Fuchs 8a7f4d80ed fix another zero-tag bug
13 years ago
Richard Fuchs 67186c31e2 Revert "leave out rtcp attribute in rtcp-mux case"
13 years ago
Richard Fuchs 4628536afb Revert "test weird chrome-style rtcp attribute"
13 years ago
Richard Fuchs 31c1b4c9a8 Revert "trying to get chrome calls working"
13 years ago
Richard Fuchs e41ef22f0f Revert "trying to get chrome calls working"
13 years ago
Richard Fuchs 35d5ea7f3c trying to get chrome calls working
13 years ago
Richard Fuchs 7ac114135e trying to get chrome calls working
13 years ago
Richard Fuchs cf8a55f3af test weird chrome-style rtcp attribute
13 years ago
Richard Fuchs c7477e3fa9 leave out rtcp attribute in rtcp-mux case
13 years ago
Richard Fuchs d9b2397712 add a compile switch to drop support for ipv4-only sockets.
13 years ago
Richard Fuchs b0839891f8 apparently a zero crypto tag is valid
13 years ago
Richard Fuchs 08e60ae2ac copy rtcp-mux state when stealing peer
13 years ago
Richard Fuchs 43764b46d4 implement support for RFC 5761
13 years ago
Richard Fuchs e87787af11 change the sdp attribute lists/hashes around a bit
13 years ago
Richard Fuchs ccf9155218 fix stripping of ice_ufrag attribute
13 years ago
Richard Fuchs 4dcb6aab1f add compile flag for libsrtp vs rfc srtcp key derivation
13 years ago
Richard Fuchs de5b172f32 srtp re-invite fixes
13 years ago
Richard Fuchs e3cf5d521e reverse crypto context in/out as they were backwards
13 years ago
Richard Fuchs 3c93daa015 fix some regressions and bugs
13 years ago
Richard Fuchs cf5e4fab3e this fixes rtcp auth problems against libsrtp based clients
13 years ago
Richard Fuchs f6d91122af un-initialized key contexts after copying struct
13 years ago
Richard Fuchs 0a4418cd4b consistent use of existing macros
13 years ago
Richard Fuchs 788eb5ce67 update for redis module
13 years ago
Richard Fuchs 09dd548e01 coredump bugfix
13 years ago
Richard Fuchs d1ce4eb9a8 aes-f8 goes kernel
13 years ago
Richard Fuchs 03e120a7fb aes-f8 performance improvement
13 years ago
Richard Fuchs 372b81886b dont error on unsupported ciphers
13 years ago
Richard Fuchs a2b9d4048e core-dump and srtcp auth tag length bugfixes
13 years ago
Richard Fuchs c49ea7b403 copy back s_l number from kernel to daemon
13 years ago
Richard Fuchs 97f9c3d398 SRTP daemon<>kernel tie-in
13 years ago
Richard Fuchs 1507dd3aca move private struct .h -> .c
13 years ago
Richard Fuchs a23d08e0d8 update to new kernel struct
13 years ago
Richard Fuchs c0253ae8b7 use the session key context for the f8 transformatino too
13 years ago
Richard Fuchs 05c1ade246 adding some const for good measure
13 years ago
Richard Fuchs be51f00feb teeny tiny performance fix
13 years ago
Richard Fuchs 9e629d73e3 stop with the bit-length silliness, give key/tag lengths in bytes
13 years ago
Richard Fuchs f38fe3f1e0 create a dedicated session key context to save some cpu
13 years ago
Richard Fuchs d632fae1f3 copy crypto context when stealing peer
13 years ago
Richard Fuchs ac86e65bc7 dont do ice/crypto/etc stuff for inactive streams
13 years ago
Richard Fuchs fa66629309 add helper function for code prettiness
13 years ago
Richard Fuchs 77d19ccab8 parse the send/recv/inactive sdp attributes
13 years ago
Richard Fuchs bc39957548 remember the crypto "tag" value for the SDP answer
13 years ago
Richard Fuchs 6ba61b728c aes-f8 performence improvements
13 years ago
Richard Fuchs 53b99f39d9 some aes-cm performance improvements
13 years ago
Richard Fuchs 6c84ee466a implement aes-f8 mode encryption and decryption
13 years ago
Richard Fuchs 3c9daae60d adding rtp/savpf transforms and tests
13 years ago
Richard Fuchs fcabc7254c fix rtcp authentication tag removal
13 years ago
Richard Fuchs 1e9c972620 adding some debug output
13 years ago
Richard Fuchs f821646de7 fix keystream generation
13 years ago
Richard Fuchs 7d6ab9f6fd adding ycm config file
13 years ago
Richard Fuchs 0f319359db logging improvements
13 years ago
Richard Fuchs 43e9696fa9 restructure in-memory crypto contexts
13 years ago
Richard Fuchs 94393efada divide bit lengths by 8 to get octet count
13 years ago
Richard Fuchs 93092e850f must use the outgoing's side crypto context for out packets, also add some logging
13 years ago
Richard Fuchs 70e6be3bf4 match the peer's crypto suite if possible
13 years ago
Richard Fuchs 3b0d7d0da0 generate our own crypto context when going rtp/avp->savp
13 years ago
Richard Fuchs e4d050062f bugfix for borken rtp
13 years ago
Richard Fuchs 9c8c4c21fa rtcp has a slightly different key generation algorithm
13 years ago
Richard Fuchs db72130792 implement srtcp encryption, decryption and authentication
13 years ago
Richard Fuchs 2b61b12c71 implement srtp decryption
13 years ago
Richard Fuchs 212df63857 implementing srtp encryption and authentication
13 years ago
Richard Fuchs 6ee0284b66 remove strangely irrelevant assertion
13 years ago
Richard Fuchs 7877b7ce14 implement srtp session key generation algorithm
13 years ago
Richard Fuchs 292a676d96 remove a pointless enum
13 years ago
Richard Fuchs c7b95f7187 create attribute hash based on attr id number
13 years ago
Richard Fuchs c3eccfc564 rename "hash" to "name_hash"
13 years ago
Richard Fuchs 9ef4bd2f9c ignore invalid attributes
13 years ago
Richard Fuchs 14bcbcfa73 handle unparseable attributes
13 years ago
Richard Fuchs 250c23d808 parsing of the sdp ssrc attribute
13 years ago
Richard Fuchs e63edeb875 parsing of the sdp crypto attribute
13 years ago
Richard Fuchs a923a52a60 redis/2 module is now incompatible
13 years ago
Richard Fuchs a1e49a8f02 old glib doesnt have g_queue_free_full
13 years ago
Richard Fuchs d8bc7d92a2 experimental support for RTP/AVP<>AVPF bridging
13 years ago
Richard Fuchs 9d0b537d27 leave zero ports or addresses alone
13 years ago
Richard Fuchs d3d35a97e4 dont see a zero port as invalid
13 years ago
Richard Fuchs 16883bdb29 improve NG logging
13 years ago
Richard Fuchs 589c271d52 fix the silly thing about bencoded lists being backwards
13 years ago
Richard Fuchs 48018e48d0 remove obsolete comment
13 years ago
Richard Fuchs 86240e12fd rename variables in stream_packet() -- getting confusing!
13 years ago
Richard Fuchs bfb88bd7e5 fix improper use of "other" pointer
13 years ago
Richard Fuchs 3c4dd73365 update steal_peer with new flags
13 years ago
Richard Fuchs 68a97be379 keep track of transport protocols and rtcp streams
13 years ago
Richard Fuchs b355bd350a simplify a common task by keeping more pointers
13 years ago
Richard Fuchs c35eee7d33 forgot to save the file
13 years ago
Richard Fuchs 0427b4baf4 handle "use-candidate" properly
13 years ago
Richard Fuchs cbc1f8c359 fix possible segfault
13 years ago
Richard Fuchs eb05c8169a support the trust-address flag
13 years ago
Richard Fuchs c956a371ac make sure we always have a session to work with
13 years ago
Richard Fuchs a11dc28825 we have pointers... use them
13 years ago
Richard Fuchs 6ddf0e3afc add logging to stun code
13 years ago
Richard Fuchs 8c46b6bd76 replace hand-crafted constants by generated ones
13 years ago
Richard Fuchs 20dfa12220 fix segfault
13 years ago
Richard Fuchs 009a2029b9 remove some code duplication
13 years ago
Richard Fuchs 4f2d6d4c58 enable ice/stun processing also if no ice was previously present
13 years ago
Richard Fuchs 0be4fa311e support dual-stack ICE offers
13 years ago
Richard Fuchs 1c830108ad misinterpreted the meaning of the "trust address" flag
13 years ago
Richard Fuchs 87ec55b7b5 we do need to initialized that random() generator
13 years ago
Richard Fuchs 72f6cc97f9 support non-forced insertion of ice candidates
13 years ago
Richard Fuchs eadbc1c3ab crc32 is a long
13 years ago
Richard Fuchs bc4685c98c support stun indications
13 years ago
Richard Fuchs 27a9e92872 support unknown-attributes error response
13 years ago
Richard Fuchs 2ea1fe3a47 generate stun responses and clean up some code mess
13 years ago
Richard Fuchs cbd26eb124 perform message integrity check aka auth
13 years ago
Richard Fuchs f685d9743b get some constants out of the way
13 years ago
Richard Fuchs 4aa3017555 The FINGERPRINT mechanism MUST be used for connectivity checks
13 years ago
Richard Fuchs 9c8075ca87 agents MUST ignore all other attributes that follow MESSAGE-INTEGRITY
13 years ago
Richard Fuchs 0ed8587e05 move ice_ufrag/pwd into peer struct
13 years ago
Richard Fuchs 6ceb187abb increate length of random strings
13 years ago
Richard Fuchs 1758e586ce generate stun errors
13 years ago
Richard Fuchs 2784cb41a3 hack to prevent stale children
13 years ago
Richard Fuchs a37bd78355 rename ARRAY_SIZE to ARRAYSIZE to avoid naming conflict
13 years ago
Richard Fuchs edf5f11140 parse stun attributes
13 years ago
Richard Fuchs 7787ad3b28 reorder headers and fix resulting errors
13 years ago
Richard Fuchs 8c06d3254a start work on stun support
13 years ago
Richard Fuchs 033b7d1f55 more bettererer optimizing
13 years ago
Richard Fuchs bff00fdab6 support b=RR:0 and b=RS:0 to disable rtcp
13 years ago
Richard Fuchs d928ccd37d clean up the mess
13 years ago
Richard Fuchs 3c10c9ac17 add support for non-standard rtcp ports
13 years ago
Richard Fuchs 3faa9f8a8f parse out rtcp attribute
13 years ago
Richard Fuchs 1a2e0d75ea create a random but constant "foundation" string for ice candidates
13 years ago
Richard Fuchs dc7c4e7fba s/ufrag_pwd_chars/ice_chars/
13 years ago
Richard Fuchs cd3264b7ef i dont like long variable names
13 years ago
Richard Fuchs 581b1bf948 build a hash table of sdp attributes when parsing them
13 years ago
Richard Fuchs 902f47da28 remove redundancy in struct member names
13 years ago
Richard Fuchs 68f91da68e split up attributes even more when parsing them
13 years ago
Richard Fuchs 33ef09b470 insert ice candidate for rtcp
13 years ago
Richard Fuchs f107ab461a adding rudimentary insertion of ICE attributes
13 years ago
Richard Fuchs 36d21eb8ed dont add debian build flags for debug builds
13 years ago
Richard Fuchs c18c1d64eb unify copy_remainder and copy_up_to, create copy_up_to_end_of
13 years ago
Richard Fuchs 30669f2cd3 support removal of ICE attributes
13 years ago
Richard Fuchs 4914d6babb fix skip_over off by one bug
13 years ago
Richard Fuchs adaaa1e59e parse out sdp attributes
13 years ago
Richard Fuchs fc246e64d3 cant guarantee that the call struct is still valid when the response is sent, to copy strings
13 years ago
Richard Fuchs bd9671a8cc more convenience functions
13 years ago
Richard Fuchs 697d152796 to avoid confusion with debian version numbers, use sequentials integers for ABI versioning
13 years ago
Richard Fuchs 0230985e91 get rid of another useless variable
13 years ago
Richard Fuchs 55380807f8 tags can be NULL
13 years ago
Richard Fuchs bf4df4dff9 remove more code duplication
13 years ago
Richard Fuchs 504995e47c return call stats in NG delete message reply
13 years ago
Richard Fuchs feb3b6bde1 adding some const for good measure
13 years ago
Richard Fuchs 3c764bed52 split NG stats collection into ng_call_stats()
13 years ago
Richard Fuchs f7da33b4a7 adding a UINT64F format macro
13 years ago
Richard Fuchs b2ad672086 make call_query_udp use the new call stats function
13 years ago
Richard Fuchs 495d4cf2bd keep track of "newest" timestamp
13 years ago
Richard Fuchs 267252542b create a struct for stats collection
13 years ago
Richard Fuchs 1adef8fe7b split stream traversal for stats query into separate function
13 years ago
Richard Fuchs 8c9fa012bd lets have a totals packet/bytes counter for each call
13 years ago
Richard Fuchs e9bf80768d add more bencode convenience functions
13 years ago
Richard Fuchs 1ef1c87545 add a prelim NG query command
13 years ago
Richard Fuchs aaa3f4d116 simplify call_query_udp a bit
13 years ago
Richard Fuchs 3ef68b85e6 add bencode_string(_len)?_dup functions
13 years ago
Richard Fuchs f369c9f799 more redis support functions
13 years ago
Richard Fuchs 8d3b8e310a redis support functions
13 years ago
Richard Fuchs 20f33e56ff treat zero ip/port as wildcard when matching up old streams
13 years ago
Richard Fuchs 5cebf5adbd use peer_advertised where appropriate
13 years ago
Richard Fuchs fc6fe69075 replace IN6_IS_ADDR_UNSPECIFIED because it doesnt work for mapped addresses
13 years ago
Richard Fuchs 5d726fdf84 fix some ipv6 related bugs
13 years ago
Richard Fuchs f5e6482d5d base the stream traversal entirely on stream index
13 years ago
Richard Fuchs ad4cef0f37 g_hash_table_contains implementation for old glib version
13 years ago
Richard Fuchs 6adda7c301 keep track of sdp stream endpoints and use them as index when rewriting
13 years ago
Richard Fuchs c33642a011 more consistent function naming
13 years ago
Richard Fuchs bac4f31489 get rid of num parameter to sdp_replace
13 years ago
Richard Fuchs fe70ce8824 sync bencode
13 years ago
Richard Fuchs e69f1bd30d document bencode iovec functions
13 years ago
Richard Fuchs 7ca74b399e use iovec based sdp rewriting
13 years ago
Richard Fuchs 2e0a8c42d5 add custom destroy function for free list
13 years ago
Richard Fuchs 557185fa6a rename some functions for consistency
13 years ago
Richard Fuchs b0b9007fbc implement and document a hash algorithm for bencoded dictionariers
13 years ago
Richard Fuchs 0899007b5d document error flag
13 years ago
Richard Fuchs a59cd22479 merge bencode from kamailio
13 years ago
Richard Fuchs 7d1629442d get rid of stupid message
13 years ago
Richard Fuchs df1b169cba handle consecutive ports in SDP
13 years ago
Richard Fuchs a67f03d1d3 introduce struct udp_fd
13 years ago
Richard Fuchs 4c14016f9f code cosmetics
13 years ago
Richard Fuchs 7137b784e9 implement a "relays cache"
13 years ago
Richard Fuchs 061507585c variable renaming - getting confusing
13 years ago
Richard Fuchs a45a7379ed obsolete get_port_pair()
13 years ago
Richard Fuchs ce2df6d90f exclude our own listening ports from RTP
13 years ago
Richard Fuchs 9ae844040a reimplement get_port_pair() to support multiple consecutive ports
13 years ago
Richard Fuchs 824c84b2e8 properly handle multiple streams
13 years ago
Richard Fuchs e22b6a04fb support trust-address flag
13 years ago
Richard Fuchs 7a0687bebc prettify bencode.h and add bencode_get_str()
13 years ago
Richard Fuchs ab3a47ae41 finish renaming control.[ch] to control_tcp.[ch]
13 years ago
Richard Fuchs a050fcfa48 rename control.[ch] to control_tcp.[ch]
13 years ago
Richard Fuchs efdc8efeb8 rename some command implementation functions for consistency
13 years ago
Richard Fuchs 9f78c2f17a implement call_delete_ng()
13 years ago
Richard Fuchs 3069720052 fix copy-pasto
13 years ago
Richard Fuchs 3bc3e74bdc more logging
13 years ago
Richard Fuchs 2872d18f43 implement call_answer
13 years ago
Richard Fuchs 57051ee86f use a sane default port range
13 years ago
Richard Fuchs fe3af2559e support listening on NG port through init/defaults
13 years ago
Richard Fuchs 9f276ad73d inlining ftw
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 21e18c086e obsolete the "mediatype" element
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 ea16a5daa2 fix some resulting segfaults
13 years ago
Richard Fuchs 1160c5c0ad fulfil the promise of actually freeing the free list
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 45c38179d1 those updates break the redis module
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 edc60d05f9 convenience functions required by rtpproxy-ng
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
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 7cc6d95338 adding preliminary SDP parser
13 years ago
Richard Fuchs a8cc93f7a3 get rid of that silly len counter
13 years ago
Richard Fuchs c5be7346a6 hard-link bencode.[ch] from kamailio source for now
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 fb20c7491d implement receiving and parsing NG protocol packets
13 years ago
Richard Fuchs 76cab1f697 non-static vars must be initialized to 0
13 years ago
Richard Fuchs 3a30e186c4 dont use RE_UDP_ macros for indexes into the fallback RE
13 years ago
Richard Fuchs 4700a6dea0 split generic udp receiving code into udp_listener
13 years ago
Richard Fuchs ab24a79de9 adding control_ng stubs
13 years ago
Richard Fuchs 189c19eb03 init function should return success too
13 years ago
Richard Fuchs 1912346c35 remember: git commit -a doesnt commit new files
13 years ago
Richard Fuchs 67e876ff97 split udp listener init code into separate file
13 years ago
Richard Fuchs 32523c5896 split cookie cache keeping into separate file
13 years ago
Richard Fuchs 27835dc50e split cookie cache keeping into separate file
13 years ago
Richard Fuchs 78712cf7c9 rename listen to listen-tcp in error outputs as well
13 years ago
Richard Fuchs 8ae44f7aa6 silly bugfix for the init fail case
13 years ago
Richard Fuchs a7d40bf7bc rename --listen to --listen-tcp
13 years ago
Richard Fuchs 8708c99e33 add bencode lib to sources
13 years ago
Richard Fuchs bca25d7700 make call_lookup_udp() remember viabranches like call_update_udp()
13 years ago
Richard Fuchs b36afb6183 exclude deprated API calls
13 years ago
Richard Fuchs ef521030ab make viabranch in udp lookup optional
13 years ago
Richard Fuchs 6755ce3e49 fix RE regression
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
14 years ago
Richard Fuchs 8092a56761 another locking fix
14 years ago
Richard Fuchs bb054ec00b fix more locking problems
14 years ago
Richard Fuchs 3a26e9fceb fix possible race condition
14 years ago
Richard Fuchs 39207a0859 dont fail on zero port in tcp controller
14 years ago
Richard Fuchs 37013fd148 IPv6 socket requires IPv4 PKTINFO for setting source address correctly
14 years ago
Richard Fuchs 59c5ffd0da fix reference count leak
14 years ago
Richard Fuchs 08d40d8ac5 add debian buildflags and address generated warnings
14 years ago
Richard Fuchs 59e47df1d6 remove obsolete makefile target and add missed \n to simulator script
14 years ago
Richard Fuchs d751d10093 check struct sizes and offsets exported by redis plugin
14 years ago
Richard Fuchs 594297a3ea use string chunk for all the little call-related strings
14 years ago
Richard Fuchs afb1f5de95 need to lock the call a bit earlier
14 years ago
Richard Fuchs d8ef1885cc split callstream_init into callstream_new for redis module
14 years ago
Richard Fuchs 2e189c5eb5 echo core >> .gitignore
14 years ago
Richard Fuchs c291d1220b fix logging inconsistency
14 years ago
Richard Fuchs 9077fac612 be a lazy developer and try to load the .so locally
14 years ago
Richard Fuchs a9823f2323 adding .gitignore files
14 years ago
Richard Fuchs da02558511 its always nice to call openlog()
14 years ago
Richard Fuchs 72840c8d1d reorder calls to redis for proper locking
14 years ago
Richard Fuchs 7e38c7a96f a more robust thread shutdown procedure
14 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!
14 years ago
Richard Fuchs 2ad1d6f65e xmlrpc still segfaulting. leaves no choice but to fork out a new process, ugh.
14 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
14 years ago
Richard Fuchs a4625fbad9 enough with the glib threading nonsense, it's only causing problems. revert to good old pthread stuff
14 years ago
Richard Fuchs fabcb53a3b the curl xmlrpc transport isnt playing nicely - revert to default
14 years ago
Richard Fuchs 08c764c748 cant decref null references
14 years ago
Richard Fuchs 4b7d4d24cd dont block fatal core-dumping signals
14 years ago
Richard Fuchs 0f6d898171 add proper locking to callstream setup procedure
14 years ago
Richard Fuchs 94f2f320a6 actually the call struct needs neither linked flag nor shutdown flag due to the sequence of events and locking
14 years ago
Richard Fuchs d8776907f8 need to lock the callstream a bit earlier
14 years ago
Richard Fuchs ab3b8c60f0 fix a silly, threading-unrelated, statistics-skewing bug
14 years ago
Richard Fuchs 45f34b9784 turns out you actually have to free/destroy mutexes. who woulda thunk?
14 years ago
Richard Fuchs 54353022ff om nom nom memory leak... well, reference count leak
14 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
14 years ago
Richard Fuchs 683b716885 here we go with the subtle race conditions
14 years ago
Richard Fuchs 806920cc52 dont abort polling on EINTR
14 years ago
Richard Fuchs 0d6349f14c and for the interesting part: multiple poller threads
14 years ago
Richard Fuchs 942c96c96d move poller timers and polling into a separate thread
14 years ago
Richard Fuchs d25d1c2009 making main() pretty by moving stuff out of the way
14 years ago
Richard Fuchs ddffe5eeec global xmlrpc init must be done prior to any threading
14 years ago
Richard Fuchs d1fbf9bef9 alarms arent usable in a threaded environment, so use curl internal timeout instead
14 years ago
Richard Fuchs feeeee2fab must extract needed tags for xmlrpc call teardown prior to destroying the calls
14 years ago
Richard Fuchs 973d92d9c7 moving call teardown due to timeout to a separate thread
14 years ago
Richard Fuchs 47a9a00a11 it makes no sense to return a value from an effectively detached thread
14 years ago
Richard Fuchs 31a5ff9c29 detached threads considered harmful, so simulate them by keeping a threads-to-join list
14 years ago
Richard Fuchs bc647862e5 use sigtimedwait for proper sighandler thread shutdown
14 years ago
Richard Fuchs badae5a874 lets get some threads going then, starting with a signal handler
14 years ago
Richard Fuchs 2dd6cfe68c keeping the lock hold time to a minimum in lengthy calls_status operation
14 years ago
Richard Fuchs 8c2c69f5e6 make the stats collection thread-safe
14 years ago
Richard Fuchs d9e09f33bc lets try with a lot of large, nested, naive locks
14 years ago
Richard Fuchs ae5a36f5ce getting rid of call->log_info and introducing call->lock
14 years ago
Richard Fuchs 900f76a17e make the callmaster struct private - also requires update to redis module
14 years ago
Richard Fuchs aeb5398b0d granular lock for "ports used" bit field
14 years ago
Richard Fuchs a8680cc2d9 TOS for ipv6 needs an int to work
14 years ago
Richard Fuchs 0b0b41e67f gonna need more than one lock in callmaster, so rename the one we have
14 years ago
Richard Fuchs 4cb63b5edf need to handle the no-reply case to avoid deadlocks with bad cookies
14 years ago
Richard Fuchs 4588e13a76 getting rid of more global variables
14 years ago
Richard Fuchs e033d1da1c EINTR requires special handling
14 years ago