+
+func (s *Sbi) checkEndpoint(payload string) *rtmgr.Endpoint {
+ /* Payload contains endpoint in the form of IP<domain name>:Port.
+ Port is data port of sender endpoint.
+ Eps contains the UUID in the form of IP<domain name>:Port.
+ Port is the Application Port(http) */
+
+ xapp.Logger.Debug("Invoked checkEndPoint %v", payload)
+ stringSlice := strings.Split(payload, " ")
+ uuid := stringSlice[0]
+ stringsubsplit := strings.Split(uuid, ":")
+ xapp.Logger.Debug(">>> uuid %v", stringSlice[0])
+ for _, ep := range rtmgr.Eps {
+ if strings.Contains(ep.Uuid, stringsubsplit[0]) == true {
+ endpoint := rtmgr.Eps[ep.Uuid]
+ return endpoint
+ }
+ }
+
+ /* incase the stored Endpoint list is in the form of IP:port*/
+ addr, err := net.LookupIP(stringsubsplit[0])
+ if err == nil {
+ convertedUuid := fmt.Sprintf("%s:%s", addr[0], stringsubsplit[1])
+ xapp.Logger.Info(" IP:Port received is %s", convertedUuid)
+ IP := fmt.Sprintf("%s", addr[0])
+ for _, ep := range rtmgr.Eps {
+ res := strings.Contains(ep.Uuid, IP)
+ if res == true {
+ endpoint := rtmgr.Eps[ep.Uuid]
+ return endpoint
+ }
+ }
+ }
+ return nil
+}
+
+func (s *Sbi) createEndpoint(rmrsrc string) (*string, int) {
+ /* Create a new mapping, this case is assumed for multiple process sending RMR request from a container */
+ srcString := strings.Split(rmrsrc, " ")
+ srcStringSlice := strings.Split(srcString[0], "=")
+ Whid := int(xapp.Rmr.Openwh(srcStringSlice[1]))
+
+ xapp.Logger.Info("Wormhole Id created is %d for EndPoint %s", Whid, srcStringSlice[1])
+ return &srcStringSlice[1], Whid
+}