Added detection of remote options NR, ND and NDA

This commit is contained in:
Michiel Broek 2005-09-11 11:30:51 +00:00
parent ed31cfa37f
commit f6cf66e9df
2 changed files with 27 additions and 5 deletions

View File

@ -15,13 +15,14 @@ v0.71.6 02-Sep-2005
mbcico: mbcico:
Changed compression state logic. Changed compression state logic.
Removed soft-cr filter during message import.
Record previous session state so we can better react on failed Record previous session state so we can better react on failed
sessions. sessions.
Added detection of remote options NR, ND and NDA.
mbfido: mbfido:
If some newsarticles are not accepted for post, don't treat If some newsarticles are not accepted for post, don't treat
this as fatal and clear the sendqueue. this as fatal and clear the sendqueue.
Removed soft-cr filter during message import.
mbnntp: mbnntp:
Removed some debug logging. Removed some debug logging.

View File

@ -210,6 +210,12 @@ struct binkprec {
int BZ2they; int BZ2they;
#endif #endif
#endif #endif
int NRwe; /* NR mode */
int NRthey;
int NDwe; /* ND mode */
int NDthey;
int NDAwe; /* NDA mode */
int NDAthey;
}; };
@ -312,6 +318,12 @@ int binkp(int role)
#endif #endif
bp.buggyIrex = FALSE; bp.buggyIrex = FALSE;
laststat = 0; laststat = 0;
bp.NRwe = No;
bp.NRthey = No;
bp.NDwe = No;
bp.NDthey = No;
bp.NDAwe = No;
bp.NDAthey = No;
if (role == 1) { if (role == 1) {
if (orgbinkp()) { if (orgbinkp()) {
@ -2223,7 +2235,7 @@ void parse_m_nul(char *msg)
bp.MD_Challenge = MD_getChallenge(q, NULL); bp.MD_Challenge = MD_getChallenge(q, NULL);
} }
#ifdef USE_EXPERIMENT #ifdef USE_EXPERIMENT
} else if (strncmp(q, (char *)"EXTCMD", 6) == 0) { } else if (strcmp(q, (char *)"EXTCMD") == 0) {
Syslog('b', "Binkp: remote wants EXTCMD mode"); Syslog('b', "Binkp: remote wants EXTCMD mode");
if (bp.EXTCMDthey == Can) { if (bp.EXTCMDthey == Can) {
bp.EXTCMDthey = Want; bp.EXTCMDthey = Want;
@ -2231,7 +2243,7 @@ void parse_m_nul(char *msg)
} }
#ifdef HAVE_BZLIB_H #ifdef HAVE_BZLIB_H
} else if (strncmp(q, (char *)"BZ2", 3) == 0) { } else if (strcmp(q, (char *)"BZ2") == 0) {
Syslog('b', "Binkp: remote wants BZ2 mode"); Syslog('b', "Binkp: remote wants BZ2 mode");
if (bp.BZ2they == Can) { if (bp.BZ2they == Can) {
bp.BZ2they = Want; bp.BZ2they = Want;
@ -2239,7 +2251,7 @@ void parse_m_nul(char *msg)
} }
#endif #endif
#ifdef HAVE_ZLIB_H #ifdef HAVE_ZLIB_H
} else if (strncmp(q, (char *)"GZ", 2) == 0) { } else if (strcmp(q, (char *)"GZ") == 0) {
Syslog('b', "Binkp: remote wants GZ mode"); Syslog('b', "Binkp: remote wants GZ mode");
if (bp.GZthey == Can) { if (bp.GZthey == Can) {
bp.GZthey = Want; bp.GZthey = Want;
@ -2248,13 +2260,22 @@ void parse_m_nul(char *msg)
#endif #endif
#endif #endif
#ifdef HAVE_ZLIB_H #ifdef HAVE_ZLIB_H
} else if (strncmp(q, (char *)"PLZ", 3) == 0) { } else if (strcmp(q, (char *)"PLZ") == 0) {
Syslog('b', "Binkp: remote wants PLZ mode"); Syslog('b', "Binkp: remote wants PLZ mode");
if (bp.PLZthey == Can) { if (bp.PLZthey == Can) {
bp.PLZthey = Want; bp.PLZthey = Want;
binkp_set_comp_state(); binkp_set_comp_state();
} }
#endif #endif
} else if (strcmp(q, (char *)"NR") == 0) {
Syslog('b', "Binkp: remote wants NR mode, NOT SUPPORTED HERE YET");
bp.NRthey = Want;
} else if (strcmp(q, (char *)"NDA") == 0) {
Syslog('b', "Binkp: remote wants NDA mode, NOT SUPPORTED HERE YET");
bp.NDAthey = Want;
} else if (strcmp(q, (char *)"ND") == 0) {
Syslog('b', "Binkp: remote wants ND mode, NOT SUPPORTED HERE YET");
bp.NDthey = Want;
} }
} }