FS2_Open
Open source remastering of the Freespace 2 engine
cftp.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) Volition, Inc. 1999. All rights reserved.
3  *
4  * All source code herein is the property of Volition, Inc. You may not sell
5  * or otherwise commercially exploit the source or things you created based on the
6  * source.
7  *
8 */
9 
10 
11 
12 #ifndef _CFTP_HEADER_
13 #define _CFTP_HEADER_
14 
15 #include "globalincs/pstypes.h"
16 
17 #include <stdio.h>
18 
19 #ifdef WIN32
20 #include <winsock.h>
21 #endif
22 
23 #define FTP_STATE_INTERNAL_ERROR 0
24 #define FTP_STATE_SOCKET_ERROR 1
25 #define FTP_STATE_URL_PARSING_ERROR 2
26 #define FTP_STATE_CONNECTING 3
27 #define FTP_STATE_HOST_NOT_FOUND 4
28 #define FTP_STATE_CANT_CONNECT 5
29 #define FTP_STATE_LOGGING_IN 6
30 #define FTP_STATE_LOGIN_ERROR 7
31 #define FTP_STATE_LOGGED_IN 8
32 #define FTP_STATE_DIRECTORY_INVALID 9
33 #define FTP_STATE_FILE_NOT_FOUND 10
34 #define FTP_STATE_RECEIVING 11
35 #define FTP_STATE_FILE_RECEIVED 12
36 #define FTP_STATE_UNKNOWN_ERROR 13
37 #define FTP_STATE_RECV_FAILED 14
38 #define FTP_STATE_CANT_WRITE_FILE 15
39 #define FTP_STATE_STARTUP 16
40 
41 
42 #ifdef WIN32
43 extern void FTPObjThread( void *obj );
44 #else
45 extern int FTPObjThread( void *obj );
46 #endif
47 
48 class CFtpGet
49 {
50 
51 public:
52  CFtpGet(char *URL, char *localfile, char *Username = NULL, char *Password = NULL);
53  ~CFtpGet();
54  int GetStatus();
55  uint GetBytesIn();
57  void AbortGet();
58 
59  void WorkerThread();
60 
61 protected:
62 
64  int LoginHost();
65  uint SendFTPCommand(char *command);
67  uint GetFile();
68  uint IssuePort();
70  void FlushControlChannel();
71 
75 
76  bool m_Aborting;
77  bool m_Aborted;
78 
79  char m_szUserName[100];
80  char m_szPassword[100];
81  char m_szHost[200];
82  char m_szDir[200];
83  char m_szFilename[100];
84 
85  char recv_buffer[1000];
86 
90 
91  FILE *LOCALFILE;
92 
93 #ifdef SCP_UNIX
94  SDL_Thread *thread_id;
95 #endif
96 };
97 
98 
99 #endif
int FTPObjThread(void *obj)
Definition: cftp.cpp:38
uint m_State
Definition: cftp.h:74
bool m_Aborted
Definition: cftp.h:77
char m_szDir[200]
Definition: cftp.h:82
int LoginHost()
Definition: cftp.cpp:453
uint ReadFTPServerReply()
Definition: cftp.cpp:496
void AbortGet()
Definition: cftp.cpp:48
uint GetBytesIn()
Definition: cftp.cpp:238
uint GetTotalBytes()
Definition: cftp.cpp:243
void WorkerThread()
Definition: cftp.cpp:252
unsigned int uint
Definition: pstypes.h:64
SOCKET m_ControlSock
Definition: cftp.h:89
uint IssuePort()
Definition: cftp.cpp:345
uint GetFile()
Definition: cftp.cpp:272
uint ReadDataChannel()
Definition: cftp.cpp:549
#define SOCKET
Definition: config.h:122
int GetStatus()
Definition: cftp.cpp:233
char m_szUserName[100]
Definition: cftp.h:79
void FlushControlChannel()
Definition: cftp.cpp:588
uint m_iBytesIn
Definition: cftp.h:72
Definition: cftp.h:48
SOCKET m_DataSock
Definition: cftp.h:88
char recv_buffer[1000]
Definition: cftp.h:85
CFtpGet(char *URL, char *localfile, char *Username=NULL, char *Password=NULL)
Definition: cftp.cpp:57
char m_szPassword[100]
Definition: cftp.h:80
uint m_iBytesTotal
Definition: cftp.h:73
GLsizei GLsizei GLuint * obj
Definition: Glext.h:5619
int ConnectControlSocket()
Definition: cftp.cpp:410
SOCKET m_ListenSock
Definition: cftp.h:87
bool m_Aborting
Definition: cftp.h:76
FILE * LOCALFILE
Definition: cftp.h:91
~CFtpGet()
Definition: cftp.cpp:202
char m_szFilename[100]
Definition: cftp.h:83
char m_szHost[200]
Definition: cftp.h:81
uint SendFTPCommand(char *command)
Definition: cftp.cpp:478