* fixed hostname format string vulnerabilities in faxrm, faxalter,
faxstat, sendfax, sendpage, and faxwatch (14 Jun 2002)
* added TagLineFormat option for receiver's name (14 Jun 2002)
-* added MultiTech RTFCC support via Class2RTFCC option (11 Jun 2002)
+* added MultiTech RTFCC support via Class2RTFCC option (11, 28 Jun 2002)
* workaround a Lucent V92 firmware bug in HDLC frame tracing (08 Jun 2002)
* added Class2PTSQueryCmd for broken Class 2.0 firmwares (08 Jun 2002)
* fixed a TSI format string vulnerability in faxgetty (08 Jun 2002)
# versions that respond to AT+FFC=? with non-zero data support RTFCC
# Class2RTFCC: yes
-# unfortunately, HylaFAX can't currently receive in MMR
-ModemAnswerCmd: AT+FCC=01,05,02,02,02,01,00,07,7F;A
+# unfortunately, HylaFAX can't currently receive in MMR or color
+ModemAnswerCmd: AT+FCC=,,,,1,,,,0;A
+# and, let's try to prevent any color sending attempts, also
+ModemDialCmd: AT+FCC=,,,,,,,,0;DT%s
# versions that respond to AT+FFC=? with non-zero data support RTFCC
# Class2RTFCC: yes
-# unfortunately, HylaFAX can't currently receive in MMR
-ModemAnswerCmd: AT+FCC=7F,0D,02,02,02,01,00,07,7F;A
+# unfortunately, HylaFAX can't currently receive in MMR or color
+ModemAnswerCmd: AT+FCC=,,,,1,,,,0;A
+# and, let's try to prevent any color sending attempts, also
+ModemDialCmd: AT+FCC=,,,,,,,,0;DT%s
/*
* Check the next page to see if the transfer
* characteristics change. If so, update the
- * current T.30 session parameters. Don't send DIS if
- * using RTFCC, although unsetting params may be better.
+ * current T.30 session parameters.
*/
- if (pageInfoChanged(params, next) && !conf.class2RTFCC) {
+ if (pageInfoChanged(params, next)) {
if (!class2Cmd(disCmd, next)) {
emsg = "Unable to set session parameters";
break;
uint32 g3opts;
if (!TIFFGetField(tif, TIFFTAG_GROUP3OPTIONS, &g3opts))
g3opts = 0;
- if (g3opts & GROUP3OPT_2DENCODING) {
- if (!clientInfo.getSupports2DEncoding() && !class2RTFCC) {
- emsg = "Document was encoded with 2DMR,"
- " but client does not support this data format";
- return (send_reformat);
- }
- if (!modem->supports2D()) {
- emsg = "Document was encoded with 2DMR,"
- " but modem does not support this data format";
- return (send_reformat);
- }
- params.df = DF_2DMR;
- } else
- params.df = DF_1DMR;
-
+ // RTFCC lets us ignore our file data format
+ if (class2RTFCC) {
+ params.df = clientCapabilities.df;
+ // even if RTFCC supported uncompressed mode (and it doesn't)
+ // it's likely that the remote was incorrect in telling us it does
+ if (params.df == DF_2DMRUNCOMP) params.df = DF_2DMR;
+ } else {
+ if (g3opts & GROUP3OPT_2DENCODING) {
+ if (!clientInfo.getSupports2DEncoding()) {
+ emsg = "Document was encoded with 2DMR,"
+ " but client does not support this data format";
+ return (send_reformat);
+ }
+ if (!modem->supports2D()) {
+ emsg = "Document was encoded with 2DMR,"
+ " but modem does not support this data format";
+ return (send_reformat);
+ }
+ params.df = DF_2DMR;
+ } else
+ params.df = DF_1DMR;
+ }
uint32 w;
(void) TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &w);
if (w > clientInfo.getMaxPageWidthInPixels()) {
traceProtocol("USE %s", params.pageWidthName());
traceProtocol("USE %s", params.pageLengthName());
traceProtocol("USE %s", params.verticalResName());
- traceProtocol("USE %s image data", params.dataFormatName());
+ traceProtocol("USE %s", params.dataFormatName());
} else if (status == send_reformat) {
traceServer(emsg);
} else if (status == send_failed) {
const char* Class2Params::dataFormatNames[4] = {
"1-D MR", // DF_1DMR
"2-D MR", // DF_2DMR
- "2-D Uncompressed Mode", // DF_2DUNCOMP
+ "2-D Uncompressed Mode", // DF_2DMRUNCOMP
"2-D MMR" // DF_2DMMR
};
const char* Class2Params::dataFormatName() const