30 void error(
const char *msg)
37 int main(
int argc,
char *argv[])
39 char buff[MAX_SZ],read_buff[MAX_SZ];
41 unsigned int portno,size,sess_type;
43 string plugin_name,message,fname;
50 char win_fname[1024],win_ext[10];
52 memset(win_fname,0,1024);
55 memset(buff,0,MAX_SZ);
57 error(
"Usage: sample_client2 <ip_address> <port> <plugin_name> <filename> <1=SSL|0=RAW>");
58 portno = atoi(argv[2]);
59 plugin_name = string(argv[3]);
60 fname = string(argv[4]);
61 sess_type = atoi(argv[5]);
65 error(
"ERROR SSL init");
66 if(!ssl_connect((
unsigned char *) argv[1], portno,sock,&ssl_client,&ctx))
67 error(
"ERROR SSL connecting");
71 if(!sock_connect((
unsigned char *)argv[1],portno,sock))
72 error(
"ERROR connecting");
75 memset(buff,0,MAX_SZ);
78 _splitpath_s((
char *)fname.c_str(), NULL,0, NULL,0, win_fname,1024, win_ext,10);
79 strcat_s(win_fname,1024,win_ext);
80 size = create_message(plugin_name,SET_NAME,win_fname,buff);
82 size = create_message(plugin_name,SET_NAME,basename((
char *)fname.c_str()),buff);
85 SSL_write(ssl_client, buff,size);
87 send(sock,buff,size,0);
90 ifstream ifs(fname.c_str(), std::ios::binary);
93 ifs.read(buff, MAX_SZ-(2*MSG_HDR_SIZE));
94 message = string(buff,(
unsigned int)ifs.gcount());
96 size = create_message(plugin_name,FILE_DATA,message,buff);
98 n = SSL_write(ssl_client, buff,size);
100 n = send(sock,buff,size,0);
102 error(
"write ERROR ..");
104 n = ssl_read_socket((
unsigned char *)read_buff,sock,&ssl_client);
106 n = read_socket((
unsigned char *)read_buff,sock);
108 error(
"read ERROR..");
113 message = string(
"TERMINATE");
114 size = create_message(plugin_name,CLOSE_FILE,message,buff);
117 SSL_write(ssl_client, buff,size);
118 while((SSL_shutdown(ssl_client)) == 0);
121 send(sock,buff,size,0);