Carefully handle the signal, exit gracefully
[rahunas] / ChangeLog
1 2008-12-03  Neutron Soutmun <neo.neutron@gmail.com>
2
3         * src/rahunasd.c: Fix the malfunction rh_sighandler(), handle only SIGTERM and
4           adjust the code to let the program really exit gracefully.
5
6 2008-12-03  Neutron Soutmun <neo.neutron@gmail.com>
7
8         * src/rahunasd.c: Fix the worst case that the pid < 0 (fail) is parsed into 
9           the rh_sighandler() which the program must ignore this trigger.
10
11 2008-12-03  Neutron Soutmun <neo.neutron@gmail.com>
12
13         * src/rahunasd.{c,h}, src/rh-config.h, src/rh-ipset.{c,h}, 
14           src/rh-task-ipset.c, src/rh-task-memset.c, src/rh-task.h, 
15           src/rh-xmlrpc-cmd.c, src/rh-xmlrpc-server.{c,h}:
16           Use :retab to convert tab to 2 spaces.
17
18 2008-12-01  Neutron Soutmun <neo.neutron@gmail.com>
19
20         * example/firewall.sh.in:
21           - Fix the syntax error in excluded ip rules.
22           - Fix the malfunction of whitespace trim in the get_config_value() by
23             only left and right trim rather than trim every whitespace. This error
24             affect the excluded value which have many values whitespace separated.
25           - Fix $N malform declaration cause of the Usage message never show.
26
27 2008-11-28  Neutron Soutmun <neo.neutron@gmail.com>
28
29         * weblogin/config.php, weblogin/locale.php: Add default language setting.
30
31 2008-11-28  Neutron Soutmun <neo.neutron@gmail.com>
32
33         * src/rh-ipset.c: Fix mem free by replace free() with rh_free() for the 
34           variable allocated memory by rh_malloc() which prevent the double free.
35
36 2008-11-28  Neutron Soutmun <neo.neutron@gmail.com>
37
38         * weblogin/locale.php, weblogin/locale/*, +weblogin/messages.php,
39           weblogin/login.php, weblogin/logout.php: 
40           Add multilingual weblogin base on PHP gettext, now supported languages are 
41           Thai and English.
42         * weblogin/loading.gif, weblogin/note.txt: 
43           Change the loading animation picture which now is the hourclass spinning 
44           downloaded from www.clipartpoint.com. (Free to use it on website)
45         * -weblogin/rahu-{loading,waiting}.gif: Remove unused pictures.
46         * weblogin/templates/*/rahunas.css: Add new customized CSS for each template
47           which now can customized independently from the core.
48         * weblogin/templates/rahunas/rahunas.html: Adjust the rahunas template.
49
50 2008-11-27  Neutron Soutmun <neo.neutron@gmail.com>
51
52         * weblogin/config.php: 
53           - Adjust the weblogin config value to satisfy the default settings of 
54             RahuNAS.
55           - Set rahunas theme to be default theme.
56         * weblogin/{indedx,login,logout}.php,
57           weblogin/{rahu_radius.class,rahu_xmlrpc.class,xmlrpc_service}.php:
58           - Convert tab to 2 spaces (Beautify code for text editor compatibility).
59
60 2008-11-27  Neutron Soutmun <neo.neutron@gmail.com>
61
62         * -example/rahunas.{default,init,conf}, -example/{firewall,bandwidth}.sh
63           +example/rahunas.{default,init,conf}.in, 
64           +example/{firewall,bandwidth}.sh.in:
65           - Raname the wrapper script and example config files to .in which all of
66             them will be autogenerated on build time with the respective prefix path.
67         * configure.ac: Add the files above to AC_CONFIG_FILES.
68
69 2008-11-27  Neutron Soutmun <neo.neutron@gmail.com>
70
71         [ Suriya Soutmun ]
72         * +lcfg/lcfg_static.{h,c}, +lcfg/Makefile.am, +src/rh-config.c,
73           src/rahunasd.{h,c}:
74           Add liblcfg and their implementation to satisfy RahuNAS requirement.
75         * Makefile.am, configure.ac, src/Makefile.am: 
76           Add the lcfg and their implementation to build config and makefile.
77
78         [ Neutron Soutmun ]
79         * +example/rahunas.conf: Add example config file.
80         * -example/rahunas.firewall, -example/rahunas.bandwidth,
81           +example/firewall.sh, +example/bandwidth.sh:
82           - Rename the wrapper script.
83           - Adjust the firewall.sh to satisfy the config implementation.
84         * example/rahunas.default: 
85           Remove the parts the moved to the config file.
86         * src/rh-ipset.c, src/rh-task-ipset.c, src/rh-xmlrpc-cmd.c:
87           Update accordingly to new config implementation.
88
89 2008-11-26  Neutron Soutmun <neo.neutron@gmail.com>
90
91         * example/rahunas.bandwidth: Fix the script delete all filters rather than 
92           the specified flowid.
93
94 2008-11-26  Neutron Soutmun <neo.neutron@gmail.com>
95
96         * -rahunas.{init,default,firewall,bandwidth},
97           +example/rahunas.{init,default,firewall,bandwidth}:
98           Move rahunas.* wrapper scripts to example dir.
99
100 2008-11-26  Neutron Soutmun <neo.neutron@gmail.com>
101
102         * configure.ac: Remove old RAHUNAS_VERSION which now replaced by 
103           AC_SUBST(RAHUNAS_VERSION, major.minor.micro). 
104
105 2008-11-25  Neutron Soutmun <neo.neutron@gmail.com>
106
107         * rahunas.default: 
108           Add bandwidth shaping support by using the IMQ and iproute2.
109         * rahunas.firewall: 
110           Adjust to prevent the re-init firewall that cause the failure on the 
111                 stop process.
112         * rahunas.init: 
113           Adjust the firewall script caller.
114         * +rahunas.bandwidth: Add the rahunas bandwidth wrapper script.
115
116         * src/rh-task-bandwidth.{h,c}: Add bandwidth shaping task which response to
117           the WISPr-Bandwidth-Max-{Up,Down} that reply from RADIUS.
118         * src/rahunasd.h: Add bandwidth_slot_id into members structure.
119         * src/rh-task-dbset.c: 
120           - Add bandwidth_* into dbset_row structure.
121           - Add insert, fetch and restore code of bandwidth_* from DB into dbset_row 
122             structure.
123           - Change task priority to 10. (Lowest priority now).
124         * src/rh-task-ipset.c: 
125           Change task priority to 30. 
126         * src/rh-task-memset.c: 
127           Change task priority to 40. (Highest priority).
128         * src/rh-task.c: 
129           Include and register new task, bandwidth task.
130         * src/rh-task.h: 
131           Change the bandwidth_max_* type from long to unsigned long.
132         * src/Makefile.am: 
133           Update accordingly to bandwidth task implementation.
134         * weblogin/logout.php: 
135           Update CSS style for loginbox background.
136         * weblogin/templates/kkulogin/kkulogin.html: 
137           Update KKU-Login template.
138         * data/rahunas.db: 
139           Alter the schema of dbset table to support bandwidth fields.
140
141 2008-11-20  Neutron Soutmun <neo.neutron@gmail.com>
142
143         * rahunas.firewall: Add excluded IP support.
144
145 2008-11-19  Neutron Soutmun <neo.neutron@gmail.com>
146
147         * src/rh-xmlrpc-cmd.c: Fixed half-close socket, cause of the socket stay in 
148           the CLOSE_WAIT state (TCP resources starvation by mistake - forgot to close
149           the socket).
150
151 2008-11-18  Neutron Soutmun <neo.neutron@gmail.com>
152
153         * src/rh-ipset.c: 
154           Do not warning in syslog when the shutdown() and close() socket, fix syslog     flooding.
155
156 2008-11-14  Neutron Soutmun <neo.neutron@gmail.com>
157
158         * src/rh-ipset.c: 
159           Fixed the too many open files due to the uncleanly close sockets.
160         * src/rh-task-dbset.c:
161           Fixed the too many open temporary files due to unclosed connections.
162         * src/rh-xmlrpc-server.c:
163           Fixed the Session-Timeout handler which it does not set the session_timeout
164           in members data to 0 when the Session-Timeout is not set. 
165
166 2008-11-12  Neutron Soutmun <neo.neutron@gmail.com>
167
168         * weblogin/logout.php: Substring the request url to shorten the line
169           when it length longer than 20 chars.
170
171 2008-11-11  Neutron Soutmun <neo.neutron@gmail.com>
172
173         * rahunas.{default,firewall}: Add supporting for DHCP and DNS forwarding, 
174           Proxy, Transparent-Proxy and the Natwork Address Translation (Masquerading).
175         * weblogin/templates/rahunas/*: Add new login template for rahunas, 
176           "My inspiration" - featuring by my daughter, "Music".
177         * weblogin/{login,logout}.php: Adjust to support new template.
178
179 2008-11-06  Neutron Soutmun <neo.neutron@gmail.com>
180
181         * src/rahunas.{h,c}, src/rh-task-memset.c, rh-task.h, src/rh-xmlrpc-server.c:
182                 Add Session-Timeout support
183
184         * weblogin/login.php, weblogin/logout.php, weblogin/rahu_radius.class.php,
185           weblogin/rahu_xmlrpc.class.php:
186           Add Session-Timeout support and prepare the WISPr-Bandwidth-Max-{Down,Up}.
187
188 2008-11-03  Neutron Soutmun <neo.neutron@gmail.com>
189
190         * rahunas.firewall:
191           - Adjust the firewall to define new chain for easy start and stop.
192           - The firewall now cleanly start and stop by do not disturb other rules
193             than this script done.
194         * rahunas.init: Update respectively to rahunas.firewall changes.
195
196 2008-10-24  Neutron Soutmun <neo.neutron@gmail.com>
197
198         * src/rahunasd.h, src/rh-xmlrpc-server.c:
199           Empty MAC Address now substitute by DEFAULT_MAC (00:00:00:00:00:00) to
200                 support the new ignoremac feature (Tested with the OSPF Routing Protocol).
201
202         * weblogin/config.php, weblogin/index.php, weblogin/login.php, 
203           weblogin/logout.php:
204                 - Add supporting for https port number other than default 443. 
205                 - Default https port for RahuNAS is 8443. 
206         
207         * rahunas.firewall: 
208           - Adjust the wrong connmark from 10 to 0x2; 
209           - Remove unnecessary command.
210
211 2008-10-16  Neutron Soutmun <neo.neutron@gmail.com>
212
213         * +weblogin/*: Add the PHP web login.
214
215 2008-10-16  Neutron Soutmun <neo.neutron@gmail.com>
216
217         * -rahunas.in: Remove unnecessary.
218
219 2008-10-16  Neutron Soutmun <neo.neutron@gmail.com>
220
221         * +rahunas.{init.default,firewall}: Add the support scripts for do the 
222           initialize daemon, firewall and daemon config.
223         * data/rahunas.db: Remove the tested data from db.
224
225 2008-10-10  Neutron Soutmun <neo.neutron@gmail.com>
226
227         * configure.ac:
228           - Add the module checking for libgda which require to build the new 
229             database session backups (sqlite3).
230           - Add the major, minor and micro variables to easy handle the future 
231             version bump.
232           - Add VERSION and PROGRAM variables which will be used in the core program.
233           - Add data/Makefile.
234                 - Add src/include/linux/netfilter_ipv4/Makefile to include it in the 
235                   distribution. (make dist-*) 
236         * src/rahunasd.{h,c}: Update the code which using VERSION and PROGRAM 
237                   corresponding to the build config.
238         * +data/Makefile.am, +data/rahunas.db, Makefile.am: 
239           Add data dir which now contains sqlite3 db file and update makefile.
240         * +src/rh-task-dbset.{h,c}:     
241           Add the database session backups task.
242         * src/Makefile.am:
243           - Update corresponding to the new database session backups task.
244           - Add missing header files to rahunasd_SOURCES which they are not included
245                   in the distribution. (make dist-*)
246         * src/rh-config.h: Define DB_NAME which using by task-dbset.  
247         * src/rh-task-ipset.c: 
248           - Update taskprio from 1 to 2 for the appropriate 
249             point of working which now the ipset is the middle priority task.
250           - Update the positions of the logmsg. (Debuging purpose)
251         * src/rh-task-memset.c:
252           - Update taskprio from 2 to 3 for the appropriate 
253             point of working which now the memset is the most priority task.
254           - Update the positions of the logmsg. (Debuging purpose)
255         * src/rh-task.{h,c}: 
256           - Change the way to handle the tasklist from singly linked-list to the
257             GList from GLib which can handle the forward and backward link. (Doubly
258                   linked-list), the tasks eq. stopservice, stopsess, cleanup need to start 
259             from the least priority first. (Prevent the most significant data in 
260             memset was deleted which will cause the failures of the other tasks that 
261                         depend on it.
262           - Update the struct task structure by remove unneeded *next which now we
263             handle the task list by the GList.
264         * src/rh-xmlrpc-server.c: Move the req.id and req.req_opt to the inner of 
265           the condition checking because of their values not even use if the 
266           conditions are not true.
267         * +src/include/linux/netfilter_ipv4/Makefile.am: Add the header files in this 
268           dir to EXTRA_DIST which they will be distribute in the distribution.
269
270 2008-09-12  Neutron Soutmun <neo.neutron@gmail.com>
271
272         * +src/rh-task-*.{h,c}: 
273                 - Add the tasks concept of the workers. eg. memset, ipset,
274             dbset and etc. 
275           - Each tasks provide the function to handle each events, 
276                         eg. init, start and stop service, start and stop session.
277         * src/rahunas.{h,c}, src/rh-ipset.{h,c}, src/rh-utils.{h,c},
278           src/rh-xmlrpc-server.c: 
279           Change respectively to new tasks concept and do code beautifier. 
280         * +src/rh-config.h: Move the configuration definitions from rahunasd.h.
281         * src/Makefile.am: Change respectively to properly build the tasks concept.
282         * AUTHORS: Add Suriya Soutmun to the author team.
283
284 2008-09-03  Neutron Soutmun <neo.neutron@gmail.com>
285
286         * src/rahunasd.{h,c}: 
287           - Handle the signal and when child process is stopped or restart, 
288             send the stop accounting to Radius with NAS Reboot code.
289         * +src/rh-radius.h: Add predefined termination code of Radius.
290         * src/rh-xmlrpc-cmd.{h,c}: Change send_xmlrpc_stopacct() API, which provide
291           the ability to send the cause of the stop accounting.
292
293 2008-09-02  Neutron Soutmun <neo.neutron@gmail.com>
294
295         * src/rh-xmlrpc-cmd.h, src/rh-utils.h: Add header definitions.
296
297 2008-09-02  Neutron Soutmun <neo.neutron@gmail.com>
298
299         * +src/rh-xmlrpc-cmd.{h,c}: Add new xmlrpc client command sender.
300         * src/rahunasd.c: Move the send_xmlrpc_stopacct() code to rh-xmlrpc-cmd.
301         * src/Makefile.am: Update accordingly to new change.
302
303 2008-09-01  Neutron Soutmun <neo.neutron@gmail.com>
304
305         * src/rahunasd.c: Remove unnecessary functions.
306         * src/rh-xmlrpc-server.c: Free the allocated memory of the the vars that 
307           calling rh_string_get_sep().
308
309 2008-08-31  Neutron Soutmun <neo.neutron@gmail.com>
310
311         * +src/rh-utils.{h,c}: Add new utility functions.
312         * src/rahunasd.{h,c}: 
313           - Move rh_malloc() and rh_free() to rh-utils.
314           - include file rh-utils.h which now provide rh_{malloc,free}().
315         * src/rh-ipset.c: include file rh-utils.h.
316         * src/rh-xmlrpc-server.c:
317           - Implement new function rh_string_get_sep() which more clean looking code.
318         * src/Makefile.am: Update accordingly to new change.
319
320 2008-08-25  Neutron Soutmun <neo.neutron@gmail.com>
321
322         * src/rh-ipset.c:
323           - Shutdown will not close the socket after finish the request, 
324             try close() to done.
325
326 2008-08-23  Neutron Soutmun <neo.neutron@gmail.com>
327
328         * src/rh-ipset.c:
329           - Shutdown the socket after finish the request.
330           - Log the errno of the failure of the kernel_getsocket() to syslog for 
331             later debuging.
332
333 2008-08-23  Neutron Soutmun <neo.neutron@gmail.com>
334
335         * src/rahunasd.h:
336           - Fix typo the project name, it is shame.
337           - Change POLLING interval from 30 seconds to 60 seconds, 
338             try to prevent the socket access overload.
339         * src/rh-ipset.{h,c}:
340           - Try to open the socket until over the limit GETSOCK_TRIES before exit with            EXIT_FAILURE status.
341
342 2008-08-22  Neutron Soutmun <neo.neutron@gmail.com>
343
344         * src/rahunasd.c, src/rh-xmlrpc-server.c:
345           - Rename dummy to termstring (make sense).
346           - More preventing the segfault due to print NULL string pointer.
347
348 2008-08-21  Neutron Soutmun <neo.neutron@gmail.com>
349
350         * src/rahunasd.{h,c}, src/rh-xmlrpc-server.c:
351           - Prevent the segfault due to the log printing username and session_id 
352             pointing to NULL.
353           - Implement the ipset Flush set command.
354         * src/rh-ipset.{h,c}: Add code to support ipset Flush set command.
355         * + rahunas.in: Add init script example.
356
357 2008-08-21  Neutron Soutmun <neo.neutron@gmail.com>
358
359         * src/rahunasd.c: Remove the including to ipset-control.h which not exist now.
360
361 2008-08-21  Neutron Soutmun <neo.neutron@gmail.com>
362
363         * src/include/linux/netfilter_ipv4/ip_set*.h: 
364           add to resolve FTBFS when clone from git (forgot to commit last time).
365
366 2008-08-21  Neutron Soutmun <neo.neutron@gmail.com>
367
368         * src/rahunasd.{h,c}, src/rh-ipset.{h,c}, src/rh-xmlrpc-server.c:
369           Implement the native ipset command, the codes are adapted from ipset 
370           userspace program.
371         * src/ipset-control.{h,c}: Removed as they are replaced by new native ipset
372           implementation.
373         * src/Makefile.am: Adjust to support new native ipset implementation.
374
375 2008-08-20  Neutron Soutmun <neo.neutron@gmail.com>
376
377         * src/rahunas.{h,c}:
378           - Replace logmsg which using RH_DEBUG to new DP().
379
380 2008-08-20  Neutron Soutmun <neo.neutron@gmail.com>
381
382         * src/rahunas.h:
383           - Add predefine RH_LOG_LEVEL and set it to RH_LOG_NORMAL.
384           - Remove unneccessary code.
385
386 2008-08-20  Neutron Soutmun <neo.neutron@gmail.com>
387
388         * src/rahunas.h:
389           - Add timemsg(), static funtion returning the time message for logging. 
390           - Adjust DP() for the DEBUG logging, which activate by define RH_DEBUG in 
391             compilation time.
392
393         * src/rahunas.c:
394           - Adjust logmsg() to use the new timemsg().
395
396 2008-08-19  Neutron Soutmun <neo.neutron@gmail.com>
397
398         * src/rahunas.{h,c}:
399           - pipe stderr stream to logfile.
400
401         * src/rahunas.h:
402           - Add minor version numbering to VERSION.
403           - Change MAX_MEMBERS from dec to hex.
404
405 2008-08-19  Neutron Soutmun <neo.neutron@gmail.com>
406
407         * === First import the project ===