aboutsummaryrefslogtreecommitdiffstats
path: root/src/firejail/network.c
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2016-01-10 13:29:34 -0500
committerLibravatar netblue30 <netblue30@yahoo.com>2016-01-10 13:29:34 -0500
commit6882f50a52aabdc01e703443bec0079dbf40b117 (patch)
tree571783531f9dc2be6e326a3f4fa7dee13fb2762f /src/firejail/network.c
parentdevelopment version 0.9.37 (diff)
downloadfirejail-6882f50a52aabdc01e703443bec0079dbf40b117.tar.gz
firejail-6882f50a52aabdc01e703443bec0079dbf40b117.tar.zst
firejail-6882f50a52aabdc01e703443bec0079dbf40b117.zip
network work
Diffstat (limited to 'src/firejail/network.c')
-rw-r--r--src/firejail/network.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/firejail/network.c b/src/firejail/network.c
index 5f7a84a1e..ece406fc8 100644
--- a/src/firejail/network.c
+++ b/src/firejail/network.c
@@ -240,6 +240,40 @@ void net_if_up(const char *ifname) {
240 close(sock); 240 close(sock);
241} 241}
242 242
243// bring interface up
244void net_if_down(const char *ifname) {
245 if (strlen(ifname) > IFNAMSIZ) {
246 fprintf(stderr, "Error: invalid network device name %s\n", ifname);
247 exit(1);
248 }
249
250 int sock = socket(AF_INET,SOCK_DGRAM,0);
251 if (sock < 0)
252 errExit("socket");
253
254 // get the existing interface flags
255 struct ifreq ifr;
256 memset(&ifr, 0, sizeof(ifr));
257 strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
258 ifr.ifr_addr.sa_family = AF_INET;
259
260 // read the existing flags
261 if (ioctl(sock, SIOCGIFFLAGS, &ifr ) < 0) {
262 close(sock);
263 errExit("ioctl");
264 }
265
266 ifr.ifr_flags &= ~IFF_UP;
267
268 // set the new flags
269 if (ioctl( sock, SIOCSIFFLAGS, &ifr ) < 0) {
270 close(sock);
271 errExit("ioctl");
272 }
273
274 close(sock);
275}
276
243// configure interface 277// configure interface
244void net_if_ip(const char *ifname, uint32_t ip, uint32_t mask, int mtu) { 278void net_if_ip(const char *ifname, uint32_t ip, uint32_t mask, int mtu) {
245 if (strlen(ifname) > IFNAMSIZ) { 279 if (strlen(ifname) > IFNAMSIZ) {