OSDN Git Service

Change a directory tree
[peercast-im/PeerCastIM.git] / c: / Git / PeerCast.root / PeerCast / core / common / servent.h
diff --git a/c:/Git/PeerCast.root/PeerCast/core/common/servent.h b/c:/Git/PeerCast.root/PeerCast/core/common/servent.h
deleted file mode 100644 (file)
index 2159db4..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-// ------------------------------------------------
-// File : servent.h
-// Date: 4-apr-2002
-// Author: giles
-// Desc: 
-//
-// (c) 2002 peercast.org
-// ------------------------------------------------
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// ------------------------------------------------
-
-
-#ifndef _SERVENT_H
-#define _SERVENT_H
-
-// ----------------------------------
-#include "socket.h"
-#include "sys.h"
-#include "gnutella.h"
-#include "channel.h"
-#include "http.h"
-#include "rtsp.h"
-#include "pcp.h"
-
-class HTML;
-
-class AtomStream;
-
-// ----------------------------------
-// Servent handles the actual connection between clients
-class Servent
-{
-public:
-
-       enum 
-       {
-               MAX_HASH = 500,                 // max. amount of packet hashes Servents can store
-               MAX_OUTPACKETS = 32             // max. output packets per queue (normal/priority)
-       };
-
-       enum
-       {
-               MAX_PROC_PACKETS = 300,
-               MAX_OUTWARD_SIZE = 1024 * 10
-       };
-
-    enum TYPE                                  
-    {
-               T_NONE,                                 // Not allocated
-        T_INCOMING,                            // Unknown incoming
-        T_SERVER,                              // The main server 
-               T_RELAY,                                // Outgoing relay
-               T_DIRECT,                               // Outgoing direct connection
-               T_COUT,                                 // PCP out connection
-               T_CIN,                                  // PCP in connection
-               T_PGNU                                  // old protocol connection              
-    };
-
-    enum STATUS
-    {
-        S_NONE,
-        S_CONNECTING,
-        S_PROTOCOL,
-        S_HANDSHAKE,
-        S_CONNECTED,
-        S_CLOSING,
-               S_LISTENING,
-               S_TIMEOUT,
-               S_REFUSED,
-               S_VERIFIED,
-               S_ERROR,
-               S_WAIT,
-               S_FREE
-    };
-
-       enum PROTOCOL
-       {
-               P_UNKNOWN,
-               P_GNUTELLA06,
-               P_PCP
-       };
-
-
-       enum SORT
-       {
-               SORT_NAME = 0,
-               SORT_BITRATE,
-               SORT_LISTENERS,
-               SORT_HOSTS,
-               SORT_TYPE,
-               SORT_GENRE
-       };
-
-       enum ALLOW
-       {
-               ALLOW_HTML              = 0x01,
-               ALLOW_BROADCAST = 0x02,
-               ALLOW_NETWORK   = 0x04,
-               ALLOW_DIRECT    = 0x08,
-               ALLOW_ALL               = 0xff
-       };
-
-       Servent(int);
-       ~Servent();
-
-       void    reset();
-    bool       initServer(Host &);
-    void       initIncoming(ClientSocket *,unsigned int);
-    void       initOutgoing(TYPE);
-       void    initGIV(Host &, GnuID &);
-       void    initPCP(Host &);
-
-       void    checkFree();
-
-
-
-
-       //      funcs for handling status/type
-       void    setStatus(STATUS);
-       static char *   getTypeStr(Servent::TYPE t) {return typeMsgs[t];}
-       char *  getTypeStr() {return getTypeStr(type);}
-       char *  getStatusStr() {return statusMsgs[status];}
-       int             getOutput();
-       void    addBytes(unsigned int);
-       bool    isOlderThan(Servent *s)
-       {
-               if (s)
-               {
-                       unsigned int t = sys->getTime();
-                       return ((t-lastConnect) > (t-s->lastConnect));
-               }else
-                       return true;
-       }
-
-
-
-       // static funcs that do the actual work in the servent thread
-       static  THREAD_PROC             serverProc(ThreadInfo *);
-       static THREAD_PROC serverProcMain(ThreadInfo *);
-       static  THREAD_PROC             outgoingProc(ThreadInfo *);
-       static THREAD_PROC outgoingProcMain(ThreadInfo *);
-       static  THREAD_PROC             incomingProc(ThreadInfo *);
-       static THREAD_PROC incomingProcMain(ThreadInfo *);
-       static  THREAD_PROC             givProc(ThreadInfo *);
-       static THREAD_PROC givProcMain(ThreadInfo *);
-       static  THREAD_PROC             pcpProc(ThreadInfo *);
-       static  THREAD_PROC             fetchProc(ThreadInfo *);
-
-       static bool     pingHost(Host &,GnuID &);
-
-       bool    getLocalURL(char *);
-       bool    getLocalTypeURL(char *, ChanInfo::TYPE);
-
-       // various types of handshaking are needed
-       void    handshakePLS(ChanHitList **, int, bool);
-       void    handshakePLS(ChanInfo &, bool);
-
-       void    handshakeHTML(char *);
-       void    handshakeXML();
-       void    handshakeCMD(char *);
-       bool    handshakeAuth(HTTP &,const char *,bool);
-       void    handshakeIn();
-       void    handshakeOut();
-
-
-       void    processOutPCP();
-       void    processOutChannel();
-
-       bool    handshakeStream(ChanInfo &);
-       void    handshakeGiv(GnuID &);
-
-       void    handshakeICY(Channel::SRC_TYPE,bool);
-       void    handshakeIncoming();
-       void    handshakePOST();
-       void    handshakeRTSP(RTSP &);
-       void    handshakeHTTP(HTTP &,bool);
-
-       void    handshakeRemoteFile(const char *);
-       void    handshakeLocalFile(const char *);
-
-       static void     handshakeOutgoingPCP(AtomStream &,Host &,GnuID &,String &,bool);
-       static void     handshakeIncomingPCP(AtomStream &,Host &,GnuID &,String &);
-
-       void    processIncomingPCP(bool);
-
-       bool    waitForChannelHeader(ChanInfo &);
-       ChanInfo        findChannel(char *str,ChanInfo &);
-
-       bool    writeVariable(Stream &, const String &);
-
-
-       // the "mainloop" of servents 
-       void    processGnutella();
-       void    processRoot();
-       void    processServent();
-       void    processStream(bool,ChanInfo &);
-       void    processPCP(bool,bool);
-
-       bool    procAtoms(AtomStream &);
-       void    procRootAtoms(AtomStream &,int);
-       void    procHeloAtoms(AtomStream &,int,bool);
-       void    procGetAtoms(AtomStream &,int);
-
-       void    triggerChannel(char *,ChanInfo::PROTOCOL,bool);
-       void    sendPeercastChannel();
-       void    sendRawChannel(bool,bool);
-//     void    sendRawMultiChannel(bool,bool);
-       void    sendRawMetaChannel(int);
-       void    sendPCPChannel();
-       void    checkPCPComms(Channel *, AtomStream &);
-
-       static void     readICYHeader(HTTP &, ChanInfo &, char *, size_t);
-       bool    canStream(Channel *);
-
-       bool    isConnected() {return status == S_CONNECTED;}
-       bool    isListening() {return status == S_LISTENING;}
-
-       bool    isAllowed(int);
-       bool    isFiltered(int);
-
-       // connection handling funcs
-       void    createSocket();
-       void    kill();
-       void    abort();
-       bool    isPrivate();
-       bool    isLocal();
-
-
-       Host    getHost();
-
-       bool    outputPacket(GnuPacket &,bool);
-       bool    hasSeenPacket(GnuPacket &p) {return seenIDs.contains(p.id);}
-       bool    acceptGIV(ClientSocket *);
-       bool    sendPacket(ChanPacket &,GnuID &,GnuID &,GnuID &,Servent::TYPE);
-
-
-       TYPE type;
-       STATUS status;
-
-       static char *statusMsgs[],*typeMsgs[];
-       GnuStream gnuStream;
-       GnuPacket pack;
-       unsigned int    lastConnect,lastPing,lastPacket;
-       String  agent;
-
-       GnuIDList       seenIDs;
-       GnuID   networkID;
-       int             serventIndex;
-
-       GnuID   remoteID;
-
-       GnuID   chanID;
-
-       GnuID   givID;
-
-       ThreadInfo      thread;
-
-
-       String  loginPassword;
-       String  loginMount;
-
-       bool    priorityConnect;
-       bool    addMetadata;
-       int             nsSwitchNum;
-
-       unsigned        int allow;
-
-    ClientSocket *sock,*pushSock;
-
-       WLock   lock;
-
-       bool    sendHeader;
-       unsigned int syncPos,streamPos;
-       int             servPort;
-
-       ChanInfo::PROTOCOL      outputProtocol;
-
-       GnuPacketBuffer outPacketsNorm,outPacketsPri;
-
-       unsigned int bytesPerSecond;
-       bool    flowControl;
-
-       Servent *next;
-
-       PCPStream *pcpStream;
-       Cookie  cookie;
-
-       int servent_id;
-       unsigned int lastSkipTime;
-       unsigned int lastSkipCount;
-       unsigned int waitPort;
-
-       ChanHit serventHit;
-
-       int channel_id;
-};
-
-extern char *nextCGIarg(char *cp, char *cmd, char *arg);
-
-
-#endif
-