summaryrefslogtreecommitdiff
path: root/src/common/stream_addr_inet.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/stream_addr_inet.c')
-rw-r--r--src/common/stream_addr_inet.c25
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)){