aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/udhcp/socket.c')
-rw-r--r--networking/udhcp/socket.c26
1 files changed, 0 insertions, 26 deletions
diff --git a/networking/udhcp/socket.c b/networking/udhcp/socket.c
index 60190a044..c19838a7b 100644
--- a/networking/udhcp/socket.c
+++ b/networking/udhcp/socket.c
@@ -130,29 +130,3 @@ int listen_socket(unsigned int ip, int port, char *inf)
130 130
131 return fd; 131 return fd;
132} 132}
133
134
135int raw_socket(int ifindex)
136{
137 int fd;
138 struct sockaddr_ll sock;
139
140 DEBUG(LOG_INFO, "Opening raw socket on ifindex %d", ifindex);
141 if ((fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))) < 0) {
142 DEBUG(LOG_ERR, "socket call failed: %m");
143 return -1;
144 }
145
146 while (fd >= 0 && fd < 3) fd = dup(fd); /* don't let daemon close fds on us */
147
148 sock.sll_family = AF_PACKET;
149 sock.sll_protocol = htons(ETH_P_IP);
150 sock.sll_ifindex = ifindex;
151 if (bind(fd, (struct sockaddr *) &sock, sizeof(sock)) < 0) {
152 DEBUG(LOG_ERR, "bind call failed: %m");
153 close(fd);
154 return -1;
155 }
156
157 return fd;
158}