HFAXD(8C)
π HFAXD β the hfaxd(8C) page, bestie edition π
okay so. sit down. hydrate. we're talking about hfaxd, and she is the server, no cap. π«Ά
β¨ NAME β¨
hfaxd β the HylaFAX client-server protocol server π
β¨ SYNOPSIS β¨
/usr/bin/hfaxd [ -d ] [ -D secs ] [ -q dir ] [ -c config ] [ -o port ] [
-O ] [ -f bindaddressfamily ] [ -l bindaddress ] [ -p
pasv_min_port:pasv_max_port ] [ -i port ] [ -I ] [ -s port ] [ -S ]
like. look at her. so many flags. main character energy fr fr π
β¨ DESCRIPTION β¨
So hfaxd is the HylaFAX program that implements the server portion of two things:
- the client-server protocol and
- the Simple Network Paging Protocol (SNPP) β which is what you use to submit message pager jobs to the IXO/TAP and UCP support π
And more client-server protocols are planned, bestie β hfaxd is literally intended to be the ``carrier'' through which they get supported. she's the vessel. the icon. the moment. π¦
hfaxd is typically used in one of two ways:
- as a stand-alone process that's started at system boot time to listen for client connections on one or more ports β and in this case the
-i,-o, or-soption must be used, okay? not optional, not a vibe, a requirement. - as a subservient process to the
inetd(8C)program
and the two forms of use may be combined β so long as the same service is not provided both by the stand-alone hfaxd and through inetd. don't do double duty on the same service, it's giving chaos π
π HYLAFAX CLIENT-SERVER PROTOCOL SUPPORT π
If hfaxd is started with the -i option it will service clients using the HylaFAX client-server protocol. This protocol is strongly related to the Internet File Transfer Protocol (FTP) β so much so, in fact, that FTP client programs that include support for ``quoted commands'' may be used to communicate with hfaxd using the new protocol. iconic behaviour, honestly. β¨
(it should also be possible to use FTP-aware World Wide Web browsers such as Mosaic and Netscape Navigator to access HylaFAX servers through the new protocol β but the current format for information returned in directory listings confuses them. they're doing their best, they're just confused π₯Ί)
The hfaxd server currently recognizes the following protocol requests; case is not distinguished. Entries marked with a ΒΉ can be used only when the client has established administrative privileges with ADMIN. so like, know your power level π
ABORβ abort previous commandACCTβ specify account (ignored) πADMINβ specify password for administrative privilegesALL... ok no, moving on:ALLOβ allocate storage (vacuously)ANSWERΒΉ β request that call be answeredAPPEβ append to a fileCDUPβ change to parent of current working directoryCHMODβ change mode of a fileCHOWNΒΉ β change owner of a fileCWDβ change working directoryDELEβ delete a fileDISABLEΒΉ β disable outbound use of modemENABLEΒΉ β enable outbound use of modemHELPβ give help informationFILEFMTβ specify/query format for returning file statusFORMβ specify data transfer formatIDLEβ set idle-timer (in seconds)JDELEβ delete done or suspended jobJINTRβ interrupt jobJKILLβ kill jobJNEWβ create new jobJOBβ set/query current jobJOBFMTβ specify/query format for returning job statusJPARMβ specify/query job state parameterJRESTβ reset current job stateJSUBMβ submit job to schedulerJSUSPβ suspend job from schedulingJWAITβ wait for job to completeJGDELEβ delete group of jobsJGKILLβ kill group of jobsJGINTRβ interrupt group of jobsJGNEWβ place current job in a new job groupJGPARMβ set state parameter in a group of jobsJGRESTβ reset current state for a group of jobsJGRPβ set/query current job groupJGSUBMβ submit group of jobs to schedulerJGSUSPβ suspend group of jobs from schedulingJGWAITβ wait for group of jobs to completeLISTβ list files in a directoryMDTMβ show last modification time of fileMODEβ specify data transfer modeMDMFMTβ specify/query format for returning modem statusNLSTβ give name list of files in directoryNOOPβ do nothingPASSβ specify passwordPASVβ prepare for server-to-server transferPORTβ specify data connection portPWDβ print the current working directoryQUITβ terminate sessionRCVFMTβ specify/query format for returning received facsimile statusREINβ reinitiate server stateRESTβ restart incomplete transferRETPβ retrieve the next page in a fileRETRβ retrieve a fileSHUTβ schedule server shutdownSITEβ non-standard commands (see next section) πSIZEβ return size of fileSTATβ return status of server or fileSTORβ store a fileSTOTβ store a temporary file with a unique nameSTOUβ store a file with a unique nameSTRUβ specify data transfer structureSYSTβ show operating system type of server systemTYPEβ specify data transfer typeTZONEβ specify timezone handling for dates and timesUSERβ specify user nameVRFYβ verify dialstring handling and/or least-cost routing
The following non-standard or experimental commands are supported through the SITE request. yes queen, secret menu π
ADDMODEMΒΉ β add/configure new modem for useADDUSERΒΉ β add client access control entryCONFIGΒΉ β send configuration parameter setting to serverDELMODEMΒΉ β deconfigure/remove modemDELUSERΒΉ β remove client access control entryTRIGGERβ register real-time event triggerHELPβ give help information, e.g.,SITE HELP
In addition, FTP requests that are specified in Internet RFC 959 but not listed here are recognized, but not implemented. recognized β functional, bestie. it's giving "I know her but we don't talk" π
π¨hfaxdwill abort an active data transfer only when theABORcommand is preceded by a Telnet "Interrupt Process" (IP) signal and a Telnet "Synch" signal in the command Telnet stream, as described in Internet RFC 959. And if aSTATcommand is received during a data transfer, preceded by a Telnet IP and Synch, transfer status will be returned. both signals or nothing, that's the rule π
π SIMPLE NETWORK PAGING PROTOCOL (SNPP) SUPPORT π
If hfaxd is started with the -s option it will service clients using the Simple Network Pager Protocol (SNPP) as specified in RFC 1861 (which obsoletes RFC 1645). out with the old, in with the new β¨
The hfaxd server currently recognizes the SNPP protocol requests listed below. Requests marked with a ΒΉ are non-standard extensions to RFC 1861 that may be added to SNPP at some future time. Case is not distinguished, and only the first four characters of requests are used in identifying commands. four chars and she knows what you mean. efficient queen π
2WAYβ preface a 2-way transactionABORΒΉ β abort previous commandACKRβ set read acknowledgement handling for subsequent requestsALERβ set the alter-level for subsequent requestsCALLβ set the caller-ID for subsequent requestsCOVEβ set the alternate coverage area for subsequent requestsDATAβ specify a multi-line messageEXPTβ set the expiration time for subsequent requestsHELPβ give help informationHOLDβ set the time at which subsequent requests are to be deliveredKTAGβ kill a previously submitted requestLEVEβ set the service level for subsequent requestsLOGIβ login to serverMCREβ specify multiple response text and codeMESSβ specify a single-line messageMSTAβ return the status of a previously submitted requestNOQUβ disable message queueingPAGEβ specify the destination pagerPINGβ locate/validate a pagerQUITβ terminate sessionRESEβ reset server stateRTYPβ set the reply type code for subsequent requestsSENDβ send message(s)SITEΒΉ β site-specific commands (see next section)STATΒΉ β return server statusSUBJβ set the message text for subsequent requests
π¨hfaxdwill abort an activeSENDoperation when anABORcommand is preceded by a Telnet "Interrupt Process" (IP) signal and a Telnet "Synch" signal in the command Telnet stream. same energy as the FTP side, iconic consistency π
The following non-standard or experimental commands are also supported through the SITE request:
FROMUSERβ specify the sender's identityIDLEβ set idle-timer (in seconds)JPARMβ query job parameter statusJQUEUEβ control whether or not job is queuedLASTTIMEβ set the time to terminate an unfinished jobMAILADDRβ set the e-mail address to use for notificationMAXDIALSβ set the maximum number of times to dial the phoneMAXTRIESβ set the maximum number of times to try sending the pageMODEMβ set the modem or class of modems to useNOTIFYβ set the e-mail notificationRETRYTIMEβ set the time to delay between job retriesSCHEDPRIβ set the scheduling priority for the job[0-255]HELPβ give help information, e.g.,SITE HELP
π Note thathfaxdrequires that SNPP clients login first with theLOGIdirective, while RFC 1861 permits clients to submit pages anonymously. so if you're out here expecting anonymous pages: not on this server, bestie. no anonymous vibes here π ββοΈ
π₯ CLIENT ACCESS CONTROL π₯
hfaxd controls client access according to the information in the file
/var/spool/hylafax/etc/hosts.hfaxd
This file defines the set of users and machines that may receive service and, optionally, defines password challenges to use in authenticating clients. Clients may be permitted access to services with or without a password challenge. Access may also be restricted based on the host machine that a request for service originates from. Consult hosts.hfaxd(5F) for information on the format and content of this file. π
The SITE ADDUSER protocol request is provided for adding new users to a server β available only to clients with administrative privileges. sorry babe, admin only, that's the door policy πͺ
Server resources are controlled based on clients' identities. Jobs and documents, both received and submitted, are protected by the server. Typically clients are permitted access to anything they own or that is publicly accessible. There are also administrative privileges that clients may acquire, and which permit them wide access to objects that reside on the server. with great power etc etc π
πΈ A complete client-server protocol specification is still outstanding. (yes really. it's coming. eventually. we promise.)
hfaxd operates with its root directory set to the top of the HylaFAX spooling area:
/var/spool/hylafax
This is done so that clients see a virtual file hierarchy that is completely contained within the HylaFAX operating environment on the server machine. β¨
β οΈ Administrators, however, must be aware of this action when specifying files in the hfaxd configuration file: absolute pathnames relative to the root of the spooling should be used to specify filenames. this one bites people, bestie, don't let it be you π
part 1 of 4, keep scrolling, we're not done yet π¦
πΈ SERVER ACCESS CONTROL πΈ
okay bestie, listen up, this is the part where the server gets picky about who's allowed in π
The file /var/spool/hylafax/etc/shutdown, when it exists, tells everyone when to lock the server down. The moment that file is present and contains valid info, hfaxd will let only users with administrative privileges touch the server. Everybody else who rolls up asking for service gets denied β and their negative server responses will include whatever shutdown message is written in the shutdown file. Go read hylafax-shutdown(5F) for the tea on the format and content of that file. π«Ά
The SHUT protocol request can schedule a server shutdown; it's only available to clients with administrative privileges. And to bring a shut-down server back to life, you can just delete the shutdown file with the DELE protocol request. (Heads up though: this is meant to be replaced with an ``unshut'' protocol request so that implementation details stay out of the protocol. So like, it's giving temporary.)
βοΈ CONFIGURATION FILES βοΈ
hfaxd reads its configuration info from /etc/hylafax/hfaxd.conf every single time a new server process starts up (so basically, once per new client). That file plays by the same rules as all the other HylaFAX configuration files, which are described over in hylafax-config(5F). β¨
Here's every parameter it knows about β and the ones marked ``(SNPP)'' are only used by the SNPP support, iykyk:
FaxContactβ string, default: see below β contact address to show in help textFileFmtβ string, default: see below β format string for file status resultsIdleTimeoutβ integer, default900β client idle timeout in secondsJobFmtβ string, default: see below β format string for job status resultsJobHostIDβ string, default: (none) β identification information for job hostsJobProtectionβ octal, default0644β permissions for job qfiles in sendq/doneqKillTimeMapβ string, default: see below β mapping from service level to job kill time (SNPP)LDAPServerURIβ string, default: (none) β URI of the ldap server including port numberLDAPBaseDNβ string, default: (none) β LDAP context where user objects can be foundLDAPBindQueryβ string, default: (none) β format for the LDAP bind queryLDAPGroupAttributeβ string, defaultgroupMembershipβ LDAP group attribute labelLDAPReqGroupβ string, default: (none) β LDAP context of the users groupLDAPSearchDNβ string, default: (none) β format for the UserDN in LDAP searchLDAPSearchQueryβ string, defaultuid=%sβ format for the LDAP search queryLDAPVersionβ integer, default3β LDAP protocol version to useLogFacilityβ string, defaultdaemonβ syslog facility name for tracing messagesMaxAdminAttemptsβ integer, default5β maximum admin attempts before disconnectingMaxConsecutiveBadCmdsβ integer, default10β maximum invalid commands before disconnectingMaxIdleTimeoutβ integer, default7200β maximum client idle timeout permittedMaxLoginAttemptsβ integer, default5β maximum login attempts before disconnectingMaxMsgLengthβ integer, default128β maximum pager message length (SNPP)ModemFmtβ string, default: see below β format string for modem status resultsPagerIDMapFileβ string, default/var/spool/hylafax/etc/pagermapβ name of file for mapping pager IDs (SNPP)PriorityMapβ string, default: see below β mapping from service level to job priority (SNPP)RcvFmtβ string, default: see below β format string for received facsimile status resultsRecvqProtectionβ octal, default0444β permissions for client access to recvqRetryTimeMapβ string, default: see below β mapping from service level to job retry time (SNPP)ServerTracingβ integer, default1β server tracing control vectorShutdownFileβ string, default/var/spool/hylafax/etc/shutdownβ name of shutdown control fileUserAccessFileβ string, default/var/spool/hylafax/etc/hosts.hfaxdβ name of access control fileXferLogFileβ string, default/var/spool/hylafax/etc/clientlogβ name of file for logging client data transfers
The configuration parameters are explained below, one by one, no skips no skimming π
πΈ FaxContact
The e-mail address to display as a point of contact in the help text that gets returned to a client in response to the HELP or SITE HELP commands. By default this is ``FaxMaster@hostname'', where hostname is the fully qualified name for the machine where the server is running. π
πΈ FileFmt
The format string to use when returning file status information with the LIST and STAT commands. Formats are specified using printf(3S) style conventions, but using the field identifiers listed below. Each item can include field width, precision, left-justification, 0-filling, etc. β just exactly like printf; e.g. %-8p for an 8-character wide, left-justified, blank-padded field containing the file protection flags. π
aβ Last access timecβ Creation timedβ Device number (octal)fβ Filenamegβ Group identifier (decimal)iβ Inode number (decimal)lβ Link count (decimal)mβ Last modification timeoβ Owner (based on file GID)pβ Fax-style protection flags (no group bits)qβ UNIX-style protection flagsrβ Root device number (octal)sβ File size in bytes (decimal)uβ User identifier (decimal)
The default format string is:
%-7p %3l %8o %8s %-12.12m %.48f
It is recommended that all items include a field width so that client applications that construct headers from the format string can constrain the width of column title strings. (fr fr, do this. your future self will thank you. π«Ά)
πΈ IdleTimeout
The initial/default timeout to use when timing out idle clients. This value defines the maximum amount of time (in seconds) that hfaxd will wait for a command from a client before terminating the connection. Unprivileged clients may alter the idle timeout up to the value of MaxIdleTimeout; privileged clients may set the timeout to any value. β¨
πΈ JobFmt
The format string to use when returning job status information for jobs in the sendq and doneq directories. Formats are specified using printf(3S) style conventions, but using the field identifiers listed below. Each item can include field width, precision, left-justification, 0-filling, etc. β just like printf; e.g. %-3j for a 3-character wide, left-justified, blank-padded field containing the job state. π₯
Aβ Destination SubAddressBβ Destination PasswordCβ Destination company nameDβ Total # dials/maximum # dialsEβ Desired signalling rateFβ Client-specific tagline format stringGβ Desired min-scanline timeHβ Desired data formatIβ Client-specified scheduling priorityJβ Client-specified job tag stringKβ Desired use of ECMLβ Destination geographic locationMβ Notification e-mail addressNβ Desired use of private tagline (one-character symbol)Oβ Whether to use continuation cover page (one-character symbol)Pβ # pages transmitted/total # pages to transmitQβ Client-specified minimum acceptable signalling rateRβ Destination person (receiver)Sβ Sender's identityTβ Total # tries/maximum # triesUβ Page chopping threshold (inches)Vβ Job done operationWβ Communication identifierXβ Job type (one-character symbol)Yβ Scheduled date and timeZβ Scheduled time in seconds since the UNIX epochaβ Job state (one-character symbol)bβ # consecutive failed triescβ Client machine namedβ Total # dialseβ Public (external) format of dialstringfβ # consecutive failed dialsgβ Group identifierhβ Page chop handling (one-character symbol)iβ Current scheduling priorityjβ Job identifierkβ Job kill timelβ Page length in mmmβ Assigned modemnβ E-mail notification handling (one-character symbol)oβ Job ownerpβ # pages transmittedqβ Job retry time (MM::SS)rβ Document resolution in lines/inchsβ Job status information from last failuretβ Total # tries attempteduβ Maximum # triesvβ Client-specified dialstringwβ Page width in mmxβ Maximum # dialsyβ Total # pages to transmitzβ Time to send job
The default format string is:
%-4j %3i %1a %6.6o %-12.12e %5P %5D %7z %.25s
This string constrains each status line to be less than 80 characters. It is recommended that all items include a field width so that client applications, such as faxstat(1), that construct headers from the format string can constrain the width of column title strings. π
JobHostID
okay so this one is a whole formatted string, and the format is literally:
<id>[:<host>[:<username>:<password>:<adminwd>]]
and it identifies a job host. You can drop multiple instances of JobHostID in the config file to identify multiple job hosts, bestie, go off.
<id>is a numeric identification for the host that gets prepended onto job ids created by that host. It's how a client tells apart jobs created on different hosts when it might not initially know which server it connected to.<id>must be the same number of digits for all configured job hosts.- For compatibility with all clients,
<id>must be numeric only. No letters, no vibes, just digits. - If your
JobHostIDinstance only includes<id>, then it's understood to refer to the local host and not a remote host. Local queen behavior π - It is this configuration entry that causes the prepending of the
<id>number onto the job ids. Yes, this one specifically. - The other values in the formatted string are the connection details for user-level and admin-level login at the identified remote host.
- If only
<host>is provided, then the current user's login credentials are used for the chained connection.
This config will cause hfaxd to connect as a client to the specified remote host for the requested action when the job id provided by its client refers to that remote host β meaning the provided job id matches the <id> value in that host's JobHostID configuration. To do this, the hfaxd client connection to the remote host requires administrative privileges or synchronized user accounts on both hosts. No cap.
π¨ Be aware that when you provide<username>,<password>, and especially<adminwd>in the configuration, this may compromise job security on the remote host, since users from this host will be connecting to the remote host as a different user (and possibly with administrative privileges). That's not a vibe, that's a warning.
Since a null value for <adminwd> is permissible, administrative privileges may be omitted by using * for <adminwd>.
Because of the chroot under which the client instance of hfaxd operates, it may be necessary to copy or link at least some system files to the HylaFAX spool directory structure so that the chained client connection can be made to the remote job host. This operation may need to be revisited after upgrades or changes to those system files. To identify which files may need to be included, one may examine strace output for faxstat and look for which files it opens in the operation. Sherlock Holmes era πβ¨
JobProtection
The default setting of 0644 allows all users to view all job parameters in the send and done queues. The mode determines the permissions of the clients to see the jobs, following the HylaFAX permission model of the group bits controlling uid permissions and the other bits controlling other permissions.
A setting of 0640 allows only the job owner and the administrator to view jobs. If a user doesn't have permissions on the job, the job will simply not be visible to them when viewing the queues. Poof, gone, invisible π
KillTimeMap
The mapping from SNPP service level (0-11) to job expiration time (aka kill time, ominous). A mapping is specified as a string of space-separate numbers where each value is the number of minutes to permit a job to run.
The default mapping is:
5 5 5 15 60 240 720 1440 1440 1440 1440 1440
which expires a job in 5 minutes for service levels 0-2, 15 minutes for level three, 60 minutes for level four, etc. β¨
LDAPServerURI
The full address of the ldap server including port number, i.e.: ldaps://1.2.3.4:636 (for secure connections) or ldap://1.2.3.4:389 (for insecure connections). Secure is giving main character energy, insecure is giving π
LDAPBaseDN
The full LDAP context where user objects can be found, i.e.: ou=users,dc=example,dc=com for Active Directory/LDAP or ou=users,o=organization for Novell eDirectory.
LDAPBindQuery
The format for the LDAP bind query (ldap_sasl_bind_s) where %s is replaced with the username. If LDAPBindQuery is not configured, then the bind query will use the format cn=%s,<BaseDN> where %s is the username, and <BaseDN> is the configured LDAPBaseDN string.
LDAPGroupAttribute
The label for the group membership data. On older OpenLDAP servers this should probably be groupMembership. On ActiveDirectory this should probably be memberOf. Pick your fighter π₯
LDAPReqGroup
The full LDAP context of the group users have to be a member of to gain HylaFAX access for sending faxes. If this is not set, then no group membership is required. Everybody's in, no velvet rope π
LDAPSearchDN
The format for the UserDN in the LDAP search (ldap_search_ext_s) where %s is replaced with the username. By default this is the same as LDAPBindQuery .
LDAPSearchQuery
The format for the LDAP search query (ldap_search_ext_s) where %s is replaced with the username. By default this is uid=%s. On ActiveDirectory this should probably be set to cn=%s.
LDAPVersion
Version number of the LDAP Protocol to use (default is 3).
LogFacility
The symbolic name for the syslog(3) facility to use when logging error messages and informational/debugging messages requested through the ServerTracing parameter. The list of facility names is found in the system include file <syslog.h>; comparisons are case-insensitive. lowercase besties, we don't judge π
MaxAdminAttempts
The maximum number of unsuccessful attempts to gain administrative privileges with the ADMIN command that hfaxd will permit a client before terminating the connection. Note that the count of attempts is reset if/when the client successfully gains administrative privileges. Forgiven and forgotten, slay β¨
MaxConsecutiveBadCmds
The maximum number of consecutive unrecognized, unimplemented, syntactically incorrect, or otherwise unacceptable commands to permit a client before terminating the connection. This control has two purposes:
- to handle naive or malicious clients from sending long streams of nonsense commands to a server, and
- to ensure that clients are forcibly terminated when a server is marked shutdown.
MaxIdleTimeout
The maximum value that a client may set the idle timeout to. This value is not enforced if the client has administrative privileges. Admin privileges = skipping the line, apparently π
MaxLoginAttempts
The maximum number of unsuccessful attempts to login with the USER and PASS commands that hfaxd will permit a client before terminating the connection.
MaxMsgLength
The maximum number of characters to accept in a pager message specified with the DATA or MESS commands. Messages longer than this value are rejected. Keep it short, bestie βοΈ
ModemFmt
The format string to use when returning modem status information for modems listed in the status directory. Formats are specified using printf(3S) style conventions but using the field identifiers listed below. Each item can include field width, precision, left-justification, 0-filling, etc. just as for printf; e.g. %-8h for an 8-character wide, left-justified, blank-padded field containing the name of the host the server is running on. Cute.
hβ Server hostnamelβ Local identifier stringmβ Canonical modem namenβ FAX phone numberrβ Maximum pages that can be received in a single callsβ Status information stringtβ Server and session tracing levels (xxxxx:yyyyy)vβ Modem speaker volume as one-character symbolzβ A*if afaxgetty(8C)process is running; otherwise(space)
The default format string is Modem %m (%n): %s.
PagerIDMapFile
The absolute pathname of the file that contains directions for mapping pager identifiers to IXO/TAP or UCP service providers (and optionally a pager identification number). Consult pagermap(5F) for information on the format and content of this file.
(Note that absolute pathnames are relative to the root of the spooling area). yeah, sneaky, read it twice π«Ά
PriorityMap
The mapping from SNPP service level (0-11) to job scheduling priority. A mapping is specified as a string of space-separate numbers where each value is the priority to assign to a job.
The default mapping is:
63 127 127 127 127 127 127 127 127 127 127 127
which assigns a high priority to service level zero and normal (default) priority to all other service levels. Level zero really said "I'm the moment" π₯
RcvFmt
The format string to use when returning status information for received facsimile in the recvq directory. Formats are specified using printf(3S) style conventions but using the field identifiers listed below. Each item can include field width, precision, left-justification, 0-filling, etc. just as for printf; e.g. %-3b for a 3-character wide, left-justified, blank-padded field containing the signalling rate.
Xβ Reception indicator (1=yes,0=no)Yβ Received date and timeZβ Received time in seconds since the UNIX epochaβ SubAddress received from sender (if any)bβ Signalling rate used during receivedβ Data format used during receiveeβ Error description if an error occurred during receivefβ Document filename (relative to therecvqdirectory)hβ Time spent receiving document (HH:MM:SS)lβ Page length in mmmβ Fax-style protection mode string (-rwxrwx)nβ File size (number of bytes)oβ File ownerpβ Number of pages in documentqβ UNIX-style protection flagsrβ Resolution of received datasβ Sender identity (TSI)tβ Compact representation of the time when the receive happenedwβ Page width in mmzβ A*'' if receive is going on; otherwise'' (space)
The default format string is %-7m %4p%1z %-8.8o %14.14s %7t %f. This string constrains each status line to be less than 80 characters. It is recommended that all items include a field width so that client applications, such as faxstat(1) that construct headers from the format string can constrain the width of column title strings.
RecvqProtection π
The permissions setting for administrator, owners, and users for viewing files in the HylaFAX receive queue. The default setting of 0444'' lets <rainbow>literally everyone</rainbow> view all files in the queues. A setting of 0440'' allows only the job owner and the administrator to view files. A setting of ``0040'' allows only the administrator to view the files. If a user doesn't have permissions on the file, the file will not be visible to them when viewing the queue. (so yeah, if a file is ghosting them, that's why π)
RetryTimeMap β°
The mapping from SNPP service level (0-11) to job retry time. A mapping is specified as a string of space-separate numbers where each value is the number of seconds to delay between delivery attempts. A value of zero causes retries to be scheduled using the default algorithm used by the HylaFAX job scheduler. The default mapping is ``30 60 60 180 0 0 0 0 0 0 0 0'' which retries a level 0 job after a 30 second delay, levels 1 and 2 after 60 seconds, level 3 after 3 minutes, and other jobs are retried according to the usual scheduling algorithm.
ServerTracing π΅οΈ
A number that controls the generation of tracing information by a server. areas that are individually controlled. To enable tracing of multiple areas of operation, the flag associated with each area should be bit-or'd to form the value for this tag. (yes bestie, we're doing bit math, it's giving computer science π )
1(0x00001) β General server operation2(0x00002) β Client-server protocol requests and responses4(0x00004) β File transfers from client to server8(0x00008) β File transfers from server to client16(0x00010) β Client logins32(0x00020) β All network connections64(0x00040) β FIFO messages to and fromfaxq(8C)128(0x00080) β TIFF Library errors and warnings256(0x00100) β Configuration file processing
Tracing messages are directed to syslog(3) using the facility specified with the LogFacility configuration parameter. Note that syslogd(8C) must be configured to capture facility.info, facility.debug, facility.warning, and facility.err messages.
ShutdownFile π
The absolute pathname of the server shutdown file; see hylafax-shutdown(5F) for information on the format and content of this file. (Note that absolute pathnames are relative to the root of the spooling area).
UserAccessFile πͺ
The absolute pathname of the user access control file; see hosts.hfaxd(5F) for information on the format and content of this file. (Note that absolute pathnames are relative to the root of the spooling area).
XferLogFile π
The absolute pathname of the file to use for logging client-server file transfers (when enabled through the ServerTracing parameter). (Note that absolute pathnames are relative to the root of the spooling area).
β¨ OPTIONS β¨
-q dirβ The specified directory is treated as the spooling area. The default spooling area,/var/spool/hylafax, is defined at the time the software is built. π-dβ Stophfaxdfrom detaching itself from the controlling terminal. This option is normally used only when runninghfaxdunder a debugger or whenhfaxdis started up from theinetd(8C)process. π-D secsβ Sleep for the specified number of seconds before actually processing the client to allow a debugger to attach. π΄-f bindaddressfamilyβ Bind to the specified bindaddressfamily tcp port. Options areIPv4'',IPv6'', or ``all''. Please note that this argument needs to be specified before-iotherwise it will be ignored. β οΈ-l bindaddressβ Bind to the specified bindaddress tcp port. Please note that this argument needs to be specified before-iotherwise it will be ignored. A better approach to improve security would be to runhfaxdfromxinetd, binding its service to the specific port. This will also make hylafax benefits from tcp wrappers and other options provided byxinetd. π‘οΈ-p port:portβ Restrict the range of TCP ports used when binding the socket for PASV/EPSV mode data transfers. Without this option,bindwill be called with a port of0, allowing the kernel to allocate an ephemeral port. To be useful,-pMUST be specified BEFORE-idue to the way command line arguments are parsed. π-i portβ Listen on the specified port for service requests and respond with the client-server protocol. The port may be specified either symbolically, e.g. ``hylafax'' or numerically. This flag may be specified multiple times to request service on multiple different ports. π-s portβ Listen on the specified port for service requests and respond with the Simple Network Paging (SNPP) protocol. The port may be specified either symbolically, e.g. ``snpp'' or numerically. This flag may be specified multiple times to request service on multiple different ports. π-Iβ Service the client-server protocol using the standard input and output. This option is useful whenhfaxdis started up byinetd(8C). π-Sβ Service the Simple Network Paging (SNPP) protocol using the standard input and output. This option is useful whenhfaxdis started up byinetd(8C). π
π©Ί DIAGNOSTICS π©Ί
Diagnostics generated by hfaxd are logged using syslog(3). ποΈ
-c configβ Treat config as a configuration parameter specification that is interpreted after reading the configuration file. For example,-c servertracing:0x4f'' would set the `ServerTracing` configuration parameter to0x4f'', overriding any setting in the configuration file. (sneaky little override, we love her π)
π FILES π
/etc/hylafax/hfaxd.confβ server configuration file/var/spool/hylafaxβ spooling area/var/spool/hylafax/FIFOβ for submitting the job/var/spool/hylafax/sendqβ where job description is placed/var/spool/hylafax/sendq/seqfβ for assigning job identifiers/var/spool/hylafax/sendq/seqf.incrementβ increment value for sendq seqf/var/spool/hylafax/docq/seqfβ for assigning document identifiers/var/spool/hylafax/docq/seqf.incrementβ increment value for docq seqf/var/spool/hylafax/tmpβ temporary location of job-related files/var/spool/hylafax/docqβ where document files are placed/var/spool/hylafax/recvqβ where received facsimile are found/var/spool/hylafax/archiveβ where archived jobs are placed/var/spool/hylafax/logβ for server log files/var/spool/hylafax/clientβ for FIFO files used in communicating withfaxq/var/spool/hylafax/statusβ for server status information/var/spool/hylafax/config.deviceβ for returning server status/var/spool/hylafax/etc/hosts.hfaxdβ host access control list/var/spool/hylafax/etc/shutdownβ server shutdown control/var/spool/hylafax/etc/pagermapβ SNPP pager ID mapping file
π BUGS π
To be filled in. (bestie the bug section is literally a blank page. iconic honestly. no notes. πβ¨)
π SEE ALSO π
sendfax(1), sendpage(1), faxalter(1), faxrm(1), faxstat(1), faxq(8C), syslog(3) hylafax-server(5F), hosts.hfaxd(5F), status(5F), hylafax-shutdown(5F),
okay that's the whole page bestie, you made it, I'm so proud of you π«Ά This absolute icon of a manpage is from July 12, 1996 and it's filed under HFAXD(8C) β go forth and fax responsibly, mwah π
π
π¦ where this page comes from
- fedora 43: hylafax+ 7.0.11-4.fc43 Β· libtiff AND LicenseRef-Callaway-BSD-with-advertising
- fedora 43: hylafax+ 7.0.11-4.fc43 Β· libtiff AND LicenseRef-Callaway-BSD-with-advertising
- fedora 44: hylafax+ 7.0.11-5.fc44 Β· libtiff AND LicenseRef-Callaway-BSD-with-advertising
- fedora 44: hylafax+ 7.0.11-5.fc44 Β· libtiff AND LicenseRef-Callaway-BSD-with-advertising
- Copyright (c) 1995-1996 Sam Leffler
- Copyright (c) 1995-1996 Silicon Graphics, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms