Hi all,
I try to change an ethernet NIC's mtu using the following code and get
a "Bad address" error. I will appreciate any help with this matter.
I am using Linux kernel 2.4.18-3smp, redhat 7.3
int SetInterfaceMtu(const char *name, int mtu){
struct ifreq ifr;
int sock = socket(PF_INET, SOCK_DGRAM, 0);
if (sock == -1) {
perror("socket");
return 0;
}
strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)-1);
ifr.ifr_mtu = mtu;
if (ioctl(sock, SIOCSIFMTU, ifr) == 0){ //success
close(sock);
return 1;
}
else { //failure
close(sock);
perror("SIOCSIFMTU");
return 0;
}
}
Thank you.
|