Added more TODO items
This commit is contained in:
parent
0ad269d1c3
commit
20d4101eec
102
TODO
102
TODO
@ -1,23 +1,25 @@
|
|||||||
[ ] Modular design
|
Modular design
|
||||||
[ ] Authentication and authorization
|
==============
|
||||||
[ ] SQLite3
|
[ ] Authentication and authorization
|
||||||
[ ] MySQL
|
[ ] SQLite3
|
||||||
[ ] PostgreSQL
|
[ ] MySQL
|
||||||
[ ] LDAP
|
[ ] PostgreSQL
|
||||||
[ ] Roster storage
|
[ ] LDAP
|
||||||
[ ] SQLite3
|
[ ] Roster storage
|
||||||
[ ] MySQL
|
[ ] SQLite3
|
||||||
[ ] PostgreSQL
|
[ ] MySQL
|
||||||
[ ] LDAP?
|
[ ] PostgreSQL
|
||||||
[ ] Group chat
|
[ ] LDAP?
|
||||||
[ ] File sending
|
[ ] Group chat
|
||||||
[ ] Server-side chat logging
|
[ ] File sending
|
||||||
|
[ ] Server-side chat logging
|
||||||
|
|
||||||
[ ] GnuTLS
|
[ ] GnuTLS
|
||||||
[X] gLib
|
[X] gLib
|
||||||
[ ] gNet
|
[ ] gNet
|
||||||
|
|
||||||
Hooks:
|
Hooks
|
||||||
|
=====
|
||||||
|
|
||||||
[ ] c2s-message
|
[ ] c2s-message
|
||||||
[ ] s2c-message
|
[ ] s2c-message
|
||||||
@ -26,13 +28,14 @@ Hooks:
|
|||||||
[ ] client-authorization
|
[ ] client-authorization
|
||||||
[ ] client-presence-change
|
[ ] client-presence-change
|
||||||
|
|
||||||
Configuration file:
|
Configuration file
|
||||||
|
==================
|
||||||
|
|
||||||
[X] Global logging
|
[X] Global logging
|
||||||
[X] Modules
|
[X] Modules
|
||||||
[X] Module directory
|
[X] Module directory
|
||||||
[X] Modules to load on startup
|
[X] Modules to load on startup
|
||||||
[o] Interface
|
[X] Interface
|
||||||
[X] IP
|
[X] IP
|
||||||
[X] Port
|
[X] Port
|
||||||
[X] Domain
|
[X] Domain
|
||||||
@ -40,12 +43,15 @@ Configuration file:
|
|||||||
[-] Key file
|
[-] Key file
|
||||||
[X] Logging
|
[X] Logging
|
||||||
[X] Log destination: syslog, file
|
[X] Log destination: syslog, file
|
||||||
[X] Log options: connection events, etc.
|
[X] Log options: connection events, etc.
|
||||||
|
|
||||||
Code flow:
|
Code flow
|
||||||
|
=========
|
||||||
|
|
||||||
[X] Command line processing (Command line option can override the place of the configuration file)
|
[X] Command line processing (Command line option can override the place of the
|
||||||
[X] Configuration file processing (Command line options override configuration global values like modules directory, log destination)
|
configuration file)
|
||||||
|
[X] Configuration file processing (Command line options override configuration
|
||||||
|
global values like modules directory, log destination)
|
||||||
[ ] Create logger thread
|
[ ] Create logger thread
|
||||||
[ ] Start logging according to configuration
|
[ ] Start logging according to configuration
|
||||||
[ ] Load modules
|
[ ] Load modules
|
||||||
@ -64,3 +70,57 @@ Code flow:
|
|||||||
When new connection arrives
|
When new connection arrives
|
||||||
[ ] Create peer object
|
[ ] Create peer object
|
||||||
[ ] Associate with corresponding stream interface
|
[ ] Associate with corresponding stream interface
|
||||||
|
[ ] Run main loop
|
||||||
|
[ ] Socket thread
|
||||||
|
[ ] New connections
|
||||||
|
[ ] Run "before-accept" hook
|
||||||
|
[ ] Create client object unless connection is dropped in
|
||||||
|
"before-accept"
|
||||||
|
[ ] Run "after-accept" hooks
|
||||||
|
[ ] Install "always-install" extensions on client
|
||||||
|
[ ] Wait for remote XML Stream to start
|
||||||
|
[ ] Assign client to correct interface
|
||||||
|
[ ] Old connections
|
||||||
|
[ ] Run "layer-accept" hooks
|
||||||
|
[ ] Run "before-interface" hooks
|
||||||
|
[ ] Pass to assigned interface
|
||||||
|
[ ] Run "after-interface" hooks
|
||||||
|
[ ] Logging thread
|
||||||
|
[ ] Process received lines one by one. Errors first, info next, debug
|
||||||
|
last
|
||||||
|
[ ] Interface threads
|
||||||
|
[ ] Receive data from socket thread
|
||||||
|
[ ] Run "before-process" hooks
|
||||||
|
[ ] Process stream
|
||||||
|
[ ] Run "after-process" hooks
|
||||||
|
[ ] Run "before-send" hooks
|
||||||
|
[ ] Send packet to destination if packet is finished
|
||||||
|
[ ] Run "after-send" hooks
|
||||||
|
|
||||||
|
During the connection additional extensions can be installed on the client,
|
||||||
|
like the layer-tls module's TLS encryptions extension.
|
||||||
|
|
||||||
|
Authentication
|
||||||
|
==============
|
||||||
|
|
||||||
|
When a client requests authentication, client credentials get through the
|
||||||
|
authentication module(s) associated with the interface. This authentication
|
||||||
|
module must always check the jid via an user storage module, and if necessary,
|
||||||
|
it should get the password (or any other credentials like a X509 certificate's
|
||||||
|
Common Name field, or a Kerberos principal name) from this storage module,
|
||||||
|
either.
|
||||||
|
|
||||||
|
Additional modules to provide
|
||||||
|
=============================
|
||||||
|
[ ] user-mysql
|
||||||
|
[ ] roster-mysql
|
||||||
|
[ ] user-postgresql
|
||||||
|
[ ] roster-postgresql
|
||||||
|
[ ] user-ldap
|
||||||
|
[ ] roster-ldap?
|
||||||
|
[ ] auth-cyrus-sasl
|
||||||
|
[ ] log-c2c
|
||||||
|
[ ] conn-blackwhite-list
|
||||||
|
|
||||||
|
Create a well defined module programming API!
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user