diff options
Diffstat (limited to 'src/openvpn/dhcp.c')
-rw-r--r-- | src/openvpn/dhcp.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/openvpn/dhcp.c b/src/openvpn/dhcp.c index a2a5454..c17a22e 100644 --- a/src/openvpn/dhcp.c +++ b/src/openvpn/dhcp.c @@ -16,9 +16,10 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License + * along with this program (see the file COPYING included with this + * distribution); if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifdef HAVE_CONFIG_H @@ -159,20 +160,17 @@ udp_checksum(const uint8_t *buf, /* make 16 bit words out of every two adjacent 8 bit words and */ /* calculate the sum of all 16 bit words */ - for (i = 0; i < len_udp; i += 2) - { + for (i = 0; i < len_udp; i += 2) { word16 = ((buf[i] << 8) & 0xFF00) + ((i + 1 < len_udp) ? (buf[i+1] & 0xFF) : 0); sum += word16; } /* add the UDP pseudo header which contains the IP source and destination addresses */ - for (i = 0; i < 4; i += 2) - { + for (i = 0; i < 4; i += 2) { word16 = ((src_addr[i] << 8) & 0xFF00) + (src_addr[i+1] & 0xFF); sum += word16; } - for (i = 0; i < 4; i += 2) - { + for (i = 0; i < 4; i += 2) { word16 = ((dest_addr[i] << 8) & 0xFF00) + (dest_addr[i+1] & 0xFF); sum += word16; } @@ -182,9 +180,7 @@ udp_checksum(const uint8_t *buf, /* keep only the last 16 bits of the 32 bit calculated sum and add the carries */ while (sum >> 16) - { sum = (sum & 0xFFFF) + (sum >> 16); - } /* Take the one's complement of sum */ return ((uint16_t) ~sum); |