diff options
Diffstat (limited to 'src/common/stream_addr_inet.c')
| -rw-r--r-- | src/common/stream_addr_inet.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/common/stream_addr_inet.c b/src/common/stream_addr_inet.c index a6abb06..13c3c65 100644 --- a/src/common/stream_addr_inet.c +++ b/src/common/stream_addr_inet.c @@ -1865,16 +1865,41 @@ char *layer_addr_ntop_r(const struct streaminfo *pstream, char *out_buf, int out return NULL; } +/* + sappΪ�˲�����, ijЩ���鹹��, ��ʱҵ���������ӡ��־��Ƚ��Ի�, �˴�ʹ��"_PAD"��ʶһ��, ���������ڵ�������. +*/ +const char *__layer_addr_prefix_ntop_pad(const struct streaminfo_private *pstream_pr) +{ + const char *addr_prefix = NULL; + + switch(pstream_pr->stream_public.addr.addrtype){ + case ADDR_TYPE_MPLS: + addr_prefix = "_PAD_MPLS"; + break; + + case ADDR_TYPE_VLAN: + addr_prefix = "_PAD_VLAN"; + break; + } + + return addr_prefix; +} + const char *layer_addr_prefix_ntop(const struct streaminfo *pstream) { int i; const char *addr_type_str = NULL; + const struct streaminfo_private *pstream_pr = (struct streaminfo_private *)pstream; if(NULL == pstream){ return NULL; } + if(pstream_pr->addr_skip_for_layer_cmp){ + return __layer_addr_prefix_ntop_pad(pstream_pr); + } + for(i = __ADDR_TYPE_INIT+1; G_ADDR_CONVERT_HANDLE[i].addr_type_bin!= __ADDR_TYPE_MAX; i++){ if((G_ADDR_CONVERT_HANDLE[i].addr_type_bin == pstream->addr.addrtype) &&(G_ADDR_CONVERT_HANDLE[i].stream_type == pstream->type)){ |
