Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Main
Synchronet
Commits
c1b9677b
Commit
c1b9677b
authored
Aug 06, 2013
by
rswindell
Browse files
Merged 79's rlogin_gate() with telnet_gate().
Added new telgate flag: TG_NOLF.
parent
8432d5c9
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
30 additions
and
19 deletions
+30
-19
src/sbbs3/sbbs.h
src/sbbs3/sbbs.h
+2
-3
src/sbbs3/sbbsdefs.h
src/sbbs3/sbbsdefs.h
+3
-1
src/sbbs3/telgate.cpp
src/sbbs3/telgate.cpp
+25
-15
No files found.
src/sbbs3/sbbs.h
View file @
c1b9677b
...
...
@@ -8,7 +8,7 @@
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright 201
2
Rob Swindell - http://www.synchro.net/copyright.html *
* Copyright 201
3
Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
...
...
@@ -938,8 +938,7 @@ public:
void
catsyslog
(
int
crash
);
/* telgate.cpp */
void
telnet_gate
(
char
*
addr
,
ulong
mode
);
// See TG_* for mode bits
void
rlogin_gate
(
char
*
addr
,
char
*
alias
,
char
*
pw
,
ulong
mode
);
// See TG_* for mode bits
void
telnet_gate
(
char
*
addr
,
ulong
mode
,
char
*
name
=
NULL
,
char
*
passwd
=
NULL
);
// See TG_* for mode bits
};
...
...
src/sbbs3/sbbsdefs.h
View file @
c1b9677b
...
...
@@ -8,7 +8,7 @@
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright 201
2
Rob Swindell - http://www.synchro.net/copyright.html *
* Copyright 201
3
Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
...
...
@@ -777,6 +777,8 @@ enum { /* readmail and delmailidx which types */
#define TG_RLOGIN (1<<6)
/* Use BSD RLogin protocol */
#define TG_NOCHKTIME (1<<7)
/* Don't check time left while gated */
#define TG_NOTERMTYPE (1<<8)
/* Request client "DONT TERM_TYPE" */
#define TG_SENDPASS (1<<9)
/* Send password instead of real name (RLogin) */
#define TG_NOLF (1<<10)
/* Do not send line-feeds (opposite of TG_CRLF) */
enum
{
/* Values for 'mode' in listfileinfo */
FI_INFO
/* Just list file information */
...
...
src/sbbs3/telgate.cpp
View file @
c1b9677b
...
...
@@ -8,7 +8,7 @@
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright 201
1
Rob Swindell - http://www.synchro.net/copyright.html *
* Copyright 201
3
Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
...
...
@@ -38,7 +38,7 @@
#include "sbbs.h"
#include "telnet.h"
void
sbbs_t
::
telnet_gate
(
char
*
destaddr
,
ulong
mode
)
void
sbbs_t
::
telnet_gate
(
char
*
destaddr
,
ulong
mode
,
char
*
name
,
char
*
passwd
)
{
char
*
p
;
uchar
buf
[
512
];
...
...
@@ -121,9 +121,15 @@ void sbbs_t::telnet_gate(char* destaddr, ulong mode)
if
(
mode
&
TG_RLOGIN
)
{
p
=
(
char
*
)
buf
;
*
(
p
++
)
=
0
;
p
+=
sprintf
(
p
,
"%s"
,
useron
.
alias
);
p
+=
sprintf
(
p
,
"%s"
,
name
==
NULL
?
useron
.
alias
:
name
);
p
++
;
// Add NULL
p
+=
sprintf
(
p
,
"%s"
,
useron
.
pass
);
if
(
passwd
!=
NULL
)
p
+=
sprintf
(
p
,
"%s"
,
passwd
);
else
if
(
mode
&
TG_SENDPASS
)
{
p
+=
sprintf
(
p
,
"%s"
,
useron
.
pass
);
}
else
{
p
+=
sprintf
(
p
,
"%s"
,
useron
.
name
);
}
p
++
;
// Add NULL
p
+=
sprintf
(
p
,
"%s/57600"
,
terminal
);
p
++
;
// Add NULL
...
...
@@ -205,21 +211,25 @@ void sbbs_t::telnet_gate(char* destaddr, ulong mode)
}
if
(
mode
&
TG_CRLF
&&
buf
[
rd
-
1
]
==
'\r'
)
buf
[
rd
++
]
=
'\n'
;
if
(
!
gotline
&&
mode
&
TG_ECHO
)
{
else
if
(
mode
&
TG_NOLF
&&
buf
[
rd
-
1
]
==
'\n'
)
rd
--
;
if
(
!
gotline
&&
(
mode
&
TG_ECHO
)
&&
rd
)
{
RingBufWrite
(
&
outbuf
,
buf
,
rd
);
}
}
for
(
attempts
=
0
;
attempts
<
60
&&
online
;
attempts
++
)
/* added retry loop here, Jan-20-2003 */
{
if
((
i
=
sendsocket
(
remote_socket
,(
char
*
)
buf
,
rd
))
>=
0
)
break
;
if
(
ERROR_VALUE
!=
EWOULDBLOCK
)
if
(
rd
>
0
)
{
for
(
attempts
=
0
;
attempts
<
60
&&
online
;
attempts
++
)
/* added retry loop here, Jan-20-2003 */
{
if
((
i
=
sendsocket
(
remote_socket
,(
char
*
)
buf
,
rd
))
>=
0
)
break
;
if
(
ERROR_VALUE
!=
EWOULDBLOCK
)
break
;
mswait
(
500
);
}
if
(
i
<
0
)
{
lprintf
(
LOG_NOTICE
,
"!TELGATE ERROR %d sending on socket %d"
,
ERROR_VALUE
,
remote_socket
);
break
;
mswait
(
500
);
}
if
(
i
<
0
)
{
lprintf
(
LOG_NOTICE
,
"!TELGATE ERROR %d sending on socket %d"
,
ERROR_VALUE
,
remote_socket
);
break
;
}
}
}
rd
=
recv
(
remote_socket
,(
char
*
)
buf
,
sizeof
(
buf
),
0
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment