Source: xql/xqlftp.h


Annotated List
Files
Globals
Hierarchy
Index
/***************************************************************************
                          xqlftp.h  -  description
                             -------------------
    begin                : Sun Mar 10 2002
    copyright            : (C) 2002 by Raoul Markus
    email                : raoul.markus@gmx.de
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef XQLFTP_H
#define XQLFTP_H

#define DEFAULT_PORT_NUM 21

#define PASSWORD_LENGTH 256


#define bzero(x,y) memset(x,0,y)
#define bcopy(x,y,z) memcpy(y,x,z)
#define INVALID_SOCKET (~0)

enum {
 LS = 0,
 BINARY,
 ASCII,
 PWD,
 CD,
 OPEN,
 CLOSE,
 QUIT,
 LCD,
 LLS,
 LDIR,
 USER,
 SHELL,
 IGNORE_COMMAND,
 GET,
 PUT,
 HELP,
 RHELP,

 FTP_COMPLETE=1, /* these will be used later */
 FTP_CONTINUE,
 FTP_ERROR
};


/**class to provide ftp-connection 
  *@author Raoul Markus
  */

class xqlFtp {
public: 
	xqlFtp();
	~xqlFtp();
	
	void DoOpen(char *);
	void DoList(char *);
	void DoCD(const char *pDir);
	void DoLogin(char *pUser, char* pPasswd);
	void DoClose(void);
	void DoLCD( char *);
	void DoPut(const char * pLocalFile, const char * pRemoteFile );
	void DoGet(const char *pRemoteFile, const char * pLocalFile);
	void DoLLS( char * command );
	void DoBinary();

	void DoAscii();
	void DoPWD();

	int  CheckFds(char *);
  /** connects and performs login on the ftp-server */
  void DoConnect();
  /** sets the ftp login name for this ftp connection */
  void setUserName(const char* pUser);
  /** sets the hostname */
  void setHostname(const char * pHostname);
  /** sets the password for this ftp connection */
  void setPasswd(const char * pPasswd);

private:
	char szBuffer[1025];  /* buffer used to read/write */
	char szUser[20];          /* stores username */
	char szPass[256];         /* stores user password */
	int Connected;     /* flag for connect status */
	int hListenSocket;
	int hControlSocket;
	int hDataSocket;	
  /**  */
  char mHostname[1025];
	int bSendPort;
	int ReadCommand;
	int bMode;
	int GetReply();
  int GetLine();
	void CleanUp();
	int SendControlMsg(char *, int);
	int SendDataMsg( char *szBuffer, int len);
	int ConnectToServer(char *name, char *port);
	int GetListenSocket();
	int InitWinsock();
	int AcceptConnection();
	void CloseControlConnection( void );
	void CloseDataConnection( int hDataSocket );
	void CloseListenSocket();
	int ReadDataMsg( char *szBuffer, int len);
	void GetPassword( char *szPass );
	int GetUnixInput(char *command);
	int GetWin32Input( char *command);
	void GetFile(const char *fname, const char* pToName);
	void PutFile(const char *fname, const char * pToFile);
	int ReadControlMsg( char *szBuffer, int len);
	int CheckControlMsg( char *szPtr, int len);
	int CheckInput();


};

#endif

Generated by: markus on hobbes on Fri Mar 29 16:15:24 2002, using kdoc 2.0a53.