]> git.ipfire.org Git - thirdparty/HylaFAX.git/commitdiff
Bug 315: add coverpage-generation information to the q-file
authorLee Howard <faxguy@howardsilvan.com>
Tue, 23 Nov 2004 18:51:44 +0000 (18:51 +0000)
committerLee Howard <faxguy@howardsilvan.com>
Tue, 23 Nov 2004 18:51:44 +0000 (18:51 +0000)
CHANGES
faxd/FaxRequest.c++
faxd/FaxRequest.h
faxd/mkhash.c
hfaxd/Jobs.c++
hfaxd/Parser.c++
util/SendFaxJob.c++

diff --git a/CHANGES b/CHANGES
index 3abf190bcce1a9dab00102c1889d42f7a407a775..7ec736281ef1436a0235ca9d8f6a2cdc88590f85 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,7 @@
 
 Changelog for HylaFAX 4.2.1
 
+* add coversheet information into the q-file (23 Nov 2004)
 * fix documentation regarding DesiredEC (23 Nov 2004)
 * change minsp to minbr for consistency (23 Nov 2004)
 * fix hfaxd problem with file descriptors (23 Nov 2004)
index 289c43f2923f8705548327844db0c39c494344bd..1cf04298657040645b92e0f39b8596f0848f687f 100644 (file)
@@ -96,6 +96,12 @@ FaxRequest::stringval FaxRequest::strvals[] = {
     { "receiver",      &FaxRequest::receiver },
     { "company",       &FaxRequest::company },
     { "location",      &FaxRequest::location },
+    { "voice",         &FaxRequest::voice },
+    { "fromcompany",   &FaxRequest::fromcompany },
+    { "fromlocation",  &FaxRequest::fromlocation },
+    { "fromvoice",     &FaxRequest::fromvoice },
+    { "regarding",     &FaxRequest::regarding },
+    { "comments",      &FaxRequest::comments },
     { "cover",         &FaxRequest::cover },
     { "client",                &FaxRequest::client },
     { "owner",         &FaxRequest::owner },
@@ -258,6 +264,10 @@ FaxRequest::readQFile(bool& rejectJob)
        case H_RECEIVER:        receiver = tag; break;
        case H_COMPANY:         company = tag; break;
        case H_LOCATION:        location = tag; break;
+       case H_VOICE:           voice = tag; break;
+       case H_FROMLOCATION:    fromlocation = tag; break;
+       case H_FROMVOICE:       fromvoice = tag; break;
+       case H_REGARDING:       regarding = tag; break;
        case H_COVER:           cover = tag; break;
        case H_CLIENT:          client = tag; break;
        case H_OWNER:           owner = tag; break;
@@ -273,8 +283,18 @@ FaxRequest::readQFile(bool& rejectJob)
            break;
        case H_SUBADDR:         subaddr = tag; break;
        case H_PASSWD:          passwd = tag; break;
-       case H_STATE:           state = tag[0] - '0'; break;
-       case H_NPAGES:          npages = atoi(tag); break;
+       case H_STATE:                   // NB: comments collides
+           if (cmd[0] == 's')
+               state = tag[0] - '0';
+           else
+               comments = tag;
+           break;
+       case H_NPAGES:
+           if (cmd[0] == 'n')
+               npages = atoi(tag);
+           else
+               fromcompany = tag;
+           break;
        case H_TOTPAGES:        totpages = atoi(tag); break;
        case H_NTRIES:                  // NB: maxtries collides
            if (cmd[0] == 'n')
index 3f8362d977272c0dc28b27f0a5b19d82a517ff08..1122c82a895d2d046030515d9987f51930a4da79 100644 (file)
@@ -148,6 +148,12 @@ public:
     fxStr      receiver;       // receiver's identity for cover page generation
     fxStr      company;        // receiver's company for cover page generation
     fxStr      location;       // receiver's location for cover page generation
+    fxStr      voice;          // receiver's voice number for cover page generation
+    fxStr      fromcompany;    // sender's company for cover page generation
+    fxStr      fromlocation;   // sender's location for cover page generation
+    fxStr      fromvoice;      // sender's voice number for cover page generation
+    fxStr      regarding;      // regarding subject for cover page generation
+    fxStr      comments;       // comments for cover page generation
     fxStr      cover;          // continuation cover page filename
     fxStr      client;         // identity of machine that submitted job
     fxStr      sigrate;        // negotiated signalling rate
index 6ce86526688d9611e458d2c4361fc6e5ed749416..442b47b15cbdc15390a10fa6cdef5842b42993d8 100644 (file)
@@ -81,6 +81,12 @@ main()
     hash("receiver");
     hash("company");
     hash("location");
+    hash("voice");
+    hash("fromcompany");
+    hash("fromlocation");
+    hash("fromvoice");
+    hash("regarding");
+    hash("comments");
     hash("cover");
     hash("client");
     hash("owner");
index b589174bca8323f2f872b2597edf9385510eecdc..d2a7b0fd9a51d0f70717cf3f2c73c7e46f31b293 100644 (file)
@@ -98,13 +98,17 @@ static const struct {
     { T_CHOPTHRESH,    A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_CLIENT,                A_RUSR|A_RADM|A_WADM|A_ROTH },
     { T_COMMID,                A_RUSR|A_RADM|A_ROTH },
+    { T_COMMENTS,      A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_COVER,         A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_DATAFORMAT,    A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_DIALSTRING,    A_RUSR|A_WUSR|A_RADM|A_WADM },
     { T_DOCUMENT,      A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_DONEOP,                A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_EXTERNAL,      A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
+    { T_FROM_COMPANY,  A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
+    { T_FROM_LOCATION, A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_FROM_USER,     A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
+    { T_FROM_VOICE,    A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_GROUPID,       A_RUSR|A_RADM|A_ROTH },
     { T_JOBID,         A_RUSR|A_RADM|A_ROTH },
     { T_JOBINFO,       A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
@@ -126,6 +130,7 @@ static const struct {
     { T_PAGEWIDTH,     A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_PASSWD,                A_RUSR|A_WUSR|A_RADM|A_WADM },
     { T_POLL,          A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
+    { T_REGARDING,     A_RUSR|A_MUSR|A_RADM|A_WADM|A_ROTH },
     { T_RETRYTIME,     A_RUSR|A_MUSR|A_RADM|A_WADM|A_ROTH },
     { T_SCHEDPRI,      A_RUSR|A_MUSR|A_RADM|A_WADM|A_ROTH },
     { T_SENDTIME,      A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
@@ -139,6 +144,7 @@ static const struct {
     { T_TO_COMPANY,    A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_TO_LOCATION,   A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_TO_USER,       A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
+    { T_TO_VOICE,      A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_USE_CONTCOVER, A_RUSR|A_RADM|A_WADM|A_ROTH },
     { T_USE_ECM,       A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
     { T_USE_TAGLINE,   A_RUSR|A_WUSR|A_RADM|A_WADM|A_ROTH },
@@ -185,7 +191,11 @@ static struct {
     { T_TO_USER,       &Job::receiver },
     { T_TO_COMPANY,    &Job::company },
     { T_TO_LOCATION,   &Job::location },
+    { T_TO_VOICE,      &Job::voice },
     { T_FROM_USER,     &Job::sender },
+    { T_FROM_COMPANY,  &Job::fromcompany },
+    { T_FROM_LOCATION, &Job::fromlocation },
+    { T_FROM_VOICE,    &Job::fromvoice },
     { T_PASSWD,                &Job::passwd },
     { T_CLIENT,                &Job::client },
     { T_TAGLINE,       &Job::tagline },
@@ -197,6 +207,8 @@ static struct {
     { T_STATUS,                &Job::notice },
     { T_DONEOP,                &Job::doneop },
     { T_COMMID,                &Job::commid },
+    { T_REGARDING,     &Job::regarding },
+    { T_COMMENTS,      &Job::comments },
 };
 static struct {
     Token      t;
@@ -830,6 +842,12 @@ HylaFAXServer::initDefaultJob(void)
     defJob.receiver    = "";
     defJob.company     = "";
     defJob.location    = "";
+    defJob.voice       = "";
+    defJob.fromcompany = "";
+    defJob.fromlocation        = "";
+    defJob.fromvoice   = "";
+    defJob.regarding   = "";
+    defJob.comments    = "";
     defJob.client      = remotehost;
     defJob.tagline     = "";
     defJob.doneop      = "default";
@@ -911,6 +929,12 @@ HylaFAXServer::newJob(fxStr& emsg)
     job->receiver = curJob->receiver;
     job->company = curJob->company;
     job->location = curJob->location;
+    job->voice = curJob->voice;
+    job->fromcompany = curJob->fromcompany;
+    job->fromlocation = curJob->fromlocation;
+    job->fromvoice = curJob->fromvoice;
+    job->regarding = curJob->regarding;
+    job->comments = curJob->comments;
     job->jobtype = curJob->jobtype;
     job->tagline = curJob->tagline;
     job->client = remotehost;
index 067e2884a219d43cc48ddf296a5b4b82d7350e6d..980f190b6ed40c4363b239b7cff9db376b51b1d9 100644 (file)
@@ -122,7 +122,7 @@ static const tab parmtab[] = {
 { "BEGST",        T_BEGST,       false, true, "[ANY|scanline-time]" },
 { "CHOPTHRESHOLD",T_CHOPTHRESH,          false, true, "[inches]" },
 { "CLIENT",       T_CLIENT,      false, true, "[<string>]" },
-{ "COMMENTS",     T_COMMENTS,    false,false, "[<string>]" },
+{ "COMMENTS",     T_COMMENTS,    false, true, "[<string>]" },
 { "COMMID",       T_COMMID,      false, true, "(communication identifier)" },
 { "COVER",        T_COVER,       false, true, "path-name" },
 { "DATAFORMAT",   T_DATAFORMAT,          false, true, "[ANY|G31D|G32D|G4]" },
@@ -130,10 +130,10 @@ static const tab parmtab[] = {
 { "DOCUMENT",     T_DOCUMENT,    false, true, "path-name" },
 { "DONEOP",       T_DONEOP,      false, true, "[<string>]" },
 { "EXTERNAL",     T_EXTERNAL,    false, true, "[<string>]" },
-{ "FROMCOMPANY",  T_FROM_COMPANY, false,false, "[<string>]" },
-{ "FROMLOCATION", T_FROM_LOCATION,false,false, "[<string>]" },
+{ "FROMCOMPANY",  T_FROM_COMPANY, false, true, "[<string>]" },
+{ "FROMLOCATION", T_FROM_LOCATION,false, true, "[<string>]" },
 { "FROMUSER",     T_FROM_USER,   false, true, "[<string>]" },
-{ "FROMVOICE",    T_FROM_VOICE,          false,false, "[<string>]" },
+{ "FROMVOICE",    T_FROM_VOICE,          false, true, "[<string>]" },
 { "GROUPID",      T_GROUPID,     false, true, "(job group identifier)" },
 { "HRES",         T_HRES,        false,false, "[dots-per-inch]" },
 { "JOBID",        T_JOBID,       false, true, "(job identifier)" },
@@ -156,7 +156,7 @@ static const tab parmtab[] = {
 { "PAGEWIDTH",    T_PAGEWIDTH,   false, true, "[millimeters]" },
 { "PASSWD",       T_PASSWD,      false, true, "[<string>]" },
 { "POLL",         T_POLL,        false, true, "selector [passwd]" },
-{ "REGARDING",    T_REGARDING,   false,false, "[<string>]" },
+{ "REGARDING",    T_REGARDING,   false, true, "[<string>]" },
 { "RETRYTIME",    T_RETRYTIME,   false, true, "[HHSS]" },
 { "SCHEDPRI",     T_SCHEDPRI,    false, true, "[<number>]" },
 { "SENDTIME",     T_SENDTIME,    false, true, "[NOW|YYYYMMDDHHSS]" },
@@ -170,7 +170,7 @@ static const tab parmtab[] = {
 { "TOTPAGES",     T_TOTPAGES,    false, true, "[<number>]" },
 { "TOTTRIES",     T_TOTTRIES,    false, true, "[<number>]" },
 { "TOUSER",       T_TO_USER,     false, true, "[<string>]" },
-{ "TOVOICE",      T_TO_VOICE,    false,false, "[<string>]" },
+{ "TOVOICE",      T_TO_VOICE,    false, true, "[<string>]" },
 { "USECONTCOVER", T_USE_CONTCOVER,false, true, "[YES|NO]" },
 { "USEXVRES",     T_USE_XVRES,   false, true, "[YES|NO]" },
 { "USEECM",       T_USE_ECM,     false, true, "[YES|NO]" },
@@ -1091,7 +1091,11 @@ HylaFAXServer::param_cmd(Token t)
     case T_TO_USER:
     case T_TO_LOCATION:
     case T_TO_COMPANY:
+    case T_TO_VOICE:
     case T_FROM_USER:
+    case T_FROM_LOCATION:
+    case T_FROM_COMPANY:
+    case T_FROM_VOICE:
     case T_USRKEY:
     case T_PASSWD:
     case T_CLIENT:
@@ -1105,6 +1109,8 @@ HylaFAXServer::param_cmd(Token t)
     case T_STATUS:
     case T_DONEOP:
     case T_COMMID:
+    case T_REGARDING:
+    case T_COMMENTS:
        if (opt_CRLF()) {
            replyJobParamValue(*curJob, 213, t);
            return (true);
index cfeb9aa7d4456b59278d89e622bc8e2cd99b7009..75b198241a7ba898b74ca2b36b8a80825525fc37 100644 (file)
@@ -483,6 +483,12 @@ SendFaxJob::createJob(SendFaxClient& client, fxStr& emsg)
     IFPARM("TOUSER", name, "")
     IFPARM("TOCOMPANY", company, "")
     IFPARM("TOLOCATION", location, "")
+    IFPARM("TOVOICE", voicenumber, "")
+    IFPARM("FROMCOMPANY", fromcompany, "")
+    IFPARM("FROMLOCATION", fromlocation, "")
+    IFPARM("FROMVOICE", fromvoice, "")
+    IFPARM("REGARDING", regarding, "")
+    IFPARM("COMMENTS", comments, "")
     IFPARM("JOBINFO", jobtag, "")
     CHECKPARM("VRES", (u_int) vres)
     CHECKPARM("PAGEWIDTH", (u_int) pageWidth)