⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oldprotocol.h

📁 fax相关的东西
💻 H
字号:
/*	$Id: OldProtocol.h,v 1.3 2003/11/20 15:20:40 aidan Exp $ *//* * Copyright (c) 1995-1996 Sam Leffler * Copyright (c) 1995-1996 Silicon Graphics, Inc. * HylaFAX is a trademark of Silicon Graphics * * Permission to use, copy, modify, distribute, and sell this software and  * its documentation for any purpose is hereby granted without fee, provided * that (i) the above copyright notices and this permission notice appear in * all copies of the software and related documentation, and (ii) the names of * Sam Leffler and Silicon Graphics may not be used in any advertising or * publicity relating to the software without the specific, prior written * permission of Sam Leffler and Silicon Graphics. *  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.   *  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE  * OF THIS SOFTWARE. */#ifndef _OldProtocol_#define	_OldProtocol_#include "InetFaxServer.h"struct passwd;struct code_ent;struct stat;class OldProtocolServer : public InetFaxServer {public:    struct protoCmd {	const char* cmd;		// command to match	bool	check;			// if true, checkPermission first	void (OldProtocolServer::*cmdFunc)(const char*);    };private:    FaxItemArray reqs;    char	line[1024];		// current input line    int		version;    bool	alreadyChecked;    code_ent*	codetab;    fxStr	modem;			// selected modem    static const protoCmd cmds[];    bool checkHostIdentity(hostent*& hp);    void setupNetwork(int fd);    void doProtocol(void);    void getCommandLine(char line[1024], char*& tag);    u_long cvtTime(const char* spec, const struct tm* ref, const char* what);    void vsendClient(const char* tag, const char* fmt, va_list ap);    void sendClient(const char* tag, const char* fmt, ...);    void sendError(const char* fmt, ...);    void sendAndLogError(const char* fmt, ...);    void protocolBotch(const char* fmt, ...);    void setUserID(const char* tag);    void newPollID(const char* tag);    void setProtoVersion(const char* tag);    void ackPermission(const char*);    bool _checkUser(const char* requestor, struct passwd* pwd);    bool isAdmin(const char* requestor);    void applyToJob(const char* tag, const char* op,	void (OldProtocolServer::*f)(Job&, const char*));    void applyToJobGroup(const char* tag, const char* op,	void (OldProtocolServer::*f)(Job&, const char*));    bool alterSuspend(Job&);    void alterResubmit(Job&);    void alterJobTTS(const char*);    void alterJobGroupTTS(const char*);    void reallyAlterJobTTS(Job& job, const char* spec);    void alterJobKillTime(const char*);    void alterJobGroupKillTime(const char*);    void reallyAlterJobKillTime(Job& job, const char* spec);    void alterJobModem(const char*);    void alterJobGroupModem(const char*);    void reallyAlterJobModem(Job& job, const char* device);    void alterJobPriority(const char*);    void alterJobGroupPriority(const char*);    void reallyAlterJobPriority(Job& job, const char* priority);    void alterJobMaxDials(const char*);    void alterJobGroupMaxDials(const char*);    void reallyAlterJobMaxDials(Job& job, const char* max);    void alterJobNotification(const char*);    void alterJobGroupNotification(const char*);    void reallyAlterJobNotification(Job& job, const char* note);    void reallyRemoveJob(const char* op, Job& job);    void removeJob(const char*);    void removeJobGroup(const char*);    void killJob(const char*);    void killJobGroup(const char*);    void doremove(Job& job, const char*);    void dokill(Job& job, const char*);    void submitJob(const char*);    void coverProtocol(int isLZW, int cc);    void setupData(void);    const char* fileDesc(FaxSendOp type);    fxStr dataTemplate(FaxSendOp type, int&);    void getData(FaxSendOp type, long cc);    void getLZWData(FaxSendOp type, long cc);    void setupLZW();    long decodeLZW(FILE* fin, FILE* fout);    void getTIFFData(const char* tag);    void getPostScriptData(const char* tag);    void getOpaqueData(const char* tag);    void getZPostScriptData(const char* tag);    void getZOpaqueData(const char* tag);    void dologout(int status);    bool modemMatch(const fxStr& a, const fxStr& b);    void sendServerStatus(const char*);    void sendServerInfo1(const char* name);    void sendServerInfo(const char*);    void sendClientJobStatus(const Job& job);    void sendClientJobLocked(const Job& job);    void sendJobStatus(Job& job);    void sendAllStatus(const char*);    void sendJobStatus(const char* jobid);    void sendUserStatus(const char* sender);    void sendRecvStatus(const char*);public:    OldProtocolServer();    OldProtocolServer(const char* port);    virtual ~OldProtocolServer();    static OldProtocolServer& instance();    virtual void open(void);};#include "SuperServer.h"class OldProtocolSuperServer : public SuperServer {private:    fxStr port;protected:    bool startServer(void);    HylaFAXServer* newChild(void);public:    OldProtocolSuperServer(const char* port, int backlog = 5);    ~OldProtocolSuperServer();};#endif /* _OldProtocolServer_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -