1f531ed6 |
|
f20a56a2 |
( - todo, x - done) |
7dfb54d7 |
x change subst_run/str to return error (different from not found)
x change subst_user as on serdev
x tm : fake_env: fake also bind_address (else the default will be used |
a9fae28b |
in the failure route) |
71fd3ebd |
- [core] parse_uri support for new uri params |
7dfb54d7 |
x [core] on sig_child, kill the processes if they don't exit in a |
71fd3ebd |
reasonable time |
518c9339 |
- [doc] document force_rport() |
2d0f29be |
- [fifo] fix fgets error handling (it does not set errno always,
, right now kills all ser if interrupted by a signal on ?solaris?) |
0cc11fe6 |
- [mem] make shm_realloc be fragmentation friendly: call shm_compact_frags
for the small frags?, don't produce smaller frags -- be wastefull? |
71fd3ebd |
- [mem] qm_compact_frags (compacts frags if possible), keep a
fragment count/bucket and if too much mem. is blocked in one bucket
de-frag. |
7dfb54d7 |
x [mem] investigate: don't produce frag if frag size < request |
71fd3ebd |
(should reduce the unrequested fragments number) |
7dfb54d7 |
x [mem] investigate: keep an used/unused flag per fragment, on free |
71fd3ebd |
check if neighboring frags were not used and if so defragment |
0cc11fe6 |
- [timer] multiple timers? at least ticks should no be affected by the amount
of work done in the timer handlers |
71fd3ebd |
- [tcp] ser intiated tcp connections use INADDR_ANY (they should be bound first
to some ip/port ?function of the dest?) |
0cc11fe6 |
- [tcp] need to confirm fd receipt after send_fd, before closing it (this might |
6cfeede0 |
happen in tcp_send new conn.) (see FreeBSD send BUGS for more info) |
2d0f29be |
x [tcp] make send_all, send non-blocking ready ?
x [tcp] tcp_send w/ timeout (to avoid waiting forever to send DOS) |
0cc11fe6 |
|
804ca8ba |
- forward port fixes from testing |
0cc11fe6 |
- [udp] use recvmsg to get the dst ip address in udp_rcv_loop |
804ca8ba |
(it won't work on solaris, but...) |
0cc11fe6 |
x nathelper: extract_body broken-> uses content_length value form the |
59653eb8 |
message instead of recalculating it + duplicate code for get_body() |
50d5fa87 |
- fix check_sel_op -- add proto for uri proto checks |
0cc11fe6 |
- [tcp] add setting for infinite tcp conn life? |
50d5fa87 |
|
9f4c52ce |
- fix 2 different fixups for diff. no of parameter |
59653eb8 |
(add no of params to struct action?) -- linked to var. no. of params
x alias support fot tcp/tls port numbers |
4c37101e |
- warning builder set_advertised address support |
172403d1 |
- grep parse_uri & replace with parse_sip_msg_uri (e.g do_action!) |
d48f0d9b |
x update AUTHORS, debian/copyright, ser.8, ser.cfg.5 from stable
x update Makefile* from stable
x update all package specs from stable |
0cc11fe6 |
- [tcp] add BUG checks for fd > 0 && fd <= maxfd to all selects? |
a46e0068 |
- [tcp] switch to poll if HAVE_POLL defined (it's unifix so everybody
should have it, but it would be slower on systems emulating it, like
older linuxes)
- [tcp] switch to epoll if HAVE_EPOLL defined (linux 2.6.*) |
71fd3ebd |
- [tcp] switch to SIGIO if no epoll (linux only, better than poll) |
75e2f1a6 |
x tcp_main_loop: BUG cases should "conitnue;" |
dda578ba |
x change len_gt into and expr (e.g msg:len). |
59653eb8 |
x sipit: uri == myself doesn't match tls port = 5061
-- updated: new socket_info list code should fix it
x sipit: fix check_self & *_alias to work with tcp & tls
-- updated: new socket_info list code should fix it |
880c030d |
x sipit: fix ipv6 references in check_self |
75e2f1a6 |
x regex subst on uris? |
6d44652c |
x port receive.c pre_script_cb fix from stable |
59653eb8 |
x extend alias to include port numbers : |
a0b5a680 |
something like alias= foo1.bar:5080 foo2.bar foo3.bar:* |
59653eb8 |
x extend listen and alias to include port numbers and protocol: |
627b66ef |
tcp foo.bar:5063, udp foo.bar:5062, foo2.bar |
6bfaa042 |
x added set_advertised_{address,port} -- was: add force_via, force_srcip a.s.o
(the advertised addresses should be overwritable from the script). |
7dfb54d7 |
x ? add force_outbound_socket(ip)? (choose an apropriate socket from the |
172403d1 |
listen list for sending the msg; works on udp only) |
a0b5a680 |
|
3e8c3475 |
release: |
172403d1 |
- unlink_timer_lists -- unsafe ??? |
d48f0d9b |
x print_cseq_num max. size fix. |
75e2f1a6 |
x backport: tcp conn id fix to stable + destroy_tcp
x backport: acc mem. leak fixes
x backport: dns mem. leak fixes (resolve.[ch])
x backport: id_builder receive_msg mem. leak (msg_translator.c)
x backport: check_self ipv6/case fixes (forward.c)
x change tcp timeouts to 2 or 3 min? |
a0b5a680 |
x check via ipv6 fixes and backport to stable |
9c01c860 |
x fix kill(0, SIGTERM) on startup error (will kill also the launching shell |
b2e24e1d |
if non-interactive)
- fix modules destroy (some modules will try to free uninitialized resources
if modules_init was not called first) |
176e7a13 |
x fix CC_VER bug in newer Makefile (move DEFS after CC?) |
0cbace85 |
x openbsd 3.2 packages -> doc in share/doc (and not in doc) |
9561ba45 |
- openbsd 3.2 -> add jabber and mysql to the package |
3141b20a |
x fix modules makefiles (so that cd modules/foo; make will also link the proper |
04f302c6 |
libs) |
3141b20a |
x fix -march=..., or compile w/ i386 for the release |
e09e5e44 |
x resolver should resolve [ipv6] |
3141b20a |
x remove parse_uri debugging info |
3e8c3475 |
- fix DBG("<%.*s>", len, _null_) |
e09e5e44 |
x add -t, -w, -u -g equivalents to the config file |
3e8c3475 |
x force add rport : force_rport()
- kill all the fprintf
see also tcp & tm
not so critical: |
d31fcdf0 |
x replace remaining mallocs/frees at least in msg_translator.c |
b748ffc7 |
- add $(INCLUDES) to the Makefiles |
d31fcdf0 |
x make ser suncc ready |
e4067ffb |
- fix parse_cseq!!! (it doesnt parse 1234\n INVITE a.s.o) |
49ee1aa0 |
x fix 0 parameter module f. call
x better Via parsing (handle ' ' in uri, eg: foo.bar : 1234 ; received=) and |
1f531ed6 |
ipv6 addresses ([fec0:aa::01]). |
831faabf |
- fix format string vulnerability in log() |
ab130758 |
- fix alignment access problems (warning on Sun) |
49ee1aa0 |
x (different way) add request header bitmap field for the modules |
c9fc9d63 |
- introduce variables & function in the script language (cfg. file) |
d31fcdf0 |
- ? variable number of params functions in script (no longer limited to 2)? |
7ec958f3 |
- kill bind_idx |
3e8c3475 |
x fix bind_address for tcp (in some way) |
428e3b83 |
x add conflict in debs/rpms/etc (conflict w/ older ser-mysql, ser-jabber)
x new packages ser-radius etc |
74250efc |
x tcp_destroy (called on ser exit) |
4b50480e |
- BUG:?? ipv6 only and try to send to ipv4 => getsendsocket=>0 (send_ipv6=0)
the reverse is also true |
607fcb90 |
- SUBST lumps for replies (involves setting the send_socket in forward_reply,
before build_res_from_res, & adding it to buid_res_from_res). |
c9fc9d63 |
|
1f531ed6 |
High priority: |
8aeb47e2 |
x- parse_uri should not copy anymore the uri members (and it should not 0 |
6ee62314 |
terminate them anylonger). |
caf80ae6 |
x fix/replace T_REF/T_UNREF
x review all the tm locking |
f20a56a2 |
x if () {} else {} |
223ec030 |
x plugin interface |
c9fc9d63 |
x ipv6 support |
caf80ae6 |
x reply ("response line")
x drop ACKs for our replies
x add To-tag (for the replies)
x add User-Agent (for the replies) |
1f531ed6 |
Low priority: |
0cc11fe6 |
- icmp error handling |
c9fc9d63 |
x fix via address someday |
0cc11fe6 |
- fix listen=0.0.0.0 case (see [udp] use recvmsg...) |
c9fc9d63 |
x forward to received= if present |
6eb22d94 |
- make it easier to register a statically linkable module. |
f3f0a4de |
x add support for -u user and -g group (not only -u uid, -g uid) |
7dfb54d7 |
x change uid/gid after opening the sockets |
831faabf |
- exec improvments (add format strings to it) |
dda578ba |
x command line switch for checking the config file syntax |
45072d7a |
- config file version (a la sendmail) |
caf80ae6 |
0 loop detection |
1f531ed6 |
- cfg. file reload
- flags for using names or ip adresses in Via ? |
a1e488b4 |
- escape char injection/printing fix (verify all log/printed messages
for terminal escapes and remove them) |
1f531ed6 |
|
49ee1aa0 |
x handle SIGCHLD, SIGHUP |
92d818f3 |
- use a standard lex compatible .lex format (instead of flex) |
d31fcdf0 |
x try & use native compiler & ld if possible |
45072d7a |
|
c9fc9d63 |
x make install |
f3f0a4de |
x init.d scripts (and rc.local? for *BSD or Slackware) |
c9fc9d63 |
x man page |
550bb8c3 |
- autoconf scripts |
c9fc9d63 |
x Debian package build files
x the same for rpm |
59653eb8 |
x the same for *BSD |
550bb8c3 |
|
caf80ae6 |
x jku: branch hash computation over canonical values
0 jku: loop checking |
0a6afa42 |
- jku: try CRC as opposed to MD5 |
e833d08a |
|
6ee62314 |
x freopen stdin, stdout, stderr to /dev/null |
f2f969dd |
- add a section on building ser & configuring it for maximum performance
(-DF_MALLOC, -DNO_DBG, ... sip_warning=0, a.s.o) |
20581c5a |
x add src_port, dst_port, proto to cfg.{y,lex} |
8aeb47e2 |
x generic locking lib |
d31fcdf0 |
x convert tm to use new locking lib |
e29d027b |
|
d31fcdf0 |
optimizations:
- better timer interface with hashes (a la openbsd) |
20581c5a |
- change lumps (flags for malloc type, recursive? see COND lumps ) |
d31fcdf0 |
- atomic ops?
- assembly for some very common used function
- getsock* cache
- fd cache for tcp_send |
4776dc11 |
- dns cache? (see DNS) |
172403d1 |
- make option to use openssl MD5 (HMAC_Init(hmac_ctx, (void*)key, 16, md5_md))
[ 0.9.7 version is really fast ] |
d31fcdf0 |
tcp stuff: |
2d0f29be |
x timeout on long sends |
d31fcdf0 |
x tcp disable nagle |
4290c43f |
x set TOS to minimize delay |
0cc11fe6 |
x tcp locking/atomic ops review |
80c40124 |
- tcp fix simultaneous connects (ser process is blocked until connect timeouts
=> possible DOS) |
d31fcdf0 |
|
d531a5d5 |
tm optimizations:
|
172403d1 |
- inline/macro/drop for: get_tm_table, set_kr, lock_hash, unlock_hash,
set_t, get_t |
d531a5d5 |
- replace snprintfs int build_uac_request, *_dlg
- fix the huge param no. in this functions (use structs if neccessary):
build_uac_request, build_uac_request_dlg, t_uac, t_uac_dlg |
5dcfb23d |
- uri2proxy - t_uac_dlg => extra malloc/free (no �roxy needed here) |
d531a5d5 |
|
4776dc11 |
dns stuff:
- dns cache
- support for NAPTR (naptr(domain, pref_proto)=> srv_rec + proto => srv(srv_rec, proto) => A or AAAA => A/AAAA(name))
- support for fallback (inside the same A/AAAA record, other ip; if fails => other SRV ; if it fails too other NAPTR
[see rfc3263] |