From f6cf66e9dfc84e0d3debe726a319dadd2f0b3ce1 Mon Sep 17 00:00:00 2001 From: Michiel Broek Date: Sun, 11 Sep 2005 11:30:51 +0000 Subject: [PATCH] Added detection of remote options NR, ND and NDA --- ChangeLog | 3 ++- mbcico/binkp.c | 29 +++++++++++++++++++++++++---- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0fee2567..02918c72 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,13 +15,14 @@ v0.71.6 02-Sep-2005 mbcico: Changed compression state logic. - Removed soft-cr filter during message import. Record previous session state so we can better react on failed sessions. + Added detection of remote options NR, ND and NDA. mbfido: If some newsarticles are not accepted for post, don't treat this as fatal and clear the sendqueue. + Removed soft-cr filter during message import. mbnntp: Removed some debug logging. diff --git a/mbcico/binkp.c b/mbcico/binkp.c index 614da79d..a10fdc12 100644 --- a/mbcico/binkp.c +++ b/mbcico/binkp.c @@ -210,6 +210,12 @@ struct binkprec { int BZ2they; #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 bp.buggyIrex = FALSE; laststat = 0; + bp.NRwe = No; + bp.NRthey = No; + bp.NDwe = No; + bp.NDthey = No; + bp.NDAwe = No; + bp.NDAthey = No; if (role == 1) { if (orgbinkp()) { @@ -2223,7 +2235,7 @@ void parse_m_nul(char *msg) bp.MD_Challenge = MD_getChallenge(q, NULL); } #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"); if (bp.EXTCMDthey == Can) { bp.EXTCMDthey = Want; @@ -2231,7 +2243,7 @@ void parse_m_nul(char *msg) } #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"); if (bp.BZ2they == Can) { bp.BZ2they = Want; @@ -2239,7 +2251,7 @@ void parse_m_nul(char *msg) } #endif #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"); if (bp.GZthey == Can) { bp.GZthey = Want; @@ -2248,13 +2260,22 @@ void parse_m_nul(char *msg) #endif #endif #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"); if (bp.PLZthey == Can) { bp.PLZthey = Want; binkp_set_comp_state(); } #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; } }