From 5d826c856b93e93c06d9c8e2c66bebbcf340874f Mon Sep 17 00:00:00 2001 From: bjyb <1091839467@qq.com> Date: Fri, 22 Sep 2023 21:43:20 +0800 Subject: [PATCH] Update iprange.cpp --- src/gausskernel/security/iprange/iprange.cpp | 46 ++++++++++++++++++-- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/src/gausskernel/security/iprange/iprange.cpp b/src/gausskernel/security/iprange/iprange.cpp index ca7b66ef9..c40d1e376 100644 --- a/src/gausskernel/security/iprange/iprange.cpp +++ b/src/gausskernel/security/iprange/iprange.cpp @@ -22,6 +22,11 @@ * * --------------------------------------------------------------------------------------- */ +/*IP address, called Internet protocol address, is a way to address a host on the Internet. +It is a unified address format provided by IP protocol. Common IP addresses can be divided +into IPv4 and IPv6. It assigns a logical address to every network and every host on the Internet +to shield the difference of physical addresses.*/ + #include #include #include @@ -134,6 +139,11 @@ void IPRange::net_ipv6_to_host_order(IPV6 *ip, const struct sockaddr_in6 *sa) co ip->ip_32.d = ntohl(tmp_ip.ip_32.a); } +/*Function name: net_ Ipv4_ To_ Host_ Order +Formal parameters: (IPV6 * ip, const construct in_addr * addr) +Return value: None +Convert IPv4 addresses to host addresses*/ + void IPRange::net_ipv4_to_host_order(IPV6 *ip, const struct in_addr *addr) const { ip->ip_32.a = ntohl(addr->s_addr); @@ -141,6 +151,10 @@ void IPRange::net_ipv4_to_host_order(IPV6 *ip, const struct in_addr *addr) const ip->ip_32.c = ip->ip_32.d = 0; } +/*Function name: str_ To_ IP +Formal parameters: (const char * ip_str, IPV6 * ip) +Return value: bool +Convert string to IP address*/ bool IPRange::str_to_ip(const char* ip_str, IPV6 *ip) { struct in_addr addr; @@ -160,7 +174,10 @@ bool IPRange::str_to_ip(const char* ip_str, IPV6 *ip) } return true; } - +/*Function name: mask_ Range +Formal parameter: (Range * range, unsigned short cidr) +Return value: bool +Calculate Mask*/ bool IPRange::mask_range(Range *range, unsigned short cidr) { if (IPRANGE_IS_IPV4(range->from)) { /* ipv4 */ @@ -211,6 +228,10 @@ bool IPRange::mask_range(Range *range, unsigned short cidr) * parse the ip with mask into range sturst , format is as below: * x.x.x.x|x, ptr is the postion of "|" */ +/*Function name: parse_ Mask +Formal parameters: (const char * range, size_t range_len, const char * ptr, Range * new_range) +Return value: bool +Resolve mask.*/ bool IPRange::parse_mask(const char* range, size_t range_len, const char *ptr, Range *new_range) { if (range_len > 100) { @@ -250,6 +271,10 @@ bool IPRange::parse_mask(const char* range, size_t range_len, const char *ptr, R return true; } +/*Function name: parse_ Single +Formal parameters: (const char * range, size_t range_len, Range * new_range) +Return value: bool +Resolve a single IP.*/ bool IPRange::parse_single(const char* range, size_t range_len, Range *new_range) { if (range_len > 100) { @@ -479,14 +504,20 @@ bool IPRange::add_range(Range *new_range) m_ranges.swap(new_ranges); return true; } - +/*Function name: is_ Range_ Valid +Formal parameter: (const std:: string range) +Return value: bool +Determine if the IP type is empty*/ bool IPRange::is_range_valid(const std::string range) { IPRange tmp; Range new_range; return tmp.parse_range(range.c_str(), range.size(), &new_range); } - +/*Function name: add_ Range +Formal parameter: (Range * new_range) +Return value: void +Increase range IP*/ bool IPRange::add_range(const char* range, size_t range_len) { Range new_range; @@ -496,7 +527,10 @@ bool IPRange::add_range(const char* range, size_t range_len) } return add_range(&new_range); } - +/*Function name: remove_ Range +Formal parameters: (const char * range, size_t range_len) +Return value: bool +Delete Scope IP*/ bool IPRange::remove_range(const char *range, size_t range_len) { Ranges_t new_ranges; @@ -530,6 +564,10 @@ std::string IPRange::ip_to_str(const IPV6 *ip) const return std::string(ip_str); } +/*Function name: binary_ Search +Formal parameter: (const IPV6 ip) +Return value: bool +Binary search IP*/ bool IPRange::binary_search(const IPV6 ip) const { /* do a binary search */