So this patch can/could have been split into two. The is_immnd_up setting moved 
is a separate change done on speculation and not verified to improve anything.
Do you want me to split the patch?

Plus there might an additional issue to look as Anders and I discussed. Adding 
logic to cater for when mds_auth_server_connect() fails and somehow propagate 
that back to the client. This error has not happened yet so I don't know what 
could cause it. How do I proceed with this?

/Hans

> -----Original Message-----
> From: Hans Feldt [mailto:osafde...@gmail.com]
> Sent: den 10 september 2014 11:16
> To: mahesh.va...@oracle.com; Anders Björnerstedt
> Cc: opensaf-devel@lists.sourceforge.net
> Subject: [devel] [PATCH 2 of 2] imma: use mds_auth_server_disconnect [#1050]
> 
>  osaf/libs/agents/saf/imma/imma.h      |  1 +
>  osaf/libs/agents/saf/imma/imma_init.c |  6 ++++++
>  osaf/libs/agents/saf/imma/imma_mds.c  |  7 ++++---
>  3 files changed, 11 insertions(+), 3 deletions(-)
> 
> 
> diff --git a/osaf/libs/agents/saf/imma/imma.h 
> b/osaf/libs/agents/saf/imma/imma.h
> --- a/osaf/libs/agents/saf/imma/imma.h
> +++ b/osaf/libs/agents/saf/imma/imma.h
> @@ -36,6 +36,7 @@
>  #include "imma_mds.h"
> 
>  extern IMMA_CB imma_cb;
> +extern const char *imma_sockname;
> 
>  unsigned int imma_shutdown(NCSMDS_SVC_ID sv_id);
>  unsigned int imma_startup(NCSMDS_SVC_ID sv_id);
> diff --git a/osaf/libs/agents/saf/imma/imma_init.c 
> b/osaf/libs/agents/saf/imma/imma_init.c
> --- a/osaf/libs/agents/saf/imma/imma_init.c
> +++ b/osaf/libs/agents/saf/imma/imma_init.c
> @@ -30,6 +30,7 @@
>  #include "osaf_poll.h"
>  #include "osaf_extended_name.h"
>  #include "saAis.h"
> +#include "mds_dl_api.h"
> 
>  
> /*****************************************************************************
>   global data used by IMMA
> @@ -207,6 +208,11 @@ static uint32_t imma_destroy(NCSMDS_SVC_
>       IMMA_CB *cb = &imma_cb;
>       TRACE_ENTER();
> 
> +     if (mds_auth_server_disconnect(imma_sockname,
> +                     cb->imma_mds_adest, 10000) != NCSCC_RC_SUCCESS) {
> +             LOG_WA("%s: mds_auth_server_disconnect failed", __FUNCTION__);
> +     }
> +
>       /* MDS unregister. */
>       imma_mds_unregister(cb);
> 
> diff --git a/osaf/libs/agents/saf/imma/imma_mds.c 
> b/osaf/libs/agents/saf/imma/imma_mds.c
> --- a/osaf/libs/agents/saf/imma/imma_mds.c
> +++ b/osaf/libs/agents/saf/imma/imma_mds.c
> @@ -29,7 +29,7 @@
>  #include "ncs_util.h"
>  #include "mds_dl_api.h"
> 
> -static const char *sockname = PKGLOCALSTATEDIR "/immnd.sock";
> +const char *imma_sockname = PKGLOCALSTATEDIR "/immnd.sock";
> 
>  static uint32_t imma_mds_enc_flat(IMMA_CB *cb, MDS_CALLBACK_ENC_FLAT_INFO 
> *info);
>  static uint32_t imma_mds_dec_flat(IMMA_CB *cb, MDS_CALLBACK_DEC_FLAT_INFO 
> *info);
> @@ -420,16 +420,17 @@ static uint32_t imma_mds_svc_evt(IMMA_CB
>               case NCSMDS_UP:
>                       TRACE_3("IMMND UP");
>                       
> m_NCS_LOCK(&cb->immnd_sync_lock,NCS_LOCK_WRITE);/*special sync lock*/
> -                     cb->is_immnd_up = true;
>                       cb->immnd_mds_dest = svc_evt->i_dest;
> 
>                       /* (Re-)connect and register our MDS dest with auth 
> server in immnd */
> -                     if (mds_auth_server_connect(sockname,
> +                     if (mds_auth_server_connect(imma_sockname,
>                                       cb->imma_mds_adest, 10000) != 
> NCSCC_RC_SUCCESS) {
>                               /* server UP indication yet this does not 
> work... */
>                               LOG_WA("%s: mds_auth_server_connect failed", 
> __FUNCTION__);
>                       }
> 
> +                     cb->is_immnd_up = true;
> +
>                       if (cb->immnd_sync_awaited == true)
>                               m_NCS_SEL_OBJ_IND(&cb->immnd_sync_sel);
>                       
> m_NCS_UNLOCK(&cb->immnd_sync_lock,NCS_LOCK_WRITE);/*special sync lock*/
> 
> ------------------------------------------------------------------------------
> Want excitement?
> Manually upgrade your production database.
> When you want reliability, choose Perforce
> Perforce version control. Predictably reliable.
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> _______________________________________________
> Opensaf-devel mailing list
> Opensaf-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/opensaf-devel

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to