Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk_1/ftpsystem.c

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

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

Legend:
Removed from v.6  
changed lines
  Added in v.7

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