summaryrefslogtreecommitdiff
path: root/usr/src/cmd/cmd-inet/sbin/dhcpagent/packet.c
diff options
context:
space:
mode:
authorss150715 <none@none>2007-06-12 20:58:49 -0700
committerss150715 <none@none>2007-06-12 20:58:49 -0700
commit948f2876ce2a3010558f4f6937e16086ebcd36f2 (patch)
treed3effbbe7ac9273659031d182e09c63978319d45 /usr/src/cmd/cmd-inet/sbin/dhcpagent/packet.c
parentd5782879d27b85dce3fec2c6791f149d26545295 (diff)
downloadillumos-gate-948f2876ce2a3010558f4f6937e16086ebcd36f2.tar.gz
PSARC 2007/282 DLPI MAC-Type Mapping Functions
4714297 libdlpi ought to detect stream hangup properly 6397009 core dumped from get_ethernet_address() 6505649 need DLPI type mapping routines 6524620 dlpi_to_arp belongs in libdlpi, not libdhcputil 6524636 dhcpagent should be ported to libdlpi 6534006 libuuid should be ported to libdlpi 6534017 zoneadm should be ported to libdlpi 6534023 in.rarpd should be ported to libdlpi 6534263 show_linkprop_onelink() should use dlpi_open() instead of open() 6549358 64-bit version of libdladm needed for libuuid 6562226 fsck should link to libraries instead of directly pulling source --HG-- rename : usr/src/cmd/cmd-inet/sbin/dhcpagent/dlprims.c => deleted_files/usr/src/cmd/cmd-inet/sbin/dhcpagent/dlprims.c rename : usr/src/cmd/cmd-inet/sbin/dhcpagent/dlprims.h => deleted_files/usr/src/cmd/cmd-inet/sbin/dhcpagent/dlprims.h rename : usr/src/cmd/zoneadm/dlprims.c => deleted_files/usr/src/cmd/zoneadm/dlprims.c
Diffstat (limited to 'usr/src/cmd/cmd-inet/sbin/dhcpagent/packet.c')
-rw-r--r--usr/src/cmd/cmd-inet/sbin/dhcpagent/packet.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/usr/src/cmd/cmd-inet/sbin/dhcpagent/packet.c b/usr/src/cmd/cmd-inet/sbin/dhcpagent/packet.c
index f61b05db20..f07b7297b0 100644
--- a/usr/src/cmd/cmd-inet/sbin/dhcpagent/packet.c
+++ b/usr/src/cmd/cmd-inet/sbin/dhcpagent/packet.c
@@ -986,7 +986,7 @@ send_pkt_internal(dhcp_smach_t *dsmp)
n_bytes = sendmsg(v6_sock_fd, &msg, 0);
} else {
if (dsmp->dsm_using_dlpi) {
- n_bytes = dlpi_sendto(pif->pif_dlpi_fd, dpkt->pkt,
+ n_bytes = dlpi_sendto(pif->pif_dlpi_hd, dpkt->pkt,
dpkt->pkt_cur_len, &dsmp->dsm_send_dest.v4,
pif->pif_daddr, pif->pif_dlen);
/* dlpi_sendto calls putmsg */
@@ -1319,15 +1319,16 @@ sock_recvpkt(int fd, PKT_LIST *plp)
/*
* recv_pkt(): receives a single DHCP packet on a given file descriptor.
*
- * input: int: the file descriptor to receive the packet
+ * input: int: if not using dlpi, the file descriptor to receive the packet
* int: the maximum packet size to allow
* boolean_t: B_TRUE for IPv6
* boolean_t: B_TRUE if using DLPI
+ * void *: if using DLPI, structure that has DLPI handle
* output: PKT_LIST *: the received packet
*/
PKT_LIST *
-recv_pkt(int fd, int mtu, boolean_t isv6, boolean_t isdlpi)
+recv_pkt(int fd, int mtu, boolean_t isv6, boolean_t isdlpi, dhcp_pif_t *arg)
{
PKT_LIST *plp;
ssize_t retval;
@@ -1355,7 +1356,9 @@ recv_pkt(int fd, int mtu, boolean_t isv6, boolean_t isdlpi)
}
} else {
if (isdlpi) {
- retval = dlpi_recvfrom(fd, plp->pkt, mtu,
+ dhcp_pif_t *pif = arg;
+
+ retval = dlpi_recvfrom(pif->pif_dlpi_hd, plp->pkt, mtu,
(struct sockaddr_in *)&plp->pktfrom,
(struct sockaddr_in *)&plp->pktto);
} else {