Пример #1
0
void sendForever(struct libxenvchan * chan){
   char * tmp = (char *) malloc(256 * sizeof(char));
   while (1){
     printf("Enter text to send:\n");
     fgets(tmp, 256, stdin);
     vchan_send(chan,tmp, strlen(tmp)); 
   }

}
Пример #2
0
static int
l_rdp_channel_data(rdpInst * inst, int chan_id, char * data, int data_size)
{
	rdpRdp * rdp;
	rdpChannels * chan;

	rdp = RDP_FROM_INST(inst);
	chan = rdp->sec->mcs->chan;
	return vchan_send(chan, chan_id, data, data_size);
}
Пример #3
0
int rdp_send_channel_data(rdpRdp* rdp, int channel_id, uint8* data, int size)
{
	return vchan_send(rdp->vchan, channel_id, data, size);
}
Пример #4
0
int main(int argc, char *argv[])
{

	//Vchan Prep
	struct libxenvchan *chan = 0;
	int selfId; // domainID of this node;
	int otherId;
	int client= 0;
	 xentoollog_logger_stdiostream * xc_logger;

  	xc_logger = createDebugLogger();

	selfId =getDomId();
	fprintf(stdout,"Client: Domain Id: %d\n", selfId);

	if(argc != 3){
		fprintf(stderr,"Error: Usage ./Client [server-0, client-1] [other domId]\n");
		exit(1);
	}  

	sscanf(argv[1],"%d",&client);
	sscanf(argv[2],"%d",&otherId);

	if (!client){
    		chan = vchan_server_init((xentoollog_logger *) xc_logger,otherId);
  	}else{
     		chan = vchan_client_init((xentoollog_logger *)xc_logger, otherId);
  	}



	//Sockets Prep

	int listenfd = 0, connfd = 0;
	struct sockaddr_in serv_addr; 
	char recvBuff[1024];
	int n = 0;

	char sendBuff[1024];
	time_t ticks; 

	listenfd = socket(AF_INET, SOCK_STREAM, 0);
	memset(&serv_addr, '0', sizeof(serv_addr));
	memset(sendBuff, '0', sizeof(sendBuff)); 

	serv_addr.sin_family = AF_INET;
	serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
	serv_addr.sin_port = htons(5000); 

	bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); 

	printf("\n Waiting for a client...\n");
	listen(listenfd, 10); 
	printf("\n 1\n");

	while(1)
	{
	printf("\n 2\n");
		connfd = accept(listenfd, (struct sockaddr*)NULL, NULL); 
	printf("\n 3\n");

		ticks = time(NULL);

		while(1)
		{


			//GET REQUEST
			printf("Waiting for request from Attester\n");
			int size;
			char * msg;
			int i = 0;

			libxenvchan_wait(chan);
			msg = vchan_receive(chan,&size);
			printf("Received: ");
			for(i = 0; i< size; i++){
				printf("%c",msg[i]);
			}
			printf("\n");

			//ISSUE REQUEST
			printf("Sending request message to Measurer\nsent: ");

			memset(sendBuff, 0, sizeof(sendBuff));
			snprintf(sendBuff, sizeof(sendBuff), msg);
			if(fputs(sendBuff, stdout) == EOF)
			{
	    			printf("\n Error : Fputs error\n");
			} 
			write(connfd, sendBuff, sizeof(sendBuff)); 

			//GET RESPONSE
			printf("Waiting for response from Measurer\n");

			n = read(connfd, recvBuff, sizeof(recvBuff));
			recvBuff[n] = 0;
			if(fputs(recvBuff, stdout) == EOF)
			{
				printf("\n Error : Fputs error\n");
			} 

			if(n < 0)
			{
				printf("\n Read error \n");
			} 

			//SEND RESPONSE TO ATTESTER
			printf("Sending response to Attester\n");
			//char * tmp = (char *) malloc(256 * sizeof(char));
		     	//printf("Enter text to send:\n");
		     	//fgets(tmp, 256, stdin);
		     	vchan_send(chan,recvBuff, strlen(recvBuff)); 

		}

		close(connfd);
		sleep(1);
	}
}