summaryrefslogtreecommitdiffstats
path: root/util/shmctl.c
Commit message (Collapse)AuthorAgeFilesLines
* convenient board watcher tools.piaip2005-04-201-20/+69
| | | | | | | | Suggestion: .BRD should have '0RootClass' as first board ([0]). Because the buggy board class thinks .BRD[0] as class root. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2702 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* more statistickcwu2005-03-271-0/+12
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2681 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix format stringkcwu2005-03-271-1/+1
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2678 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* statistic for user's first login todaykcwu2005-03-191-0/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2653 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* statistickcwu2005-03-191-1/+43
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2651 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* make usage of shmctl look betterkcwu2005-03-191-21/+34
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2649 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* remove dead codekcwu2005-03-191-5/+0
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2648 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* test if SHM->gap are all zerokcwu2005-03-191-0/+42
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2646 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* warning: searchuser() getuser() API change, don't change query string ↵kcwu2005-03-151-1/+1
| | | | | | implicitly. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2627 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* pass (1, argv) into sub main functionsin22005-03-141-3/+3
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2622 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* kick guest who idle more then 15 minuteskcwu2005-03-141-17/+16
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2621 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* bugfix: some user will always stay in friends' friend list after logoutkcwu2005-03-141-3/+3
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2620 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* add "cool down" feature for boards.wens2005-03-091-0/+3
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2582 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* don't trust string on shm, to avoid crashkcwu2005-02-281-2/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2559 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* run timed just after attach_SHM()kcwu2005-02-261-5/+5
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2552 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* * use fnv hash function for all hash.kcwu2005-02-261-18/+13
| | | | | | | | | | | * add version field in SHM. * clean up & reorder SHM, add gaps between arrays. * enlarge USHM_SIZE. * remove unused shmsweep.c. * WARNING, you need to stop bbs and clean old shm before run this revision. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2549 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* make valgrind happykcwu2005-02-241-0/+10
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2526 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix bugin22005-02-231-2/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2525 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* logout_friend_online() fault tolerantkcwu2005-02-061-0/+1
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2471 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* code clean up.kcwu2005-02-061-45/+49
| | | | | | | | purge utmp only if no bad field. don't change friend's friend if friend's field is bad. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2469 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* bug fix: variable uninitialized in utmpfix daemon-sleep mode.victor.edit@2465kcwu2005-02-051-0/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2465 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* in utmpfix, send SIGKILL if the processes are not response to SIGHUP.in22005-01-311-9/+35
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2450 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* use ctime4 for compat on x86_64wens2005-01-251-1/+1
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2430 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* use time4_t(uint32_t) instead of time_t for x86-64 arch.in22005-01-241-4/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2426 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix sorting criteria for chc/five recordkcwu2005-01-171-4/+4
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2406 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix stupid bug in utmpfix...wens2005-01-011-2/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2385 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* merge ptt.linux againwens2004-12-111-41/+43
| | | | | | | | | | | WARNING! There are some major differences in SHM_t. All pointers storing offsets in SHM_t have been changed to indexes. When updating to this revision, please rebuild the whole tree and restart the entire BBS system (kill all users first, stop, and start). git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2374 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* discard r2368 due to compilation failurein22004-12-061-43/+41
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2371 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* merge ptt.linuxwens2004-12-051-41/+43
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2368 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* chess listing sorted by rating(conditional) and player attitutekcwu2004-10-281-2/+19
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2283 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* add daemon mode for utmpfixin22004-10-251-27/+48
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2279 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* if some utmp records fails, utmpfix will clean the recordsin22004-10-201-7/+28
| | | | | | | and also kill them if their pids > 0. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2270 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix utmpfix that corrupt SHMkcwu2004-10-191-1/+8
| | | | | | | make utmpfix more sensitive on bad userid and friend number git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2266 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* shmctl should NOT fail in utmpfix, but when something wrongin22004-10-191-4/+31
| | | | | | | | | in SHM, this would happen and utmp is still dirty. so now shmctl will fork(2) before real utmpfix, and if it fails, utmpfix will start again automatically. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2265 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* typoin22004-10-091-1/+1
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2236 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* order by play count>0 firstkcwu2004-10-091-6/+22
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2231 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* correct revision 2210victor2004-09-231-0/+8
| | | | | | | add reloadfcache to shmctl git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2209 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* add reloadbcachein22004-05-241-1/+9
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2016 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix compile error & warning freein22004-04-151-1/+1
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1766 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* HOTBOARDCACHEin22004-03-101-3/+31
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1584 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* add some comments for ofo water mode.in22004-01-161-6/+6
| | | | | | | set nkwbd default to 5, 5 git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1484 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* dont remove a non-exist board when logoutvictor2004-01-031-2/+0
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1455 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* Remove altering wbtime in nkwbd, avoiding race.scw2004-01-031-1/+0
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1454 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* same as revision 1452victor2004-01-031-0/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1453 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* set default to 20, 20,in22004-01-031-9/+6
| | | | | | | | | remove debug message, show sleeptime, timeout on proctitle. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1450 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* Adding setproctitle for NoKillWaterBalld in shmctl.scw2004-01-021-0/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1444 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* warning freein22004-01-011-58/+58
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1443 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* NOKILLWATERBALL done.in22004-01-011-0/+67
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1442 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix assess, it may be rewritenvictor2003-12-011-2/+0
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1385 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* usermodein22003-10-231-0/+14
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1261 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* merge hotboard into shmctlin22003-10-231-0/+64
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1260 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* reduce sort times in utmpsortdin22003-09-261-27/+44
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1199 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* for vary OSvictor2003-08-201-0/+3
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1111 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* use NULL instead of (~ 0) in class linked-listin22003-08-121-3/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1092 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* merge from MergeCachein22003-07-201-9/+85
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@1065 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* add listbrdin22003-07-041-2/+30
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@1014 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* typeoin22003-06-211-4/+4
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@951 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* outta timer:pvictor2003-05-171-2/+14
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@861 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* timedin22003-05-151-4/+20
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@846 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* OUTTA_TIMERbbs2003-05-071-1/+4
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@823 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* sleep interval in argv[1]in22003-04-111-2/+7
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@787 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* when GV2.e.noonlineuser, do NOT search if the author is online in article listin22003-04-081-2/+3
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@780 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* dymaxactive, toomanyusersin22003-04-071-2/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@778 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* support GV2in22003-04-071-10/+26
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@777 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* remove cmsignalin22003-03-221-4/+1
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@707 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* remove cmsignal()in22003-03-221-17/+1
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@706 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* shmctl doesn't need resolve_boards() firstin22003-02-181-2/+3
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@664 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* lazy sort utmpin22003-02-111-2/+13
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@653 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* utmpsortdin22003-01-251-98/+139
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@647 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* critical memory cleanin22003-01-191-1/+20
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@633 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix bug of utmpfix fast modein22002-11-051-18/+17
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@556 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* (utmpfix)timeout by idle timein22002-11-031-35/+57
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@554 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* (utmpfix)clean lowerboundin22002-11-031-4/+11
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@553 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* listpidin22002-08-071-1/+11
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@459 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix utmpfix bugin22002-07-231-9/+9
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@434 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* remove mind fixin22002-07-051-6/+1
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@413 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* avoid utmp->friendtotal errorin22002-07-011-1/+3
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@397 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* remove fixbfriendin22002-06-261-22/+4
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@354 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix bug (UTMPnumber)in22002-06-131-2/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@324 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix bugin22002-06-071-2/+2
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@298 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* only one shared memoryin22002-06-071-81/+68
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@296 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* global variable move to var.cin22002-06-041-8/+8
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@280 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fixbfriendin22002-06-021-8/+30
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@274 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* getopt()in22002-05-171-12/+28
| | | | | | | timeout git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@181 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* show timeout timein22002-05-161-2/+5
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@177 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* idle timein22002-05-151-21/+30
| | | | | | | use searchuser to search if user exists git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@175 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* GLOBE supportin22002-04-151-1/+27
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@104 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix bugin22002-04-101-0/+1
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@96 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* use logout_friend if timeoutin22002-04-101-2/+36
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@94 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* remove pickup_t:idle, clean of idle timeout to shmctlin22002-04-101-16/+17
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@92 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* fix bugin22002-04-061-1/+3
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@87 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* shmctl shouldn't create shared memory itselfin22002-04-061-0/+7
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@86 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* add utmpnum for snmpdin22002-04-051-2/+8
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@80 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* :)in22002-03-301-2/+16
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@73 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* add utmpwatchin22002-03-261-0/+19
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@67 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* shmctlin22002-03-251-5/+18
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@62 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* add utmpstate, utmpin22002-03-241-20/+46
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@61 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* utmpsortin22002-03-241-1/+88
| | | | git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@60 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
* add shmctlin22002-03-231-0/+75
git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@59 63ad8ddf-47c3-0310-b6dd-a9e9d9715204