00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #include "S_IpAddr.hpp"
00021 
00022 #include "Utils.hpp"
00023 
00024 T_pIpAddr create_IpAddr () {
00025   T_pIpAddr L_ret = NULL ;
00026   ALLOC_VAR(L_ret, T_pIpAddr, sizeof(T_IpAddr));
00027   clear_IpAddr(L_ret);
00028   return (L_ret);
00029 }
00030 
00031 void  clear_IpAddr(T_pIpAddr P_IpAddr) {
00032   if (P_IpAddr != NULL) {
00033     P_IpAddr->m_umode = E_IP_USAGE_MODE_UNKNOWN ;
00034     P_IpAddr->m_buffer_size = DEFAULT_IP_BUFFER_SIZE ;
00035     P_IpAddr->m_open = NULL ;
00036 
00037 
00038     P_IpAddr->m_value = NULL ;
00039     P_IpAddr->m_port = -1 ;
00040     P_IpAddr->m_ip = NULL ;
00041     memset(&(P_IpAddr->m_addr), 0, sizeof(T_SockAddrStorage));
00042 
00043     P_IpAddr->m_open_src = NULL ;
00044     P_IpAddr->m_value_src = NULL ;
00045     P_IpAddr->m_port_src = -1 ;
00046     P_IpAddr->m_ip_src = NULL ;
00047     memset(&(P_IpAddr->m_addr_src), 0, sizeof(T_SockAddrStorage));
00048 
00049   }
00050 }
00051 
00052 void  delete_IpAddr(T_pIpAddr *P_IpAddr) {
00053 
00054   T_pIpAddr L_IpAddr = NULL ;
00055   if (P_IpAddr != NULL) {
00056     L_IpAddr = *P_IpAddr ;
00057 
00058     FREE_TABLE(L_IpAddr->m_open);
00059 
00060     FREE_TABLE(L_IpAddr->m_value);
00061     FREE_TABLE(L_IpAddr->m_ip);
00062 
00063     FREE_TABLE(L_IpAddr->m_open_src);
00064     FREE_TABLE(L_IpAddr->m_value_src);
00065     FREE_TABLE(L_IpAddr->m_ip_src);
00066 
00067 
00068     FREE_VAR(L_IpAddr);
00069     *P_IpAddr = NULL ;
00070 
00071   }
00072   
00073 }
00074 
00075 int  get_domain(T_pIpAddr P_IpAddr) {
00076   int L_ret = -1 ;
00077   if (P_IpAddr != NULL) {
00078     switch ((P_IpAddr->m_addr).SOCKADDR_FAMILY) {
00079     case AF_INET:
00080       L_ret = PF_INET ;
00081       break ;
00082 #ifndef USE_IPV4_ONLY
00083     case AF_INET6:
00084       L_ret = PF_INET6 ;
00085       break ;
00086 #endif
00087     default:
00088       break ;
00089     }
00090   }
00091   return (L_ret);
00092 }