---
 trunk/services/msg.c |   36 ++++++++++++++++++++----------------
 1 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/trunk/services/msg.c b/trunk/services/msg.c
index cfbed22..dfcf4fa 100644
--- a/trunk/services/msg.c
+++ b/trunk/services/msg.c
@@ -2494,14 +2494,16 @@ static void message_handler_req_exec_msg_queueopen (
                }
        } else {
                /* Test, if flags are same as creation flags*/
-               if ((req_exec_msg_queueopen->create_attrs.creationFlags != 
queue->create_attrs.creationFlags) ||
-                   (memcmp (req_exec_msg_queueopen->create_attrs.size,
-                           queue->create_attrs.size,
-                           sizeof (queue->create_attrs.size)) != 0)) {
-                       /*Return error*/
-                       error = SA_AIS_ERR_EXIST;
+               if (req_exec_msg_queueopen->open_flags & SA_MSG_QUEUE_CREATE) {
+                       if ((req_exec_msg_queueopen->create_attrs.creationFlags 
!= queue->create_attrs.creationFlags) ||
+                           (memcmp (req_exec_msg_queueopen->create_attrs.size,
+                                   queue->create_attrs.size,
+                                   sizeof (queue->create_attrs.size)) != 0)) {
+                               /*Return error*/
+                               error = SA_AIS_ERR_EXIST;
 
-                       goto error_exit;
+                               goto error_exit;
+                       }
                }
        }
 
@@ -2661,14 +2663,16 @@ static void message_handler_req_exec_msg_queueopenasync 
(
                }
        } else {
                /* Test, if flags are same as creation flags*/
-               if ((req_exec_msg_queueopenasync->create_attrs.creationFlags != 
queue->create_attrs.creationFlags) ||
-                   (memcmp (req_exec_msg_queueopenasync->create_attrs.size,
-                           queue->create_attrs.size,
-                           sizeof (queue->create_attrs.size)) != 0)) {
-                       /*Return error*/
-                       error = SA_AIS_ERR_EXIST;
+               if (req_exec_msg_queueopenasync->open_flags & 
SA_MSG_QUEUE_CREATE) {
+                       if 
((req_exec_msg_queueopenasync->create_attrs.creationFlags != 
queue->create_attrs.creationFlags) ||
+                           (memcmp 
(req_exec_msg_queueopenasync->create_attrs.size,
+                                   queue->create_attrs.size,
+                                   sizeof (queue->create_attrs.size)) != 0)) {
+                               /*Return error*/
+                               error = SA_AIS_ERR_EXIST;
 
-                       goto error_exit;
+                               goto error_exit;
+                       }
                }
        }
 
-- 
1.5.5.6

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to