Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Synchronet
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Main
Synchronet
Commits
86e74a5a
Commit
86e74a5a
authored
2 years ago
by
Rob Swindell
Browse files
Options
Downloads
Patches
Plain Diff
Use redefined (legacy) LEN macros for v3.1x user.dat reading
parent
151bfde1
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/sbbs3/upgrade_to_v320.c
+64
-39
64 additions, 39 deletions
src/sbbs3/upgrade_to_v320.c
with
64 additions
and
39 deletions
src/sbbs3/upgrade_to_v320.c
+
64
−
39
View file @
86e74a5a
...
@@ -52,25 +52,50 @@ int lprintf(int level, const char *fmt, ...)
...
@@ -52,25 +52,50 @@ int lprintf(int level, const char *fmt, ...)
return
(
puts
(
sbuf
));
return
(
puts
(
sbuf
));
}
}
/* String lengths */
#define LEN31x_ALIAS 25
/* User alias */
#define LEN31x_NAME 25
/* User name */
#define LEN31x_HANDLE 8
/* User chat handle */
#define LEN31x_NOTE 30
/* User note */
#define LEN31x_COMP 30
/* User computer description */
#define LEN31x_COMMENT 60
/* User comment */
#define LEN31x_NETMAIL 60
/* NetMail forwarding address */
#define LEN31x_OLDPASS 8
/* User password (old) */
#define LEN31x_PHONE 12
/* User phone number */
#define LEN31x_BIRTH 8
/* Birthday in MM/DD/YY format */
#define LEN31x_ADDRESS 30
/* User address */
#define LEN31x_LOCATION 30
/* Location (City, State) */
#define LEN31x_ZIPCODE 10
/* Zip/Postal code */
#define LEN31x_MODEM 8
/* User modem type description */
#define LEN31x_CDT 20
/* Maximum credit length: 18446744073709551616 */
#define LEN31x_MAIN_CMD 8
/* Unused Storage in user.dat */
#define LEN31x_COLS 3
#define LEN31x_ROWS 3
#define LEN31x_PASS 40
#define LEN31x_SCAN_CMD 15
#define LEN31x_IPADDR 45
#define LEN31x_CID 45
/* Caller ID (phone number) */
/****************************************************************************/
/****************************************************************************/
/* This is a list of offsets into the USER.DAT file for different variables */
/* This is a list of offsets into the USER.DAT file for different variables */
/* that are stored (for each user) */
/* that are stored (for each user) */
/****************************************************************************/
/****************************************************************************/
#define U_ALIAS 0
/* Offset to alias */
#define U_ALIAS 0
/* Offset to alias */
#define U_NAME U_ALIAS+LEN_ALIAS
/* Offset to name */
#define U_NAME U_ALIAS+LEN
31x
_ALIAS
/* Offset to name */
#define U_HANDLE U_NAME+LEN_NAME
#define U_HANDLE U_NAME+LEN
31x
_NAME
#define U_NOTE U_HANDLE+LEN_HANDLE+2
#define U_NOTE U_HANDLE+LEN
31x
_HANDLE+2
#define U_COMP U_NOTE+LEN_NOTE
#define U_COMP U_NOTE+LEN
31x
_NOTE
#define U_COMMENT U_COMP+LEN_COMP+2
#define U_COMMENT U_COMP+LEN
31x
_COMP+2
#define U_NETMAIL U_COMMENT+LEN_COMMENT+2
#define U_NETMAIL U_COMMENT+LEN
31x
_COMMENT+2
#define U_ADDRESS U_NETMAIL+LEN_NETMAIL+2
#define U_ADDRESS U_NETMAIL+LEN
31x
_NETMAIL+2
#define U_LOCATION U_ADDRESS+LEN_ADDRESS
#define U_LOCATION U_ADDRESS+LEN
31x
_ADDRESS
#define U_ZIPCODE U_LOCATION+LEN_LOCATION
#define U_ZIPCODE U_LOCATION+LEN
31x
_LOCATION
#define U_OLDPASS U_ZIPCODE+LEN_ZIPCODE+2
#define U_OLDPASS U_ZIPCODE+LEN
31x
_ZIPCODE+2
#define U_PHONE U_OLDPASS+LEN_OLDPASS
/* Offset to phone-number */
#define U_PHONE U_OLDPASS+LEN
31x
_OLDPASS
/* Offset to phone-number */
#define U_BIRTH U_PHONE+12
/* Offset to users birthday */
#define U_BIRTH U_PHONE+12
/* Offset to users birthday */
#define U_MODEM U_BIRTH+8
#define U_MODEM U_BIRTH+8
#define U_LASTON U_MODEM+8
#define U_LASTON U_MODEM+8
...
@@ -111,14 +136,14 @@ int lprintf(int level, const char *fmt, ...)
...
@@ -111,14 +136,14 @@ int lprintf(int level, const char *fmt, ...)
#define U_CURSUB U_LEECH+2
/* Current sub (internal code) */
#define U_CURSUB U_LEECH+2
/* Current sub (internal code) */
#define U_CURXTRN U_CURSUB+16
/* Current xtrn (internal code) */
#define U_CURXTRN U_CURSUB+16
/* Current xtrn (internal code) */
#define U_ROWS U_CURXTRN+8+2
#define U_ROWS U_CURXTRN+8+2
#define U_COLS U_ROWS+LEN_ROWS
#define U_COLS U_ROWS+LEN
31x
_ROWS
#define U_CDT U_COLS+LEN_COLS
/* unused */
#define U_CDT U_COLS+LEN
31x
_COLS
/* unused */
#define U_MAIN_CMD U_CDT+LEN_CDT
#define U_MAIN_CMD U_CDT+LEN
31x
_CDT
#define U_PASS U_MAIN_CMD+LEN_MAIN_CMD
#define U_PASS U_MAIN_CMD+LEN
31x
_MAIN_CMD
#define U_FREECDT U_PASS+LEN_PASS+2
#define U_FREECDT U_PASS+LEN
31x
_PASS+2
#define U_SCAN_CMD U_FREECDT+LEN_CDT
/* unused */
#define U_SCAN_CMD U_FREECDT+LEN
31x
_CDT
/* unused */
#define U_IPADDR U_SCAN_CMD+LEN_SCAN_CMD
#define U_IPADDR U_SCAN_CMD+LEN
31x
_SCAN_CMD
#define U_OLDFREECDT U_IPADDR+LEN_IPADDR+2
/* unused */
#define U_OLDFREECDT U_IPADDR+LEN
31x
_IPADDR+2
/* unused */
#define U_FLAGS3 U_OLDFREECDT+10
/* Flag set #3 */
#define U_FLAGS3 U_OLDFREECDT+10
/* Flag set #3 */
#define U_FLAGS4 U_FLAGS3+8
/* Flag set #4 */
#define U_FLAGS4 U_FLAGS3+8
/* Flag set #4 */
#define U_XEDIT U_FLAGS4+8
/* External editor (code */
#define U_XEDIT U_FLAGS4+8
/* External editor (code */
...
@@ -246,23 +271,23 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
...
@@ -246,23 +271,23 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
user
->
number
=
user_number
;
/* Signal of success */
user
->
number
=
user_number
;
/* Signal of success */
/* order of these function calls is irrelevant */
/* order of these function calls is irrelevant */
getrec
(
userdat
,
U_ALIAS
,
LEN_ALIAS
,
user
->
alias
);
getrec
(
userdat
,
U_ALIAS
,
LEN
31x
_ALIAS
,
user
->
alias
);
getrec
(
userdat
,
U_NAME
,
LEN_NAME
,
user
->
name
);
getrec
(
userdat
,
U_NAME
,
LEN
31x
_NAME
,
user
->
name
);
getrec
(
userdat
,
U_HANDLE
,
LEN_HANDLE
,
user
->
handle
);
getrec
(
userdat
,
U_HANDLE
,
LEN
31x
_HANDLE
,
user
->
handle
);
getrec
(
userdat
,
U_NOTE
,
LEN_NOTE
,
user
->
note
);
getrec
(
userdat
,
U_NOTE
,
LEN
31x
_NOTE
,
user
->
note
);
getrec
(
userdat
,
U_COMP
,
LEN_COMP
,
user
->
comp
);
getrec
(
userdat
,
U_COMP
,
LEN
31x
_COMP
,
user
->
comp
);
getrec
(
userdat
,
U_COMMENT
,
LEN_COMMENT
,
user
->
comment
);
getrec
(
userdat
,
U_COMMENT
,
LEN
31x
_COMMENT
,
user
->
comment
);
getrec
(
userdat
,
U_NETMAIL
,
LEN_NETMAIL
,
user
->
netmail
);
getrec
(
userdat
,
U_NETMAIL
,
LEN
31x
_NETMAIL
,
user
->
netmail
);
getrec
(
userdat
,
U_ADDRESS
,
LEN_ADDRESS
,
user
->
address
);
getrec
(
userdat
,
U_ADDRESS
,
LEN
31x
_ADDRESS
,
user
->
address
);
getrec
(
userdat
,
U_LOCATION
,
LEN_LOCATION
,
user
->
location
);
getrec
(
userdat
,
U_LOCATION
,
LEN
31x
_LOCATION
,
user
->
location
);
getrec
(
userdat
,
U_ZIPCODE
,
LEN_ZIPCODE
,
user
->
zipcode
);
getrec
(
userdat
,
U_ZIPCODE
,
LEN
31x
_ZIPCODE
,
user
->
zipcode
);
getrec
(
userdat
,
U_PASS
,
LEN_PASS
,
user
->
pass
);
getrec
(
userdat
,
U_PASS
,
LEN
31x
_PASS
,
user
->
pass
);
if
(
user
->
pass
[
0
]
==
0
)
// Backwards compatibility hack
if
(
user
->
pass
[
0
]
==
0
)
// Backwards compatibility hack
getrec
(
userdat
,
U_OLDPASS
,
LEN_OLDPASS
,
user
->
pass
);
getrec
(
userdat
,
U_OLDPASS
,
LEN
31x
_OLDPASS
,
user
->
pass
);
getrec
(
userdat
,
U_PHONE
,
LEN_PHONE
,
user
->
phone
);
getrec
(
userdat
,
U_PHONE
,
LEN
31x
_PHONE
,
user
->
phone
);
getrec
(
userdat
,
U_BIRTH
,
LEN_BIRTH
,
user
->
birth
);
getrec
(
userdat
,
U_BIRTH
,
LEN
31x
_BIRTH
,
user
->
birth
);
getrec
(
userdat
,
U_MODEM
,
LEN_MODEM
,
user
->
modem
);
getrec
(
userdat
,
U_MODEM
,
LEN
31x
_MODEM
,
user
->
modem
);
getrec
(
userdat
,
U_IPADDR
,
LEN_IPADDR
,
user
->
ipaddr
);
getrec
(
userdat
,
U_IPADDR
,
LEN
31x
_IPADDR
,
user
->
ipaddr
);
getrec
(
userdat
,
U_LASTON
,
8
,
str
);
user
->
laston
=
ahtoul
(
str
);
getrec
(
userdat
,
U_LASTON
,
8
,
str
);
user
->
laston
=
ahtoul
(
str
);
getrec
(
userdat
,
U_FIRSTON
,
8
,
str
);
user
->
firston
=
ahtoul
(
str
);
getrec
(
userdat
,
U_FIRSTON
,
8
,
str
);
user
->
firston
=
ahtoul
(
str
);
getrec
(
userdat
,
U_EXPIRE
,
8
,
str
);
user
->
expire
=
ahtoul
(
str
);
getrec
(
userdat
,
U_EXPIRE
,
8
,
str
);
user
->
expire
=
ahtoul
(
str
);
...
@@ -288,7 +313,7 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
...
@@ -288,7 +313,7 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
getrec
(
userdat
,
U_ULS
,
5
,
str
);
user
->
uls
=
atoi
(
str
);
getrec
(
userdat
,
U_ULS
,
5
,
str
);
user
->
uls
=
atoi
(
str
);
getrec
(
userdat
,
U_DLB
,
10
,
str
);
user
->
dlb
=
parse_byte_count
(
str
,
1
);
getrec
(
userdat
,
U_DLB
,
10
,
str
);
user
->
dlb
=
parse_byte_count
(
str
,
1
);
getrec
(
userdat
,
U_DLS
,
5
,
str
);
user
->
dls
=
atoi
(
str
);
getrec
(
userdat
,
U_DLS
,
5
,
str
);
user
->
dls
=
atoi
(
str
);
getrec
(
userdat
,
U_CDT
,
LEN_CDT
,
str
);
getrec
(
userdat
,
U_CDT
,
LEN
31x
_CDT
,
str
);
if
(
str
[
0
]
<
'0'
||
str
[
0
]
>
'9'
)
if
(
str
[
0
]
<
'0'
||
str
[
0
]
>
'9'
)
getrec
(
userdat
,
U_OLDCDT
,
10
,
str
);
getrec
(
userdat
,
U_OLDCDT
,
10
,
str
);
user
->
cdt
=
strtoull
(
str
,
NULL
,
10
);
user
->
cdt
=
strtoull
(
str
,
NULL
,
10
);
...
@@ -301,11 +326,11 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
...
@@ -301,11 +326,11 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
getrec
(
userdat
,
U_EXEMPT
,
8
,
str
);
user
->
exempt
=
ahtoul
(
str
)
&
0x03ffffff
;
getrec
(
userdat
,
U_EXEMPT
,
8
,
str
);
user
->
exempt
=
ahtoul
(
str
)
&
0x03ffffff
;
getrec
(
userdat
,
U_REST
,
8
,
str
);
user
->
rest
=
ahtoul
(
str
)
&
0x03ffffff
;
getrec
(
userdat
,
U_REST
,
8
,
str
);
user
->
rest
=
ahtoul
(
str
)
&
0x03ffffff
;
if
(
getrec
(
userdat
,
U_OLDROWS
,
2
,
str
)
<=
0
)
// Moved to new location
if
(
getrec
(
userdat
,
U_OLDROWS
,
2
,
str
)
<=
0
)
// Moved to new location
getrec
(
userdat
,
U_ROWS
,
LEN_ROWS
,
str
);
getrec
(
userdat
,
U_ROWS
,
LEN
31x
_ROWS
,
str
);
user
->
rows
=
atoi
(
str
);
user
->
rows
=
atoi
(
str
);
if
(
user
->
rows
&&
user
->
rows
<
TERM_ROWS_MIN
)
if
(
user
->
rows
&&
user
->
rows
<
TERM_ROWS_MIN
)
user
->
rows
=
TERM_ROWS_MIN
;
user
->
rows
=
TERM_ROWS_MIN
;
getrec
(
userdat
,
U_COLS
,
LEN_COLS
,
str
);
getrec
(
userdat
,
U_COLS
,
LEN
31x
_COLS
,
str
);
user
->
cols
=
atoi
(
str
);
user
->
cols
=
atoi
(
str
);
if
(
user
->
cols
&&
user
->
cols
<
TERM_COLS_MIN
)
if
(
user
->
cols
&&
user
->
cols
<
TERM_COLS_MIN
)
user
->
cols
=
TERM_COLS_MIN
;
user
->
cols
=
TERM_COLS_MIN
;
...
@@ -325,7 +350,7 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
...
@@ -325,7 +350,7 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
getrec
(
userdat
,
U_CURDIR
,
sizeof
(
user
->
curdir
)
-
1
,
user
->
curdir
);
getrec
(
userdat
,
U_CURDIR
,
sizeof
(
user
->
curdir
)
-
1
,
user
->
curdir
);
getrec
(
userdat
,
U_CURXTRN
,
8
,
user
->
curxtrn
);
getrec
(
userdat
,
U_CURXTRN
,
8
,
user
->
curxtrn
);
getrec
(
userdat
,
U_FREECDT
,
LEN_CDT
,
str
);
getrec
(
userdat
,
U_FREECDT
,
LEN
31x
_CDT
,
str
);
if
(
str
[
0
]
<
'0'
||
str
[
0
]
>
'9'
)
if
(
str
[
0
]
<
'0'
||
str
[
0
]
>
'9'
)
getrec
(
userdat
,
U_OLDFREECDT
,
10
,
str
);
getrec
(
userdat
,
U_OLDFREECDT
,
10
,
str
);
user
->
freecdt
=
strtoull
(
str
,
NULL
,
10
);
user
->
freecdt
=
strtoull
(
str
,
NULL
,
10
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment