summaryrefslogtreecommitdiffstats
path: root/TODO
blob: 1e86c8d53eea12521831a2cef4467c614f9b64fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

* Write firewall (iptables) implementation
   - Add function declarations in eurephia_firewall.h
   - Enable firewall functionality by checking config:
     firewall_enabled == 1
   - Add eDBget_firewall_profile(ctx, session) in eurephiadb
   - Add eurephia_firewall(ctx, mode{ADD|DELETE}, {profilename|macaddr}
                          (eurephiaCTX *, const int mode, char *)
      - This function is located in eurephia_fw_iptables.c
      - iptables -I {INSERT place} is taken from config: iptables_vpnclients
      - iptables -j {vpnuser_profile} is taken from $profilename

   - Needs probably to be an own thread with root permission and a
     socket to send ADD/DELETE commands

* Fix core dump when openvpn process closes eDBdriver

* Write admin program
   - Add / Delete / Modify users
   - Add / Delete / Modify certificates (by loading the certfile)
   - Add / Remove user->certlink
   - Add / Delete blacklisted users/cert/IP addr
   - Show lastlog
   - Show blacklist
   - Admin program should use eurephiaDB
   
* Make new dblink-tpl.c template (started)
   - add new parameter to eDBregister_attempt(...) -- attempt_mode

* Write PostgreSQL driver

* A lot of QA
   - Writing test program for DB drivers
       - which tests only the driver
       - which tests the API, going through eurephiaDB
   - Check that user gets blocked on too many failing attempts

---------------------------------------------------------------------

* Write eurephia main module - phase 1 (DONE)
   - replaces sqlite-auth.so (DONE)
   - utilising eurephiaDB database driver (DONE)
   - Add openvpn_plugin_close_v1 (DONE)

* Rename eDBfree_sessionkey -> eDBfree_session (DONE)

* Move get_config from eurephiadb-sqlite.c to ../../eurephia_values.c (DONE)
   - Make it more general  (DONE)
   - make use of eurephiaVALUES instead of its own dblconfig struct (DONE)
   = Now it is also used by eurephiadb_session.c too.

* Rename eDBgenerate_sessionkey(...) -> eDBopen_session(...) (DONE)

* certinfo.c (DONE)
   - cname -> common_name failure (DONE)

* rename dblink to eurephiaDB (DONE)
   - DBL -> eDB (DONE)
   - Find better names than eDBsessionvalues, eDBsessionkey (eDB -> eurephia) (DONE)
      - DBLsessionkey -> eueurephiaSESSION (DONE)
      - DBLsessionvalues -> eurephiaVALUES (DONE)
   - Find better names than DBLattempt_* (DONE)
   - Rename DBLconnection -> eDBconn (DONE)
   - plugin_context -> eurephiaCTX  (DONE)

* Go through code, check comments (DONE)

* Improve drivers/sqlite/sqlite.c (DONE)
   - remove headers from all record tuples, put result headers in an own data struct
   - put a pointer in record pointers to the corresponding header column
   - make dbresult record chain a circular chain, with pointers in both directions
   - write an algorithm which finds the shortest way to loop to a specific record ID

* Implement eDB_DriverVersion() and eDB_DriverAPIversion() (DONE)