diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-09-10 18:05:12 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-09-10 18:05:12 +0800 |
commit | 0a50f91422cc78e215c541d08dbf30fdeb91477c (patch) | |
tree | 9b09fa98181fe6ef345109eb0c279d3628889c09 /upgrade | |
parent | 78a17f4498134b9db1fc95e7be14798422475475 (diff) | |
parent | f115309f094fb58ce49a14a24d58144aa13d3e5c (diff) | |
download | pttbbs-0a50f91422cc78e215c541d08dbf30fdeb91477c.tar pttbbs-0a50f91422cc78e215c541d08dbf30fdeb91477c.tar.gz pttbbs-0a50f91422cc78e215c541d08dbf30fdeb91477c.tar.bz2 pttbbs-0a50f91422cc78e215c541d08dbf30fdeb91477c.tar.lz pttbbs-0a50f91422cc78e215c541d08dbf30fdeb91477c.tar.xz pttbbs-0a50f91422cc78e215c541d08dbf30fdeb91477c.tar.zst pttbbs-0a50f91422cc78e215c541d08dbf30fdeb91477c.zip |
* make pwcu branch as trunk.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4826 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'upgrade')
-rw-r--r-- | upgrade/Makefile | 3 | ||||
-rw-r--r-- | upgrade/r4825_pwcu.c | 77 |
2 files changed, 78 insertions, 2 deletions
diff --git a/upgrade/Makefile b/upgrade/Makefile index 833881b1..373ba4ac 100644 --- a/upgrade/Makefile +++ b/upgrade/Makefile @@ -9,8 +9,7 @@ CFLAGS+= -DPTTBBS_UTIL BBSBASE= $(SRCROOT)/include/var.h UTIL_OBJS= \ - util_cache.o util_record.o util_passwd.o util_var.o \ - util_stuff.o + util_var.o LDLIBS+= $(SRCROOT)/common/sys/libcmsys.a \ $(SRCROOT)/common/bbs/libcmbbs.a diff --git a/upgrade/r4825_pwcu.c b/upgrade/r4825_pwcu.c new file mode 100644 index 00000000..32c5d3ce --- /dev/null +++ b/upgrade/r4825_pwcu.c @@ -0,0 +1,77 @@ +#define _UTIL_C_ +#include "bbs.h" +#include <time.h> + +int accs = 0; + +int transform(userec_t *new, userec_t *old, int i) +{ + int mind = 1, maxd = 1; + userec_t *u = new; + + memcpy(new, old, sizeof(userec_t)); + + if (!u->userid[0]) + return 0; + + accs ++; + + // save old login number + u->old_numlogins = u->numlogindays; + + // adjust new 'lastseen' + u->lastseen = u->lastlogin; + + // check validate firstlogin + // if (u->firstlogin < SITE_CREATION_DATE) + // u->firstlogin = SITE_CREATION_DATE; + + // calculate max logindays + maxd = (u->lastlogin - u->firstlogin) / DAY_SECONDS; + if (maxd < mind) + maxd = mind; + if (u->numlogindays > maxd) + u->numlogindays = maxd; + + printf("%-13s: numlogin: %d -> %d\n", + u->userid, u->old_numlogins, u->numlogindays); + + // force convert! + // passwd_update(n+1, u); + + return 0; +} + +int main(void) +{ + int fd, fdw; + userec_t new; + userec_t old; + int i = 0; + + printf("sizeof(userec_t)=%u\n", (unsigned int)sizeof(userec_t)); + printf("You're going to convert your .PASSWDS\n"); + printf("The new file will be named .PASSWDS.trans.tmp\n"); + + if (chdir(BBSHOME) < 0) { + perror("chdir"); + exit(-1); + } + + if ((fd = open(FN_PASSWD, O_RDONLY)) < 0 || + (fdw = open(FN_PASSWD".trans.tmp", O_WRONLY | O_CREAT | O_TRUNC, 0600)) < 0 ) { + perror("open"); + exit(-1); + } + + while (read(fd, &old, sizeof(old)) > 0) { + transform(&new, &old, ++i); + write(fdw, &new, sizeof(new)); + } + + close(fd); + close(fdw); + + printf("total %d records converted.\n", accs); + return 0; +} |