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
40bf73bc
Commit
40bf73bc
authored
11 years ago
by
deuce
Browse files
Options
Downloads
Patches
Plain Diff
Run through "indent -nce -ci16 -cli1 -di1 -eei -npsl" because DAMN!
parent
7667fddf
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
xtrn/sbl/sbl.c
+1043
-918
1043 additions, 918 deletions
xtrn/sbl/sbl.c
with
1043 additions
and
918 deletions
xtrn/sbl/sbl.c
+
1043
−
918
View file @
40bf73bc
...
...
@@ -225,7 +225,8 @@ char *mon[]={"Jan","Feb","Mar","Apr","May","Jun"
,
"Jul"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
};
char
tmp
[
256
];
char
list_fmt
[
128
];
uint
del_days
,
add_ml
,
update_ml
,
remove_ml
,
verify_ml
,
sbl_pause
=
1
,
notify_user
;
uint
del_days
,
add_ml
,
update_ml
,
remove_ml
,
verify_ml
,
sbl_pause
=
1
,
notify_user
;
time_t
now
;
/****************************************************************************/
...
...
@@ -247,13 +248,15 @@ char *timestr(uint32_t intime)
hour
=
12
;
else
hour
=
gm
->
tm_hour
-
12
;
strcpy
(
mer
,
"pm"
);
}
strcpy
(
mer
,
"pm"
);
}
else
{
if
(
gm
->
tm_hour
==
0
)
hour
=
12
;
else
hour
=
gm
->
tm_hour
;
strcpy
(
mer
,
"am"
);
}
strcpy
(
mer
,
"am"
);
}
sprintf
(
str
,
"%s %s %02d %4d %02d:%02d %s"
,
wday
[
gm
->
tm_wday
],
mon
[
gm
->
tm_mon
],
gm
->
tm_mday
,
1900
+
gm
->
tm_year
,
hour
,
gm
->
tm_min
,
mer
);
...
...
@@ -298,11 +301,13 @@ char * unixtodstr(time_t t, char *str)
}
if
(
tm
->
tm_mon
>
11
)
{
/* DOS leap year bug */
tm
->
tm_mon
=
0
;
tm
->
tm_year
++
;
}
tm
->
tm_year
++
;
}
if
(
tm
->
tm_mday
>
31
)
tm
->
tm_mday
=
1
;
sprintf
(
str
,
"%02u/%02u/%02u"
,
tm
->
tm_mon
+
1
,
tm
->
tm_mday
,
tm
->
tm_year
%
100
);
}
,
tm
->
tm_year
%
100
);
}
return
(
str
);
}
...
...
@@ -312,11 +317,13 @@ void dots(int show)
if
(
!
show
)
{
/* reset */
i
=
0
;
return
;
}
return
;
}
if
(
++
i
>
5
)
{
bputs
(
"
\b\b\b\b\b
\b\b\b\b\b
"
);
i
=
0
;
return
;
}
return
;
}
outchar
(
'.'
);
}
...
...
@@ -330,7 +337,8 @@ char short_bbs_info(bbs_t bbs)
for
(
i
=
0
;
i
<
bbs
.
total_numbers
&&
i
<
MAX_NUMBERS
;
i
++
)
{
for
(
j
=
0
;
list_fmt
[
j
];
j
++
)
{
if
(
j
)
bputs
(
" "
);
if
(
j
)
bputs
(
" "
);
switch
(
toupper
(
list_fmt
[
j
]))
{
case
'N'
:
bprintf
(
"
\1
h
\1
m%-25.25s"
,
i
?
nulstr
:
bbs
.
name
);
...
...
@@ -348,7 +356,8 @@ char short_bbs_info(bbs_t bbs)
else
strcpy
(
str
,
bbs
.
number
[
i
].
telnet
.
addr
);
bprintf
(
"
\1
h
\1
b%-28.28s"
,
str
);
}
else
}
else
bprintf
(
"
\1
n
\1
g%12.12s"
,
bbs
.
number
[
i
].
modem
.
number
);
break
;
case
'B'
:
...
...
@@ -363,16 +372,22 @@ char short_bbs_info(bbs_t bbs)
bprintf
(
"
\1
h
\1
y%-25.25s"
,
i
?
nulstr
:
bbs
.
sysop
[
0
]);
break
;
case
'T'
:
if
(
i
)
bputs
(
" "
);
else
bprintf
(
"
\1
y
\1
h%3u"
,
bbs
.
nodes
);
if
(
i
)
bputs
(
" "
);
else
bprintf
(
"
\1
y
\1
h%3u"
,
bbs
.
nodes
);
break
;
case
'U'
:
if
(
i
)
bputs
(
" "
);
else
bprintf
(
"
\1
n
\1
r%5u"
,
bbs
.
users
);
if
(
i
)
bputs
(
" "
);
else
bprintf
(
"
\1
n
\1
r%5u"
,
bbs
.
users
);
break
;
case
'H'
:
if
(
i
)
bprintf
(
"%10.10s"
,
nulstr
);
else
bprintf
(
"
\1
h
\1
r%10u"
,
bbs
.
megs
);
if
(
i
)
bprintf
(
"%10.10s"
,
nulstr
);
else
bprintf
(
"
\1
h
\1
r%10u"
,
bbs
.
megs
);
break
;
case
'L'
:
bprintf
(
"
\1
n
\1
c%-20.20s"
,
bbs
.
number
[
i
].
modem
.
location
);
...
...
@@ -392,8 +407,10 @@ char short_bbs_info(bbs_t bbs)
default:
bprintf
(
"%c"
,
list_fmt
[
j
]);
break
;
}
}
bputs
(
"
\r\n
"
);
}
}
}
bputs
(
"
\r\n
"
);
}
#if 0
if (kbhit())
return (0);
...
...
@@ -418,7 +435,8 @@ for(i=0;i<bbs.total_sysops && i<MAX_SYSOPS;i++) {
if
(
!
(
i
%
4
))
bputs
(
"
\r\n
"
);
if
(
i
+
1
==
bbs
.
total_sysops
)
bputs
(
"and "
);
}
bputs
(
"and "
);
}
bprintf
(
"
\1
h%s
\1
n
\1
g"
,
bbs
.
sysop
[
i
]);
if
(
!
i
&&
bbs
.
sysop_email
[
0
])
bprintf
(
" <
\1
h%s
\1
n
\1
g>"
,
bbs
.
sysop_email
);
...
...
@@ -442,8 +460,10 @@ for(i=0;i<bbs.total_networks && i<MAX_NETS;i++) {
if
(
!
(
i
%
3
))
bputs
(
"
\r\n
"
);
if
(
i
+
1
==
bbs
.
total_networks
)
bputs
(
"and "
);
}
bprintf
(
"
\1
h%s [%s]
\1
n
\1
g"
,
bbs
.
network
[
i
],
bbs
.
address
[
i
]);
}
bputs
(
"and "
);
}
bprintf
(
"
\1
h%s [%s]
\1
n
\1
g"
,
bbs
.
network
[
i
],
bbs
.
address
[
i
]);
}
CRLF
;
bprintf
(
"Terminal: "
);
for
(
i
=
0
;
i
<
bbs
.
total_terminals
&&
i
<
MAX_TERMS
;
i
++
)
{
...
...
@@ -453,8 +473,10 @@ for(i=0;i<bbs.total_terminals && i<MAX_TERMS;i++) {
else
outchar
(
' '
);
if
(
i
+
1
==
bbs
.
total_terminals
)
bputs
(
"and "
);
}
bprintf
(
"
\1
h%s
\1
n
\1
g"
,
bbs
.
terminal
[
i
]);
}
bputs
(
"and "
);
}
bprintf
(
"
\1
h%s
\1
n
\1
g"
,
bbs
.
terminal
[
i
]);
}
CRLF
;
if
(
bbs
.
web_url
[
0
])
bprintf
(
"Web-site: http://
\1
h%s
\r\n
"
,
bbs
.
web_url
);
...
...
@@ -472,7 +494,8 @@ for(i=0;i<bbs.total_numbers && i<MAX_NUMBERS;i++) {
else
bprintf
(
"
\1
n
\1
mtelnet://
\1
h%s
\r\n
"
,
bbs
.
number
[
i
].
telnet
.
addr
);
}
else
}
else
bprintf
(
"
\1
n
\1
g%12.12s
\1
h%5u
\1
b%-15.15s
\1
n
\1
cMinimum:
\1
h%u
\r\n
"
,
bbs
.
number
[
i
].
modem
.
number
,
bbs
.
number
[
i
].
modem
.
max_rate
...
...
@@ -483,7 +506,8 @@ bputs("\r\n\1w\1h");
for
(
i
=
0
;
i
<
DESC_LINES
;
i
++
)
{
if
(
!
bbs
.
desc
[
i
][
0
])
break
;
bprintf
(
"%15s%s
\r\n
"
,
nulstr
,
bbs
.
desc
[
i
]);
}
bprintf
(
"%15s%s
\r\n
"
,
nulstr
,
bbs
.
desc
[
i
]);
}
CRLF
;
if
(
bbs
.
misc
&
FROM_SMB
)
...
...
@@ -504,13 +528,15 @@ if(bbs.verified && bbs.userverified[0])
CRLF
;
if
(
aborted
)
{
aborted
=
0
;
return
(
0
);
}
return
(
0
);
}
if
(
!
sbl_pause
)
{
#if 0
if (kbhit())
return (0);
#endif
return
(
1
);
}
return
(
1
);
}
nodesync
();
#if VERIFICATION_MOD
bputs
(
"More? Y/N/V "
);
...
...
@@ -541,7 +567,8 @@ if(!(bbs->user[0]))
if
(
SYSOP
)
{
bputs
(
"
\1
y
\1
hUser Name (Creator/Owner of Entry): "
);
if
(
!
getstr
(
bbs
->
user
,
25
,
K_EDIT
|
K_LINE
|
K_AUTODEL
))
return
(
0
);
}
return
(
0
);
}
bputs
(
"
\1
y
\1
hSystem Name: "
);
if
(
getstr
(
bbs
->
name
,
25
,
K_EDIT
|
K_LINE
|
K_AUTODEL
)
<
2
)
return
(
0
);
...
...
@@ -568,24 +595,29 @@ unixtodstr(bbs->birth,str);
bprintf
(
"
\1
y
\1
hFirst Day Online (MM/DD/YY):
\1
w"
);
if
(
getstr
(
str
,
8
,
K_UPPER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
birth
=
dstrtounix
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
for
(
i
=
0
;
i
<
MAX_NETS
&&
!
aborted
;
i
++
)
{
bprintf
(
"
\1
y
\1
hName of Message Network #%d [
\1
wNone
\1
y]: "
,
i
+
1
);
if
(
!
getstr
(
bbs
->
network
[
i
],
15
,
K_EDIT
|
K_AUTODEL
|
K_LINE
))
break
;
bprintf
(
"
\1
y
\1
hNetwork Message
\1
wAddress
\1
y #%d [
\1
wNone
\1
y]:
\1
w"
,
i
+
1
);
getstr
(
bbs
->
address
[
i
],
25
,
K_EDIT
|
K_AUTODEL
);
}
getstr
(
bbs
->
address
[
i
],
25
,
K_EDIT
|
K_AUTODEL
);
}
bbs
->
total_networks
=
i
;
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
for
(
i
=
0
;
i
<
MAX_TERMS
&&
!
aborted
;
i
++
)
{
bprintf
(
"
\1
y
\1
hSupported Terminal Type #%d (i.e. TTY, ANSI, RIP) "
"[
\1
wNone
\1
y]: "
,
i
+
1
);
if
(
!
getstr
(
bbs
->
terminal
[
i
],
15
,
K_EDIT
|
K_AUTODEL
|
K_LINE
))
break
;
}
break
;
}
bbs
->
total_terminals
=
i
;
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
bprintf
(
"
\1
y
\1
hWeb-site [
\1
wNone
\1
y] http://
\1
w"
);
getstr
(
bbs
->
web_url
,
60
,
K_EDIT
|
K_AUTODEL
);
...
...
@@ -598,7 +630,8 @@ if(getstr(str,5,K_NUMBER|K_EDIT|K_AUTODEL))
bbs
->
nodes
=
atoi
(
str
);
if
(
!
bbs
->
nodes
)
bbs
->
nodes
=
1
;
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
for
(
i
=
0
;
i
<
MAX_NUMBERS
;
i
++
)
{
#if 0
...
...
@@ -612,8 +645,10 @@ for(i=0;i<MAX_NUMBERS;i++) {
if
(
!
i
)
strcpy
(
bbs
->
number
[
i
].
modem
.
location
,
user_location
);
else
strcpy
(
bbs
->
number
[
i
].
modem
.
location
,
bbs
->
number
[
i
-
1
].
modem
.
location
);
}
if
(
aborted
)
return
(
0
);
strcpy
(
bbs
->
number
[
i
].
modem
.
location
,
bbs
->
number
[
i
-
1
].
modem
.
location
);
}
if
(
aborted
)
return
(
0
);
if
(
isalpha
(
bbs
->
number
[
i
].
telnet
.
addr
[
0
])
||
yesno
(
"Is the above a Telnet address"
))
{
bbs
->
number
[
i
].
modem
.
min_rate
=
0xffff
;
...
...
@@ -623,9 +658,11 @@ for(i=0;i<MAX_NUMBERS;i++) {
sprintf
(
str
,
"%u"
,
bbs
->
number
[
i
].
telnet
.
port
);
if
(
getstr
(
str
,
5
,
K_NUMBER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
number
[
i
].
telnet
.
port
=
atoi
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
}
else
{
}
else
{
if
(
bbs
->
number
[
i
].
modem
.
min_rate
==
0xffff
)
bbs
->
number
[
i
].
modem
.
min_rate
=
300
;
bbs
->
number
[
i
].
modem
.
number
[
13
]
=
0
;
...
...
@@ -633,25 +670,29 @@ for(i=0;i<MAX_NUMBERS;i++) {
if
(
i
)
bbs
->
number
[
i
].
modem
.
min_rate
=
bbs
->
number
[
i
-
1
].
modem
.
min_rate
;
else
bbs
->
number
[
i
].
modem
.
min_rate
=
300
;
}
bbs
->
number
[
i
].
modem
.
min_rate
=
300
;
}
bprintf
(
"
\1
y
\1
hMinimum Connect Rate:
\1
w"
);
sprintf
(
str
,
"%u"
,
bbs
->
number
[
i
].
modem
.
min_rate
);
if
(
getstr
(
str
,
5
,
K_NUMBER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
number
[
i
].
modem
.
min_rate
=
atoi
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
if
(
!
bbs
->
number
[
i
].
modem
.
max_rate
)
{
if
(
i
)
bbs
->
number
[
i
].
modem
.
max_rate
=
bbs
->
number
[
i
-
1
].
modem
.
max_rate
;
else
bbs
->
number
[
i
].
modem
.
max_rate
=
2400
;
}
bbs
->
number
[
i
].
modem
.
max_rate
=
2400
;
}
if
(
bbs
->
number
[
i
].
modem
.
max_rate
<
bbs
->
number
[
i
].
modem
.
min_rate
)
bbs
->
number
[
i
].
modem
.
max_rate
=
bbs
->
number
[
i
].
modem
.
min_rate
;
bprintf
(
"
\1
y
\1
hMaximum Connect Rate (i.e. 2400, 9600, 14400, etc):
\1
w"
);
sprintf
(
str
,
"%u"
,
bbs
->
number
[
i
].
modem
.
max_rate
);
if
(
getstr
(
str
,
5
,
K_NUMBER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
number
[
i
].
modem
.
max_rate
=
atoi
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
bprintf
(
"
\1
y
\1
hModem Description (i.e. Hayes, HST, V.32, etc):
\1
w"
);
getstr
(
bbs
->
number
[
i
].
modem
.
desc
,
15
,
K_EDIT
|
K_AUTODEL
);
}
...
...
@@ -673,7 +714,8 @@ bprintf("\1y\1hTotal Number of Users: \1w");
sprintf
(
str
,
"%u"
,
bbs
->
users
);
if
(
getstr
(
str
,
5
,
K_NUMBER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
users
=
atoi
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
if
(
!
bbs
->
subs
)
bbs
->
subs
=
10
;
...
...
@@ -681,7 +723,8 @@ bprintf("\1y\1hTotal Number of Sub-boards (Message Areas): \1w");
sprintf
(
str
,
"%u"
,
bbs
->
subs
);
if
(
getstr
(
str
,
5
,
K_NUMBER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
subs
=
atoi
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
if
(
!
bbs
->
msgs
)
bbs
->
msgs
=
500
;
...
...
@@ -689,7 +732,8 @@ bprintf("\1y\1hTotal Number of Public Messages: \1w");
sprintf
(
str
,
"%lu"
,
bbs
->
msgs
);
if
(
getstr
(
str
,
10
,
K_NUMBER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
msgs
=
atol
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
if
(
!
bbs
->
dirs
)
bbs
->
dirs
=
5
;
...
...
@@ -697,7 +741,8 @@ bprintf("\1y\1hTotal Number of Directories (File Areas): \1w");
sprintf
(
str
,
"%u"
,
bbs
->
dirs
);
if
(
getstr
(
str
,
5
,
K_NUMBER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
dirs
=
atoi
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
if
(
!
bbs
->
files
)
bbs
->
files
=
250
;
...
...
@@ -705,7 +750,8 @@ bprintf("\1y\1hTotal Number of Downloadable Files: \1w");
sprintf
(
str
,
"%lu"
,
bbs
->
files
);
if
(
getstr
(
str
,
10
,
K_NUMBER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
files
=
atol
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
if
(
!
bbs
->
xtrns
)
bbs
->
xtrns
=
5
;
...
...
@@ -713,7 +759,8 @@ bprintf("\1y\1hTotal Number of External Programs (Doors): \1w");
sprintf
(
str
,
"%u"
,
bbs
->
xtrns
);
if
(
getstr
(
str
,
5
,
K_NUMBER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
xtrns
=
atoi
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
if
(
!
bbs
->
megs
)
bbs
->
megs
=
40
;
...
...
@@ -721,12 +768,14 @@ bprintf("\1y\1hTotal Storage Space (in Megabytes): \1w");
sprintf
(
str
,
"%lu"
,
bbs
->
megs
);
if
(
getstr
(
str
,
10
,
K_NUMBER
|
K_EDIT
|
K_AUTODEL
))
bbs
->
megs
=
atol
(
str
);
if
(
aborted
)
return
(
0
);
if
(
aborted
)
return
(
0
);
for
(
i
=
0
;
i
<
DESC_LINES
;
i
++
)
{
bprintf
(
"
\1
y
\1
hBBS Description (%d of %d): "
,
i
+
1
,
DESC_LINES
);
if
(
!
getstr
(
bbs
->
desc
[
i
],
50
,
K_EDIT
|
K_AUTODEL
|
K_LINE
))
break
;
}
break
;
}
return
(
1
);
}
...
...
@@ -742,7 +791,8 @@ strupr(part);
if
(
inname
[
0
]
&&
(
strstr
(
name
,
part
)
||
strstr
(
part
,
name
)))
{
sprintf
(
str
,
"
\r\n
Do you mean %s"
,
inname
);
if
(
yesno
(
str
))
return
(
1
);
}
return
(
1
);
}
return
(
0
);
}
...
...
@@ -788,7 +838,8 @@ int main(int argc, char **argv)
xsdk_mode
&=
~
XSDK_MODE_NOCONSOLE
;
break
;
}
}
else
}
else
database
=
argv
[
i
];
p
=
getenv
(
"SBBSNODE"
);
...
...
@@ -796,7 +847,8 @@ int main(int argc, char **argv)
strcpy
(
node_dir
,
p
);
else
{
printf
(
"
\n
SBBSNODE environment variable must be set
\n
"
);
exit
(
0
);
}
exit
(
0
);
}
if
(
node_dir
[
strlen
(
node_dir
)
-
1
]
!=
'\\'
&&
node_dir
[
strlen
(
node_dir
)
-
1
]
!=
'/'
)
strcat
(
node_dir
,
"/"
);
...
...
@@ -804,10 +856,12 @@ int main(int argc, char **argv)
strcpy
(
str
,
"sbl.cfg"
);
if
((
file
=
sopen
(
str
,
O_RDONLY
,
SH_DENYNO
))
==
-
1
)
{
printf
(
"error opening %s
\r\n
"
,
str
);
exit
(
1
);
}
exit
(
1
);
}
if
((
stream
=
fdopen
(
file
,
"rb"
))
==
NULL
)
{
printf
(
"fdopen error with %s
\r\n
"
,
str
);
exit
(
1
);
}
exit
(
1
);
}
fgets
(
str
,
81
,
stream
);
del_days
=
atoi
(
str
);
fgets
(
str
,
81
,
stream
);
...
...
@@ -833,10 +887,12 @@ int main(int argc, char **argv)
if
((
file
=
sopen
(
database
,
O_RDWR
|
O_BINARY
|
O_CREAT
,
SH_DENYNO
,
S_IREAD
|
S_IWRITE
))
==
-
1
)
{
bprintf
(
"
\r\n\7
Error opening/creating %s
\r\n
"
,
database
);
exit
(
1
);
}
exit
(
1
);
}
if
((
stream
=
fdopen
(
file
,
"w+b"
))
==
NULL
)
{
bprintf
(
"
\r\n\7
Error converting %s file handle to stream
\r\n
"
,
database
);
exit
(
1
);
}
exit
(
1
);
}
setvbuf
(
stream
,
0L
,
_IOFBF
,
2048
);
if
(
del_days
)
{
...
...
@@ -844,10 +900,12 @@ int main(int argc, char **argv)
strcpy
(
str
,
"sblpurge.dab"
);
if
((
file
=
nopen
(
str
,
O_RDWR
|
O_CREAT
))
==
-
1
)
{
printf
(
"Error creating %s
\r\n
"
,
str
);
exit
(
1
);
}
exit
(
1
);
}
l
=
0
;
read
(
file
,
&
l
,
4
);
if
(
now
-
l
>
(
24L
*
60L
*
60L
)
||
maint
)
{
/* more than a day since update */
if
(
now
-
l
>
(
24L
*
60L
*
60L
)
||
maint
)
{
/* more than a day since
* update */
bputs
(
"
\r\n\1
n
\1
hRunning daily maintenance for Synchronet BBS List..."
);
lseek
(
file
,
0L
,
SEEK_SET
);
write
(
file
,
&
now
,
4
);
...
...
@@ -867,13 +925,15 @@ int main(int argc, char **argv)
" was auto-deleted from the
\1
cSynchronet BBS "
"List
\r\n
"
,
bbs
.
name
);
i
=
usernumber
(
bbs
.
user
);
if
(
i
)
putsmsg
(
i
,
str
);
if
(
i
)
putsmsg
(
i
,
str
);
}
bbs
.
name
[
0
]
=
0
;
fseek
(
stream
,
-
(
long
)(
sizeof
(
bbs_t
)),
SEEK_CUR
);
fwrite
(
&
bbs
,
sizeof
(
bbs_t
),
1
,
stream
);
fflush
(
stream
);
}
else
if
(
!
(
bbs
.
misc
&
FROM_SMB
))
{
/* Warn user */
}
else
if
(
!
(
bbs
.
misc
&
FROM_SMB
))
{
/* Warn user */
l
=
bbs
.
created
;
if
(
l
<
bbs
.
updated
)
l
=
bbs
.
updated
;
...
...
@@ -890,9 +950,16 @@ int main(int argc, char **argv)
,
bbs
.
name
,
del_days
-
((
now
-
l
)
/
(
24L
*
60L
*
60L
)));
i
=
usernumber
(
bbs
.
user
);
if
(
i
)
putsmsg
(
i
,
str
);
}
}
}
}
}
if
(
i
)
putsmsg
(
i
,
str
);
}
}
}
}
}
else
close
(
file
);
}
close
(
file
);
}
if
(
maint
)
return
(
0
);
...
...
@@ -941,7 +1008,8 @@ int main(int argc, char **argv)
bprintf
(
SBL_INDENT
"
\1
n
\1
cEntries are auto-deleted
\1
h%u
\1
n
\1
c days after "
"last update or verification.
\r\n
"
,
del_days
);
bputs
(
SBL_INDENT
"Users are encouraged to
\1
hV
\1
n
\1
cerify (vouch for) any listed "
"systems they call.
\r\n
"
);
}
"systems they call.
\r\n
"
);
}
nodesync
();
/* Display any waiting messages */
...
...
@@ -988,7 +1056,8 @@ int main(int argc, char **argv)
if
(
!
short_bbs_info
(
bbs
))
break
;
if
(
!
sbl_pause
)
lncntr
=
0
;
}
lncntr
=
0
;
}
bprintf
(
"
\r\n\1
n
\1
h%u systems listed.
\r\n
"
,
i
);
#if 0
if (kbhit())
...
...
@@ -1021,9 +1090,11 @@ int main(int argc, char **argv)
if
(
!
strchr
(
tmp
,
'P'
)
||
!
strchr
(
tmp
,
'N'
))
{
bputs
(
"
\r\n\1
h
\1
mP
\1
n
\1
mhone and
\1
hN
\1
n
\1
mame specifiers "
"must be present in format.
\r\n\r\n
"
);
pause
();
}
pause
();
}
else
strcpy
(
list_fmt
,
tmp
);
}
strcpy
(
list_fmt
,
tmp
);
}
break
;
case
'E'
:
fseek
(
stream
,
0L
,
SEEK_SET
);
...
...
@@ -1045,7 +1116,8 @@ int main(int argc, char **argv)
}
#endif
if
(
!
sbl_pause
)
lncntr
=
0
;
}
lncntr
=
0
;
}
break
;
case
'F'
:
/* Find text */
cls
();
...
...
@@ -1089,45 +1161,52 @@ int main(int argc, char **argv)
break
;
if
(
!
ch
&&
!
short_bbs_info
(
bbs
))
break
;
continue
;
}
continue
;
}
for
(
i
=
0
;
i
<
tmpbbs
.
total_sysops
;
i
++
)
{
strupr
(
tmpbbs
.
sysop
[
i
]);
if
(
strstr
(
tmpbbs
.
sysop
[
i
],
name
))
break
;
}
break
;
}
if
(
i
<
tmpbbs
.
total_sysops
)
{
found
++
;
if
(
ch
&&
!
long_bbs_info
(
bbs
))
break
;
if
(
!
ch
&&
!
short_bbs_info
(
bbs
))
break
;
continue
;
}
continue
;
}
for
(
i
=
0
;
i
<
tmpbbs
.
total_networks
;
i
++
)
{
strupr
(
tmpbbs
.
network
[
i
]);
strupr
(
tmpbbs
.
address
[
i
]);
if
(
strstr
(
tmpbbs
.
network
[
i
],
name
)
||
strstr
(
tmpbbs
.
address
[
i
],
name
))
break
;
}
break
;
}
if
(
i
<
tmpbbs
.
total_networks
)
{
found
++
;
if
(
ch
&&
!
long_bbs_info
(
bbs
))
break
;
if
(
!
ch
&&
!
short_bbs_info
(
bbs
))
break
;
continue
;
}
continue
;
}
for
(
i
=
0
;
i
<
tmpbbs
.
total_terminals
;
i
++
)
{
strupr
(
tmpbbs
.
terminal
[
i
]);
if
(
strstr
(
tmpbbs
.
terminal
[
i
],
name
))
break
;
}
break
;
}
if
(
i
<
tmpbbs
.
total_terminals
)
{
found
++
;
if
(
ch
&&
!
long_bbs_info
(
bbs
))
break
;
if
(
!
ch
&&
!
short_bbs_info
(
bbs
))
break
;
continue
;
}
continue
;
}
for
(
i
=
0
;
i
<
tmpbbs
.
total_numbers
;
i
++
)
{
strupr
(
tmpbbs
.
number
[
i
].
modem
.
number
);
...
...
@@ -1136,14 +1215,17 @@ int main(int argc, char **argv)
if
(
strstr
(
tmpbbs
.
number
[
i
].
modem
.
number
,
name
)
||
strstr
(
tmpbbs
.
number
[
i
].
modem
.
desc
,
name
)
||
strstr
(
tmpbbs
.
number
[
i
].
modem
.
location
,
name
))
break
;
}
break
;
}
if
(
i
<
tmpbbs
.
total_numbers
)
{
found
++
;
if
(
ch
&&
!
long_bbs_info
(
bbs
))
break
;
if
(
!
ch
&&
!
short_bbs_info
(
bbs
))
break
;
continue
;
}
}
continue
;
}
}
if
(
!
ch
||
!
found
)
{
CRLF
;
#if 0
...
...
@@ -1152,14 +1234,16 @@ int main(int argc, char **argv)
#endif
if
(
found
)
bprintf
(
"
\1
n
\1
h%u systems listed.
\r\n
"
,
found
);
pause
();
}
pause
();
}
break
;
case
'G'
:
/* Generated sorted list */
cls
();
if
(
!
filelength
(
fileno
(
stream
)))
{
bprintf
(
"No BBS list exists.
\r\n
"
);
pause
();
break
;
}
break
;
}
bputs
(
"
\1
n
\1
c
\1
hSort Options:
\1
n
\r\n\r\n
"
);
bputs
(
"
\1
h
\1
w(
\1
mN
\1
w)
\1
n
\1
mName of System
\r\n
"
);
bputs
(
"
\1
h
\1
w(
\1
mS
\1
w)
\1
n
\1
mSoftware Used
\r\n
"
);
...
...
@@ -1191,9 +1275,11 @@ int main(int argc, char **argv)
break
;
j
++
;
bprintf
(
"
\b\b\b\b
%4u"
,
j
);
if
(
!
bbs
.
name
[
0
])
/* don't sort deleted entries */
if
(
!
bbs
.
name
[
0
])
/* don't sort deleted
* entries */
continue
;
if
(
bbs
.
total_numbers
<
1
)
/* don't sort corrupted entries */
if
(
bbs
.
total_numbers
<
1
)
/* don't sort corrupted
* entries */
continue
;
i
++
;
switch
(
ch
)
{
...
...
@@ -1244,29 +1330,36 @@ int main(int argc, char **argv)
break
;
case
'D'
:
l
=
bbs
.
updated
;
break
;
}
break
;
}
if
(
sort_by_str
)
{
if
((
sortstr
=
(
sortstr_t
*
)
realloc
(
sortstr
,
sizeof
(
sortstr_t
)
*
i
))
==
NULL
)
{
bprintf
(
"
\r\n\7
Memory allocation error
\r\n
"
);
free
(
sortstr
);
done
=
1
;
continue
;
}
continue
;
}
strcpy
(
sortstr
[
i
-
1
].
str
,
str
);
sortstr
[
i
-
1
].
offset
=
j
-
1
;
}
sortstr
[
i
-
1
].
offset
=
j
-
1
;
}
else
{
if
((
sortint
=
(
sortint_t
*
)
realloc
(
sortint
,
sizeof
(
sortint_t
)
*
i
))
==
NULL
)
{
bprintf
(
"
\r\n\7
Memory allocation error
\r\n
"
);
free
(
sortint
);
done
=
1
;
continue
;
}
continue
;
}
sortint
[
i
-
1
].
i
=
l
;
sortint
[
i
-
1
].
offset
=
j
-
1
;
}
}
sortint
[
i
-
1
].
offset
=
j
-
1
;
}
}
if
(
done
)
{
pause
();
break
;
}
break
;
}
if
(
sort_by_str
)
qsort
((
void
*
)
sortstr
,
i
,
sizeof
(
sortstr
[
0
])
...
...
@@ -1284,7 +1377,8 @@ int main(int argc, char **argv)
else
free
(
sortint
);
pause
();
break
;
}
break
;
}
for
(
j
=
0
;
j
<
i
;
j
++
)
if
(
sort_by_str
)
write
(
file
,
&
sortstr
[
j
].
offset
,
2
);
...
...
@@ -1303,7 +1397,8 @@ int main(int argc, char **argv)
sprintf
(
str
,
"sort_%03d.ndx"
,
node_num
);
if
((
file
=
nopen
(
str
,
O_RDONLY
))
==
-
1
)
{
bputs
(
"
\1
n
\1
r
\1
hSorted list not generated.
\r\n
"
);
pause
();
}
pause
();
}
ch
=
yesno
(
"Display extended information"
);
cls
();
while
(
/* !eof(file) && not on unix */
!
aborted
)
{
...
...
@@ -1319,7 +1414,8 @@ int main(int argc, char **argv)
if
(
ch
&&
!
long_bbs_info
(
bbs
))
break
;
if
(
!
ch
&&
!
short_bbs_info
(
bbs
))
break
;
}
break
;
}
close
(
file
);
#if 0
if (kbhit())
...
...
@@ -1351,17 +1447,21 @@ int main(int argc, char **argv)
if
(
!
ch
&&
!
short_bbs_info
(
bbs
))
break
;
found
++
;
continue
;
}
}
continue
;
}
}
if
(
!
ch
||
!
found
)
{
CRLF
;
pause
();
}
pause
();
}
break
;
case
'A'
:
cls
();
if
((
uint
)
user_level
<
add_ml
)
{
bprintf
(
"
\1
h
\1
rYou have insufficient access.
\r\n\r\n
"
);
pause
();
break
;
}
break
;
}
bputs
(
"
\1
g
\1
hAdding a BBS entry:
\1
n
\r\n\r\n
"
);
bputs
(
"
\1
n
\1
gHit ENTER for unknown data items.
\r\n\r\n
"
);
memset
(
&
bbs
,
0
,
sizeof
(
bbs_t
));
...
...
@@ -1375,13 +1475,16 @@ int main(int argc, char **argv)
dots
(
1
);
if
(
!
fread
(
&
tmpbbs
,
sizeof
(
bbs_t
),
1
,
stream
))
break
;
if
(
!
stricmp
(
tmpbbs
.
name
,
bbs
.
name
))
i
=
1
;
}
if
(
!
stricmp
(
tmpbbs
.
name
,
bbs
.
name
))
i
=
1
;
}
if
(
i
)
{
bprintf
(
"
\7\1
n
\1
h
\1
r
\1
i
\r\n\r\n
%s
\1
n
\1
h
\1
ralready exists!"
"
\r\n\r\n
"
,
bbs
.
name
);
pause
();
break
;
}
break
;
}
bputs
(
"
\1
n
\1
h
\r\n
Saving..."
);
fseek
(
stream
,
0L
,
SEEK_SET
);
...
...
@@ -1392,22 +1495,26 @@ int main(int argc, char **argv)
break
;
if
(
!
ch
)
{
/* first byte is null */
fseek
(
stream
,
-
1L
,
SEEK_CUR
);
break
;
}
fseek
(
stream
,(
long
)
sizeof
(
bbs_t
)
-
1L
,
SEEK_CUR
);
}
break
;
}
fseek
(
stream
,
(
long
)
sizeof
(
bbs_t
)
-
1L
,
SEEK_CUR
);
}
bbs
.
created
=
time
(
NULL
);
fwrite
(
&
bbs
,
sizeof
(
bbs_t
),
1
,
stream
);
fflush
(
stream
);
if
(
notify_user
&&
notify_user
!=
user_number
)
{
sprintf
(
str
,
"
\1
n
\1
hSBL:
\1
y%s
\1
madded
\1
c%s
\1
m "
"to the BBS List
\r\n
"
,
user_name
,
bbs
.
name
);
putsmsg
(
notify_user
,
str
);
}
putsmsg
(
notify_user
,
str
);
}
break
;
case
'R'
:
/* Remove an entry */
cls
();
if
((
uint
)
user_level
<
remove_ml
)
{
bprintf
(
"
\1
h
\1
rYou have insufficient access.
\r\n\r\n
"
);
pause
();
break
;
}
break
;
}
bprintf
(
"
\1
y
\1
hRemove which system: "
);
if
(
!
getstr
(
name
,
25
,
K_LINE
|
K_UPPER
))
break
;
...
...
@@ -1437,11 +1544,15 @@ int main(int argc, char **argv)
if
(
notify_user
&&
notify_user
!=
user_number
)
{
sprintf
(
str
,
"
\1
n
\1
hSBL:
\1
y%s
\1
mremoved
\1
c%s
\1
m "
"from the BBS List
\r\n
"
,
user_name
,
tmp
);
putsmsg
(
notify_user
,
str
);
}
}
putsmsg
(
notify_user
,
str
);
}
}
else
bprintf
(
"
\r\n\r\n\1
rYou did not create
\1
m%s
\1
n."
,
bbs
.
name
);
break
;
}
}
break
;
}
}
if
(
!
found
)
bprintf
(
"
\r\n\r\n\1
m%s
\1
c not found."
,
name
);
CRLF
;
...
...
@@ -1456,7 +1567,8 @@ int main(int argc, char **argv)
if
((
uint
)
user_level
<
verify_ml
)
{
bprintf
(
"
\1
h
\1
rYou have insufficient access.
\r\n\r\n
"
);
pause
();
break
;
}
break
;
}
bprintf
(
"
\1
y
\1
hVerify which system: "
);
if
(
!
getstr
(
name
,
25
,
K_LINE
|
K_UPPER
))
break
;
...
...
@@ -1483,8 +1595,12 @@ int main(int argc, char **argv)
putsmsg
(
notify_user
,
str
);
if
(
stricmp
(
bbs
.
user
,
user_name
))
{
i
=
usernumber
(
bbs
.
user
);
if
(
i
&&
i
!=
(
int
)
user_number
)
putsmsg
(
i
,
str
);
}
break
;
}
}
if
(
i
&&
i
!=
(
int
)
user_number
)
putsmsg
(
i
,
str
);
}
break
;
}
}
if
(
!
found
)
bprintf
(
"
\r\n\r\n\1
m%s
\1
c not found."
,
name
);
CRLF
;
...
...
@@ -1496,7 +1612,8 @@ int main(int argc, char **argv)
if
((
uint
)
user_level
<
update_ml
)
{
bprintf
(
"
\1
h
\1
rYou have insufficient access.
\r\n\r\n
"
);
pause
();
break
;
}
break
;
}
bprintf
(
"
\1
y
\1
hUpdate which system: "
);
if
(
!
getstr
(
name
,
25
,
K_LINE
|
K_UPPER
))
break
;
...
...
@@ -1511,7 +1628,9 @@ int main(int argc, char **argv)
break
;
if
(
!
stricmp
(
bbs
.
name
,
name
)
||
partname
(
bbs
.
name
,
name
))
{
found
=
1
;
break
;
}
}
break
;
}
}
if
(
found
)
{
for
(
i
=
0
;
i
<
bbs
.
total_sysops
&&
i
<
MAX_SYSOPS
;
i
++
)
if
(
!
bbs
.
sysop
[
i
][
0
]
||
!
stricmp
(
bbs
.
sysop
[
i
],
user_name
))
...
...
@@ -1531,10 +1650,14 @@ int main(int argc, char **argv)
if
(
notify_user
&&
notify_user
!=
user_number
)
{
sprintf
(
str
,
"
\1
n
\1
hSBL:
\1
y%s
\1
mupdated
\1
c%s
\1
m "
"in the BBS List
\r\n
"
,
user_name
,
bbs
.
name
);
putsmsg
(
notify_user
,
str
);
}
}
}
putsmsg
(
notify_user
,
str
);
}
}
}
else
bprintf
(
"
\r\n\r\n\1
h
\1
rYou did not create
\1
m%s
\1
n."
,
bbs
.
name
);
}
,
bbs
.
name
);
}
else
bprintf
(
"
\r\n\r\n\1
h
\1
m%s
\1
c not found."
,
name
);
CRLF
;
...
...
@@ -1542,7 +1665,9 @@ int main(int argc, char **argv)
pause
();
break
;
case
'Q'
:
return
(
0
);
}
}
return
(
0
);
}
}
return
(
-
1
);
}
...
...
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