Skip to content
This repository was archived by the owner on Jun 9, 2021. It is now read-only.

Commit 1159119

Browse files
committed
updated
1 parent 955ebc4 commit 1159119

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

put_unique.h

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Upload file uniquely on server.
2+
Upload files on server.
33
*/
44
void put_unique(char *arg,char *user_input,int sockfd)
55
{
@@ -33,48 +33,59 @@ void put_unique(char *arg,char *user_input,int sockfd)
3333
while((no_of_bytes = recv(sockfd,message_from_server,MAXSZ,0)) > 0)
3434
{
3535
message_from_server[no_of_bytes] = '\0';
36-
printf("%s\n",message_from_server);
36+
printf("%s",message_from_server);
3737
fflush(stdout);
38-
if(message_from_server[no_of_bytes-2] == '\r' && message_from_server[no_of_bytes-1] == '\n')
38+
if(strstr(message_from_server,"200 ") > 0 || strstr(message_from_server,"501 ") > 0 ||strstr(message_from_server,"500 ") > 0 ||strstr(message_from_server,"504 ") > 0 ||strstr(message_from_server,"421 ") > 0 || strstr(message_from_server,"530 ") > 0)
3939
break;
4040
}
41+
printf("\n");
42+
43+
if(strstr(message_from_server,"501 ") > 0 ||strstr(message_from_server,"500 ") > 0 ||strstr(message_from_server,"504 ") > 0 ||strstr(message_from_server,"421 ") > 0 || strstr(message_from_server,"530 ") > 0)
44+
return;
4145

4246
/* Send request for PASSIVE connection */
4347
send(sockfd,passive,strlen(passive),0);
4448

4549
while((no_of_bytes = recv(sockfd,message_from_server,MAXSZ,0)) > 0)
4650
{
4751
message_from_server[no_of_bytes] = '\0';
48-
printf("%s\n",message_from_server);
52+
printf("%s",message_from_server);
4953
fflush(stdout);
50-
if(message_from_server[no_of_bytes-2] == '\r' && message_from_server[no_of_bytes-1] == '\n')
54+
if(strstr(message_from_server,"227 ") > 0 || strstr(message_from_server,"501 ") > 0 ||strstr(message_from_server,"500 ") > 0 ||strstr(message_from_server,"502 ") > 0 ||strstr(message_from_server,"421 ") > 0 || strstr(message_from_server,"530 ") > 0)
5155
break;
5256

5357
}
58+
printf("\n");
59+
60+
if(strstr(message_from_server,"501 ") > 0 ||strstr(message_from_server,"500 ") > 0 ||strstr(message_from_server,"502 ") > 0 ||strstr(message_from_server,"421 ") > 0 || strstr(message_from_server,"530 ") > 0)
61+
return;
5462

5563
/* Server accepts request and sends PORT variables */
56-
if(strncmp(message_from_server,"227",3)== 0)
64+
if(strncmp(message_from_server,"227",3) == 0)
5765
{
5866
/* Generate a PORT number using PORT variables */
5967
port = passive_port_number(message_from_server);
6068

6169
/* Connect to server using another PORT for file transfers */
6270
newsockfd = func_to_connect_passive(arg,port);
71+
fcntl(newsockfd,F_SETFL,FNDELAY);
6372

6473
/* Send file name to server */
65-
sprintf(file_name,"STOU %s\r\n",user_input + 8);
74+
sprintf(file_name,"STOU %s\r\n",user_input + 4);
6675
send(sockfd,file_name,strlen(file_name),0);
6776

6877
while((no_of_bytes = recv(sockfd,message_from_server,MAXSZ,0)) > 0)
6978
{
7079
message_from_server[no_of_bytes] = '\0';
71-
printf("%s\n",message_from_server);
80+
printf("%s",message_from_server);
7281
fflush(stdout);
73-
if(message_from_server[no_of_bytes-2] == '\r' && message_from_server[no_of_bytes-1] == '\n')
82+
if(strstr(message_from_server,"125 ") > 0 ||strstr(message_from_server,"150 ") > 0 || strstr(message_from_server,"501 ") > 0 ||strstr(message_from_server,"500 ") > 0 ||strstr(message_from_server,"452 ") > 0 ||strstr(message_from_server,"421 ") > 0 || strstr(message_from_server,"530 ") > 0 || strstr(message_from_server,"553 ") > 0 ||strstr(message_from_server,"532 ") > 0)
7483
break;
7584
}
85+
printf("\n");
86+
7687
/* Send file data to server */
77-
if(strncmp(message_from_server,"150",3)== 0 || strncmp(message_from_server,"125",3)== 0)
88+
if(strncmp(message_from_server,"150",3) == 0 || strncmp(message_from_server,"125",3) == 0)
7889
{
7990
sprintf(file,"%s",user_input + 4);
8091

@@ -99,7 +110,7 @@ void put_unique(char *arg,char *user_input,int sockfd)
99110
message_from_server[no_of_bytes] = '\0';
100111
printf("%s\n",message_from_server);
101112
fflush(stdout);
102-
if(message_from_server[no_of_bytes-2] == '\r' && message_from_server[no_of_bytes-1] == '\n')
113+
if(strstr(message_from_server,"226 ") > 0)
103114
break;
104115
}
105116
}

0 commit comments

Comments
 (0)