⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 krt.cc

📁 RSA algorithm implementation is given
💻 CC
字号:
#include "common.h"#include "externDec.h"struct rtentry *gen_krtentry( rtable_entry rtEntry ){	  struct rtentry *new_rtentry;	  struct sockaddr_in dst;	  struct sockaddr_in gw;	  struct sockaddr_in genmask;	  unsigned int netmask=0xffffffff;#ifdef DEBUG	  cout << "gen_krtentry: Entered" << endl;#endif	  if((new_rtentry = (struct rtentry *)malloc(sizeof(struct rtentry))) == NULL)	  {		perror("Error in malloc");	   	return NULL; 	  }	  bzero((void *)new_rtentry,sizeof(struct rtentry));	  bzero((void *)&dst,sizeof(struct sockaddr_in));	  bzero((void *)&gw,sizeof(struct sockaddr_in));	  bzero((void *)&genmask,sizeof(struct sockaddr_in));	  dst.sin_family = AF_INET;	  gw.sin_family = AF_INET;	  genmask.sin_family = AF_INET;	  dst.sin_addr.s_addr = rtEntry.getDestIP();	  struct in_addr 	addr_temp;	  addr_temp.s_addr = g_my_ip;#ifdef DEBUG	  cout << "gen_krtentry: Local Host is   " << inet_ntoa(addr_temp) << endl;	  addr_temp.s_addr = rtEntry.getDestIP();	  cout << "gen_krtentry: DstIP is   " << inet_ntoa(addr_temp) << endl;	  addr_temp.s_addr = rtEntry.getNextHop();	  cout << "gen_krtentry: Nxt Hop is   " << inet_ntoa(addr_temp) << endl;#endif	  if( rtEntry.getRTMetric() == 1)	  {#ifdef DEBUG		cout << " routingTable: gen_krtentry: 1 hop cnt " << endl;#endif	  	gw.sin_addr.s_addr = g_my_ip;	  }	  else	  {#ifdef DEBUG		cout << " routingTable: gen_krtentry: multi hop cnt " << endl;#endif	  	gw.sin_addr.s_addr = rtEntry.getNextHop();	  }#ifdef DEBUG	  cout << "gen_krtentry: metric is " << rtEntry.getRTMetric() << endl;#endif	  genmask.sin_addr.s_addr = netmask;	  new_rtentry->rt_flags = RTF_UP | RTF_HOST | RTF_GATEWAY;	  new_rtentry->rt_metric = (short)rtEntry.getRTMetric();	  new_rtentry->rt_dev = interface;	  new_rtentry->rt_dst = *(struct sockaddr*) &dst;	  new_rtentry->rt_gateway = *(struct sockaddr*) &gw;	  new_rtentry->rt_genmask = *(struct sockaddr*) &genmask;	  return new_rtentry;}int		add_kroute( rtable_entry  rtEntry ){	  struct rtentry  *new_krtentry;#ifdef DEBUG	  cout << "add_kroute: Entered" << endl;#endif	  if ((new_krtentry = gen_krtentry(rtEntry)) == NULL)	  {	     cout << "Error in gen_krtentry" << endl;	    return -1;	  }	  if(ioctl(ksock, SIOCADDRT,(char*) new_krtentry) == -1)	  {#ifdef DEBUG		  cout << "routingTable: add_kroute: ioctl failed " << endl;        perror("Error in ioctl- adding routes");#endif	    return -1;	  }	  free(new_krtentry);	  return 0;}int	del_kroute( rtable_entry rtEntry ){	  struct rtentry  *new_krtentry;#ifdef DEBUG	  cout << "del_kroute: Entered" << endl;#endif	  if ((new_krtentry = gen_krtentry(rtEntry)) == NULL)	  {	  	cout << "del_kroute: error in gen_krtentry " << endl;	  	return -1;	  }	  if(ioctl(ksock, SIOCDELRT, (char*) new_krtentry) == -1)	  {#ifdef DEBUG	  	cout << "routingTable: del_kroute: ioctl failed " << endl;        perror("Error in ioctl- deleting routes");#endif	    return -1;	  }	  return 0;	  free(new_krtentry);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -