TODO 3.29 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
2.0 CRITICAL - These are the things without which 2.0 cannot be released
____________

- make install doesn't install everything. Needs to set up config file to point
  at appropriate places, install web directory somewhere, put config file
  somewhere. Should icecast automatically (i.e. without needing -c) look for
  the config file in /etc/icecast.xml or something?

- libshout 2.0 and ices 2.0 releases, also an ices 0.x release that works with
  this. Without source clients, icecast isn't much use...

Michael Smith's avatar
Michael Smith committed
12
13
- integrate/include all the documentation done by external groups.

14
15
16
17
18
19
20
21
- curl isn't optional. It _must be_, with full autoconf checks (including
  version checks).

- generally we don't do proper checking for the correct versions of various
  libraries (this is probably more of an issue with ices2, but it also affects
  icecast)


Michael Smith's avatar
Michael Smith committed
22

Jack Moffitt's avatar
Jack Moffitt committed
23
24
BUGS
----
Jack Moffitt's avatar
Jack Moffitt committed
25
26
- stats get off?  this needs testing more testing.

Michael Smith's avatar
Michael Smith committed
27
28
- some stuff (like 'genre') isn't making it into the stats dump

29
- make install - doesn't install configs?
Jack Moffitt's avatar
Jack Moffitt committed
30

31
32
- logging - bytes send and time listening may both be broken?

Jack Moffitt's avatar
Jack Moffitt committed
33
34
FEATURES
--------
Michael Smith's avatar
Michael Smith committed
35
36
37

- pull out vorbis comments.  and send to stats. This seems to be being
  done, but it isn't working right.
Jack Moffitt's avatar
Jack Moffitt committed
38
39
40
41
42
43
44
45

- directory server GUID checks
	directory server does GET /GUID-asldjfasldfjalsdkfjasldkfj HTTP/1.0
	and either gets a 404 if it's wrong, or a 200 if it's correct.

- adding new stats type, event.  events don't modify the global stats tree,
	ie, source /1234.ogg disconnected

Jack Moffitt's avatar
Jack Moffitt committed
46
47
48
- support W3C Extended Logging (http://www.w3.org/TR/WD-logfile.html)
	toggle between this and Apache Combined Log Format in the config file.
	default to apache style.
49
50
51
52

- allow using get_predata() stuff to send an "intro" to any newly-connected
  user?

53
54
- stats to list currently connected clients: ip and hostname

55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
- stream switching (drop clients to another stream on disconnect of source)
  - a) fallbacks from named location to new mountpoint
  - OR b) fallbacks for connected clients to new mountpoint (so newly-connecting
       clients just get a 404 on the old path)
  - OR c) combination - first one, plus generic alias ability?

- /admin/* for all admin functionality
  - configuring fallbacks
  - mp3 metadata injection
  - remote shutdown?

- general registerable url-handlers in connection.c rather than hard-coded list
  (already getting unmaintainable)

- httpp - split out query string for further processing

71
- option to use ipv6 (equiv to using <bind-address>::</bindaddress>, I think.
72

Michael Smith's avatar
Michael Smith committed
73
74
75
76
- abstract all admin functionality to a set of commands, and command handlers.
  Make /admin/* just parse according to a set of rules, and dispatch generic
  commands through that.
  Use this for alternative admin interfaces (GUI? telnet interface?)
77

Michael Smith's avatar
Michael Smith committed
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
- listener authentication (per mountpoint?)

- all timer-based functionality (yp updates, slave/relay checks) should have a
  single timer thread which dispatches events through the normal event
  mechanism (to worker threads from the main pool). This will reduce the
  extraneous thread count.

- atomic admin function to: set fallback from A->B, remove A, move mountpoint
  B to A. Needs forced-source removal first.

- race condition between avl_tree_unlock(pending_tree) and 
  thread_cond_wait(&fserv_cond) in fserv.c, it's a pain to fix but should be.

- do we need to use locks on the avl client_trees in source.c and fserv.c?