summaryrefslogtreecommitdiffstats
path: root/ax25io.c
diff options
context:
space:
mode:
Diffstat (limited to 'ax25io.c')
-rw-r--r--ax25io.c91
1 files changed, 45 insertions, 46 deletions
diff --git a/ax25io.c b/ax25io.c
index 6ba9851..ee7a8fe 100644
--- a/ax25io.c
+++ b/ax25io.c
@@ -4,6 +4,7 @@
#include <errno.h>
#include <stdarg.h>
#include <string.h>
+#include <arpa/telnet.h>
#include "config.h"
@@ -12,7 +13,6 @@
#endif
#include "ax25io.h"
-#include "telnet.h"
static ax25io *Iolist = NULL;
@@ -385,10 +385,10 @@ int axio_putc(int c, ax25io *p)
{
char *cp;
- if (p->telnetmode && c == TN_IAC) {
- if (rsendchar(TN_IAC, p) == -1)
+ if (p->telnetmode && c == IAC) {
+ if (rsendchar(IAC, p) == -1)
return -1;
- return rsendchar(TN_IAC, p);
+ return rsendchar(IAC, p);
}
if (c == INTERNAL_EOL) {
@@ -421,7 +421,7 @@ int axio_getc(ax25io *p)
if ((c = rrecvchar(p)) == -1)
return -1;
- if (p->telnetmode && c == TN_IAC) {
+ if (p->telnetmode && c == IAC) {
if ((c = rrecvchar(p)) == -1)
return -1;
@@ -429,13 +429,13 @@ int axio_getc(ax25io *p)
return -1;
switch(c) {
- case TN_IP:
- case TN_ABORT:
- case TN_EOF:
+ case IP:
+ case ABORT:
+ case xEOF:
return -1;
- case TN_SUSP:
+ case SUSP:
break;
- case TN_SB:
+ case SB:
/*
* Start of sub-negotiation. Just ignore everything
* until we see a IAC SE (some negotiation...).
@@ -444,13 +444,13 @@ int axio_getc(ax25io *p)
return -1;
if ((opt = rrecvchar(p)) == -1)
return -1;
- while (!(c == TN_IAC && opt == TN_SE)) {
+ while (!(c == IAC && opt == SE)) {
c = opt;
if ((opt = rrecvchar(p)) == -1)
return -1;
}
break;
- case TN_WILL:
+ case WILL:
/*
* Client is willing to negotiate linemode and
* we want it too. Tell the client to go to
@@ -459,31 +459,30 @@ int axio_getc(ax25io *p)
* is ignored above (rfc1184 says client must obey
* ECHO and TRAPSIG).
*/
- if (opt == TN_LINEMODE && p->tn_linemode) {
- rsendchar(TN_IAC, p);
- rsendchar(TN_SB, p);
- rsendchar(TN_LINEMODE, p);
- rsendchar(TN_LINEMODE_MODE, p);
- rsendchar(TN_LINEMODE_MODE_EDIT |
- TN_LINEMODE_MODE_TRAPSIG, p);
- rsendchar(TN_IAC, p);
- rsendchar(TN_SE, p);
+ if (opt == TELOPT_LINEMODE && p->tn_linemode) {
+ rsendchar(IAC, p);
+ rsendchar(SB, p);
+ rsendchar(TELOPT_LINEMODE, p);
+ rsendchar(LM_MODE, p);
+ rsendchar(MODE_EDIT | MODE_TRAPSIG, p);
+ rsendchar(IAC, p);
+ rsendchar(SE, p);
} else {
- rsendchar(TN_IAC, p);
- rsendchar(TN_DONT, p);
- rsendchar(opt, p);
+ rsendchar(IAC, p);
+ rsendchar(DONT, p);
+ rsendchar(opt, p);
}
axio_flush(p);
break;
- case TN_DO:
+ case DO:
switch (opt) {
- case TN_SUPPRESS_GA:
- rsendchar(TN_IAC, p);
- rsendchar(TN_WILL, p);
- rsendchar(opt, p);
+ case TELOPT_SGA:
+ rsendchar(IAC, p);
+ rsendchar(WILL, p);
+ rsendchar(opt, p);
axio_flush(p);
break;
- case TN_ECHO:
+ case TELOPT_ECHO:
/*
* If we want echo then just silently
* approve, otherwise deny.
@@ -492,18 +491,18 @@ int axio_getc(ax25io *p)
break;
/* Note fall-through */
default:
- rsendchar(TN_IAC, p);
- rsendchar(TN_WONT, p);
- rsendchar(opt, p);
+ rsendchar(IAC, p);
+ rsendchar(WONT, p);
+ rsendchar(opt, p);
axio_flush(p);
break;
}
break;
- case TN_IAC: /* Escaped IAC */
- return TN_IAC;
+ case IAC: /* Escaped IAC */
+ return IAC;
break;
- case TN_WONT:
- case TN_DONT:
+ case WONT:
+ case DONT:
default:
break;
}
@@ -603,25 +602,25 @@ int axio_printf(ax25io *p, const char *fmt, ...)
void axio_tn_do_linemode(ax25io *p)
{
- rsendchar(TN_IAC, p);
- rsendchar(TN_DO, p);
- rsendchar(TN_LINEMODE, p);
+ rsendchar(IAC, p);
+ rsendchar(DO, p);
+ rsendchar(TELOPT_LINEMODE, p);
p->tn_linemode = 1;
}
void axio_tn_will_echo(ax25io *p)
{
- rsendchar(TN_IAC, p);
- rsendchar(TN_WILL, p);
- rsendchar(TN_ECHO, p);
+ rsendchar(IAC, p);
+ rsendchar(WILL, p);
+ rsendchar(TELOPT_ECHO, p);
p->tn_echo = 1;
}
void axio_tn_wont_echo(ax25io *p)
{
- rsendchar(TN_IAC, p);
- rsendchar(TN_WONT, p);
- rsendchar(TN_ECHO, p);
+ rsendchar(IAC, p);
+ rsendchar(WONT, p);
+ rsendchar(TELOPT_ECHO, p);
p->tn_echo = 0;
}