void sendOspfPacket(char *interface, char *destIP, char *ospfPacket, int packetLength) { int socketfd; struct sockaddr_in ospfServer; ospfServer.sin_family = AF_INET; ospfServer.sin_addr.s_addr = inet_addr (destIP); printf("Sending OSPF Packet to interface = %s Dest = %s, Length=%d \n", interface, destIP, packetLength); // Create a raw socket with OSPF Protocol socketfd = createRawSocket(interface); // Send ospf packet to destination with IP destIP received as argument if (sendto (socketfd, ospfPacket, packetLength, 0, (struct sockaddr *) &ospfServer, sizeof (ospfServer)) < 0) perror("sendto failed"); else printf ("OSPF Packet Sent .....\n\n\n"); close(socketfd); // Print the contents of ospf packet sent int i=0; for(i=0;i<packetLength;i++) printf("0x%02X ", ospfPacket[i]); printf("\n"); }
int main(){ rsfd=createRawSocket(55); char msg[25]; sprintf(msg, "%s", "This is message!!"); int l=strlen(msg); msg[l]='\0'; char optional[25]; sprintf(optional, "%s", "This is optional!!"); l=strlen(optional); optional[l]='\0'; char datagram[BUFF]; createPacket(datagram, msg, optional); sendPacket(datagram); return 0; }
int main(int argc, char* argv[]){ signal(SIGUSR1, handle); printf("pid: %d\n", getpid()); init(); int i; for(i=0; i<pnum; i++) cpid[i]=atoi(argv[2+pnum+i]); for(i=0; i<pnum; i++) usfd[i]=connect_to_unix(argv[2+i]); sfd=createSocket(atoi(argv[1])); rsfd=createRawSocket(55); start(); }