Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk_1/ftpdel.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1 by hirohitohigashi, Wed Feb 18 08:06:53 2009 UTC revision 11 by hirohitohigashi, Mon Feb 23 02:05:06 2009 UTC
# Line 48  Line 48 
48                  .-1 Error                  .-1 Error
49  ***/  ***/
50    
51  int ftp_del (int sck, char *FileName, int verbose) {  int ftp_del (int sck, char *FileName, int verbose)
52    {
53        char buffer[1024]={'\0'};
54        char *buf;
55        int n = 0;
56        struct timeval tm; //tv_sec - tv_usec
57        fd_set readfds;
58    
59          char buffer[1024]={'\0'};      
60          char *buf;      buf=(char *)malloc(1024*sizeof(char));
         int n = 0;  
61    
62          buf=(char *)malloc(1024*sizeof(char));      memset(buffer, 0x0, 1024);
63        memset(buf, 0x0, 1024);
64    
65          memset(buffer, 0x0, 1024);      if ( strlen(FileName) > 1015 ) {
         memset(buf, 0x0, 1024);  
   
 if ( strlen(FileName) > 1015 ) {  
66          free(buffer);          free(buffer);
67          free(buf);          free(buf);
68                    
69          return DIR_TOO_LONG;          return DIR_TOO_LONG;
70          }      }
71    
72  sprintf(buffer, "DELE %s\n", FileName);      sprintf(buffer, "DELE %s\r\n", FileName);
73    
74          if (write(sck, buffer, strlen(buffer)) == -1) {      if (write(sck, buffer, strlen(buffer)) == -1) {
75                                    
76    
77          if (verbose) {            if (verbose) {  
78                  if (errno == EBADF) {              if (errno == EBADF) {
79                  fprintf(stderr, "Socket Descriptor Not Valid!\n");                  fprintf(stderr, "Socket Descriptor Not Valid!\n");
80                  free(buf);                  free(buf);
81                                    
82                  return -1;                  return -1;
83                  } else if (errno == EIO) {              } else if (errno == EIO) {
84                  fprintf(stderr, "I/O Error!\n");                  fprintf(stderr, "I/O Error!\n");
85                  free(buf);                  free(buf);
86                                    
87                  return -1;                  return -1;
88                  } else if (errno == EINTR) {              } else if (errno == EINTR) {
89                  fprintf(stderr, "Signal Interrupted The write() Function\n");                  fprintf(stderr, "Signal Interrupted The write() Function\n");
90                  free(buf);                  free(buf);
91                    
92                  return -1;                  return -1;
93                  }              }
94                    
95          } else {          } else {
96    
97                  if (errno == EBADF) {              if (errno == EBADF) {
98                  free(buf);                  free(buf);
99                                    
100                  return -1;                  return -1;
101                  } else if (errno == EIO) {              } else if (errno == EIO) {
102                  free(buf);                  free(buf);
103                                    
104                  return -1;                  return -1;
105                  } else if (errno == EINTR) {              } else if (errno == EINTR) {
106                  free(buf);                  free(buf);
107                                    
108                  return -1;                  return -1;
109                  }              }
110    
111          }          }
112    
113                  free(buf);          free(buf);
114                                    
115                  return -1;          return -1;
116    
117                  }      }
118    
119          struct timeval tm; //tv_sec - tv_usec      tm.tv_sec = 3;
120          fd_set readfds;      tm.tv_usec = 0;
         tm.tv_sec = 3;  
         tm.tv_usec = 0;  
121    
122          FD_ZERO(&readfds);      FD_ZERO(&readfds);
123                    
124          FD_SET(sck, &readfds);      FD_SET(sck, &readfds);
125    
126          if (select(sck+1, &readfds, NULL, NULL, &tm) < 0 ) {      if (select(sck+1, &readfds, NULL, NULL, &tm) < 0 ) {
127                  if (verbose) {          if (verbose) {
128                  perror("select()");              perror("select()");
129                  }          }
130                  free(buf);          free(buf);
131                                    
132                  return -1;          return -1;
133          } else {      } else {
134    
135                                    
136                  if (FD_ISSET(sck, &readfds)) {          if (FD_ISSET(sck, &readfds)) {
137    
138                          if ( (n = recv(sck, buf, 1022, 0)) < 0)  {              if ( (n = recv(sck, buf, 1022, 0)) < 0)  {
139                          if (verbose) {                  if (verbose) {
140                          perror("recv()");                      perror("recv()");
141                          }                  }
142                          free(buf);                  free(buf);
143                                    
144                          return -1;                  return -1;
145                          }              }
146    
147                          if (verbose)              if (verbose)
148                          printf("[Server] %s\n", buf);                  printf("[Server] %s\n", buf);
149                                                    
150                  }          }
151                  else {          else {
152                          if (verbose)              if (verbose)
153                          printf("[-] Timeout\n");                  printf("[-] Timeout\n");
154                                                    
155                          return -1;              return -1;
                 }  
156          }          }
157        }
158    
159          buf[n] = '\0';      buf[n] = '\0';
160    
161          if (ftp_file_handler(buf, 0) != 0) {      if (ftp_file_handler(buf, 0) != 0) {
162                  free(buf);          free(buf);
163                                    
164                  return -1;          return -1;
165          }      }
166    
167          free(buf);      free(buf);
168                    
169          return 0; //Removed!      return 0; //Removed!
170    
171  }  }

Legend:
Removed from v.1  
changed lines
  Added in v.11

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26