diff --git a/src/rm_transport.c b/src/rm_transport.c
index 134a1ef06c79ca3666852321d7ac3315af28e5b8..933f4ffb023685d40af6887dfef0c9de53de065d 100644 (file)
--- a/src/rm_transport.c
+++ b/src/rm_transport.c
@@ -164,45 +164,57 @@ Rm_Transport *rmTransportFindRemoteInstType(Rm_Transport *transports, Rm_InstTyp
return (transports);\r
}\r
\r
-int32_t getPktSrcNames(const Rm_Packet *pkt, char *pktSrc, char *serviceSrc)\r
+/* FUNCTION PURPOSE: Returns RM packet source instance\r
+ ***********************************************************************\r
+ * DESCRIPTION: Can return the RM instance name for one of two things:\r
+ * - RM instance from which provided RM packet originated\r
+ * - RM instance from which the service request contained\r
+ * in the provided RM packet originated\r
+ */\r
+int32_t getPktSrcNames(const Rm_Packet *pkt, char *pktSrc, char *serviceSrc, int32_t bufLen)\r
{\r
int32_t retVal = RM_OK;\r
\r
- switch (pkt->pktType) {\r
- case Rm_pktType_RESOURCE_REQUEST:\r
- {\r
- Rm_ResourceRequestPkt *resourceReqPkt = (Rm_ResourceRequestPkt *)pkt->data;\r
+ if (bufLen != RM_NAME_MAX_CHARS) {\r
+ retVal = RM_ERROR_SRC_NAME_BUF_INVALID_SIZE;\r
+ }\r
+ else {\r
+ switch (pkt->pktType) {\r
+ case Rm_pktType_RESOURCE_REQUEST:\r
+ {\r
+ Rm_ResourceRequestPkt *resourceReqPkt = (Rm_ResourceRequestPkt *)pkt->data;\r
\r
- if (pktSrc){\r
- strncpy(pktSrc, resourceReqPkt->pktSrcInstName, RM_NAME_MAX_CHARS);\r
- }\r
+ if (pktSrc){\r
+ strncpy(pktSrc, resourceReqPkt->pktSrcInstName, RM_NAME_MAX_CHARS);\r
+ }\r
+\r
+ if (serviceSrc) {\r
+ strncpy(serviceSrc, resourceReqPkt->serviceSrcInstName, RM_NAME_MAX_CHARS);\r
+ }\r
\r
- if (serviceSrc) {\r
- strncpy(serviceSrc, resourceReqPkt->serviceSrcInstName, RM_NAME_MAX_CHARS);\r
+ break;\r
}\r
+ case Rm_pktType_NAMESERVER_REQUEST:\r
+ {\r
+ Rm_NsRequestPkt *nsRequestPkt = (Rm_NsRequestPkt *)pkt->data;\r
\r
- break;\r
- }\r
- case Rm_pktType_NAMESERVER_REQUEST:\r
- {\r
- Rm_NsRequestPkt *nsRequestPkt = (Rm_NsRequestPkt *)pkt->data;\r
+ if (pktSrc){\r
+ strncpy(pktSrc, nsRequestPkt->pktSrcInstName, RM_NAME_MAX_CHARS);\r
+ }\r
\r
- if (pktSrc){\r
- strncpy(pktSrc, nsRequestPkt->pktSrcInstName, RM_NAME_MAX_CHARS);\r
- }\r
+ if (serviceSrc) {\r
+ strncpy(serviceSrc, nsRequestPkt->serviceSrcInstName, RM_NAME_MAX_CHARS);\r
+ }\r
\r
- if (serviceSrc) {\r
- strncpy(serviceSrc, nsRequestPkt->serviceSrcInstName, RM_NAME_MAX_CHARS);\r
+ break;\r
+ }\r
+ case Rm_pktType_RESOURCE_RESPONSE:\r
+ case Rm_pktType_NAMESERVER_RESPONSE:\r
+ default:\r
+ {\r
+ retVal = RM_ERROR_PKT_AND_SERVICE_SRC_NOT_AVAIL;\r
+ break;\r
}\r
-\r
- break;\r
- }\r
- case Rm_pktType_RESOURCE_RESPONSE:\r
- case Rm_pktType_NAMESERVER_RESPONSE:\r
- default:\r
- {\r
- retVal = RM_ERROR_PKT_AND_SERVICE_NAME_NOT_AVAIL;\r
- break;\r
}\r
}\r
\r
********************* Application visible APIs ***********************\r
**********************************************************************/\r
\r
-/* FUNCTION PURPOSE: Returns a RM packet's service source instance name\r
- ***********************************************************************\r
- * DESCRIPTION: Returns the RM instance name from which the service\r
- * encapsulated in the RM packet originated.\r
- */\r
-int32_t Rm_pktGetServiceSrcName(const Rm_Packet *pkt, char *serviceInstName)\r
-{\r
- return(getPktSrcNames(pkt, NULL, serviceInstName));\r
-}\r
-\r
-/* FUNCTION PURPOSE: Returns a RM packet's source instance name\r
- ***********************************************************************\r
- * DESCRIPTION: Returns the RM instance name from which the RM packet\r
- * originated.\r
- */\r
-int32_t Rm_pktGetPktSrcName(const Rm_Packet *pkt, char *pktInstName)\r
-{\r
- return(getPktSrcNames(pkt, pktInstName, NULL));\r
-}\r
-\r
/* FUNCTION PURPOSE: Registers an app transport with a RM instance\r
***********************************************************************\r
* DESCRIPTION: Returns a transport handle to the application that\r
return (retVal);\r
}\r
\r
+/* FUNCTION PURPOSE: Returns a RM packet's service source instance name\r
+ ***********************************************************************\r
+ * DESCRIPTION: Returns the RM instance name from which the service\r
+ * encapsulated in the RM packet originated.\r
+ */\r
+int32_t Rm_receiveGetPktServiceSrcName(const Rm_Packet *pkt, char *serviceInstName, \r
+ int32_t charBufLen)\r
+{\r
+ return(getPktSrcNames(pkt, NULL, serviceInstName, charBufLen));\r
+}\r
+\r
+/* FUNCTION PURPOSE: Returns a RM packet's source instance name\r
+ ***********************************************************************\r
+ * DESCRIPTION: Returns the RM instance name from which the RM packet\r
+ * originated.\r
+ */\r
+int32_t Rm_receiveGetPktSrcName(const Rm_Packet *pkt, char *pktInstName, \r
+ int32_t charBufLen)\r
+{\r
+ return(getPktSrcNames(pkt, pktInstName, NULL, charBufLen));\r
+}\r
+\r
/* FUNCTION PURPOSE: Receives RM packets\r
***********************************************************************\r
* DESCRIPTION: The application provides RM packets received on the\r