Update of /cvsroot/dhcp-agent/dhcp-agent/src
In directory sc8-pr-cvs1:/tmp/cvs-serv4917/src
Modified Files:
dhcp-net.c dhcp-libutil.h
Log Message:
fixed up socket level udp networking
Index: dhcp-net.c
===================================================================
RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-net.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** dhcp-net.c 20 Jul 2003 05:49:49 -0000 1.5
--- dhcp-net.c 26 Jul 2003 23:46:16 -0000 1.6
***************
*** 28,32 ****
#include "dhcp-limits.h"
#include "dhcp-libutil.h"
- #include "dhcp-librawnet.h"
/* * * * * * * * * * * * *
--- 28,31 ----
***************
*** 82,92 ****
}
! size_t udp_sock_recv(int sd, uint8_t *buff, size_t buffsize, ip_addr_t *src_addr)
{
! size_t retval;
struct sockaddr_in in;
socklen_t len = sizeof(struct sockaddr_in);
retval = recvfrom(sd, buff, buffsize, 0, (struct sockaddr *)&in, &len);
*src_addr = in.sin_addr.s_addr;
--- 81,94 ----
}
! int udp_sock_recv(int sd, uint8_t *buff, size_t buffsize, ip_addr_t *src_addr)
{
! int retval;
struct sockaddr_in in;
socklen_t len = sizeof(struct sockaddr_in);
retval = recvfrom(sd, buff, buffsize, 0, (struct sockaddr *)&in, &len);
+
+ if(retval < 0)
+ return -1;
*src_addr = in.sin_addr.s_addr;
Index: dhcp-libutil.h
===================================================================
RCS file: /cvsroot/dhcp-agent/dhcp-agent/src/dhcp-libutil.h,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** dhcp-libutil.h 20 Jul 2003 05:49:49 -0000 1.32
--- dhcp-libutil.h 26 Jul 2003 23:46:16 -0000 1.33
***************
*** 318,322 ****
extern int udp_sock_create(uint16_t source_port, ip_addr_t local_addr);
extern void udp_sock_destroy(int sd);
! extern size_t udp_sock_recv(int sd, uint8_t *buff, size_t buffsize, ip_addr_t *src_addr);
extern int udp_sock_send(int udp_sock, uint8_t *msg, size_t size, ip_addr_t dst_addr, uint16_t dest_port);
--- 318,322 ----
extern int udp_sock_create(uint16_t source_port, ip_addr_t local_addr);
extern void udp_sock_destroy(int sd);
! extern int udp_sock_recv(int sd, uint8_t *buff, size_t buffsize, ip_addr_t *src_addr);
extern int udp_sock_send(int udp_sock, uint8_t *msg, size_t size, ip_addr_t dst_addr, uint16_t dest_port);
|