Angus, I would rather then switch see statically defined and initialized array. It's shorter, nicer and easier to maintain.
Honza Angus Salkeld napsal(a): > This helps to quickly identify what service the application > is connected to. > > The object will now look like: > runtime.connections.corosync-objctl:CONFDB:19654:13.service_id=11 > runtime.connections.corosync-objctl:CONFDB:19654:13.client_pid=19654 > etc... > > This also makes it clearer to receivers of the dbus/snmp events > what is going on. > > Signed-off-by: Angus Salkeld <[email protected]> > --- > exec/coroipcs.c | 106 > +++++++++++++++++++++++++++++++++++++++++++++++++++---- > 1 files changed, 99 insertions(+), 7 deletions(-) > > diff --git a/exec/coroipcs.c b/exec/coroipcs.c > index b64c5a9..bfb638b 100644 > --- a/exec/coroipcs.c > +++ b/exec/coroipcs.c > @@ -70,6 +70,7 @@ > #include <sys/shm.h> > > #include <corosync/corotypes.h> > +#include <corosync/corodefs.h> > #include <corosync/list.h> > > #include <corosync/coroipc_types.h> > @@ -1541,20 +1542,111 @@ static char * pid_to_name (pid_t pid, char > *out_name, size_t name_len) > return out_name; > } > > +static const char * short_service_name_get(uint32_t service_id, char *buf) > +{ > + const char * name; > + switch (service_id) { > + case EVS_SERVICE: > + name = "EVS"; > + break; > + case CLM_SERVICE: > + name = "CLM"; > + break; > + case AMF_SERVICE: > + name = "AMF"; > + break; > + case CKPT_SERVICE: > + name = "CKPT"; > + break; > + case EVT_SERVICE: > + name = "EVT"; > + break; > + case LCK_SERVICE: > + name = "LCK"; > + break; > + case MSG_SERVICE: > + name = "MSG"; > + break; > + case CFG_SERVICE: > + name = "CFG"; > + break; > + case CPG_SERVICE: > + name = "CPG"; > + break; > + case CMAN_SERVICE: > + name = "CMAN"; > + break; > + case PCMK_SERVICE: > + name = "PCMK"; > + break; > + case CONFDB_SERVICE: > + name = "CONFDB"; > + break; > + case QUORUM_SERVICE: > + name = "QUORUM"; > + break; > + case PLOAD_SERVICE: > + name = "PLOAD"; > + break; > + case TMR_SERVICE: > + name = "TMR"; > + break; > + case VOTEQUORUM_SERVICE: > + name = "VOTEQUORUM"; > + break; > + case NTF_SERVICE: > + name = "NTF"; > + break; > + case AMF_V2_SERVICE: > + name = "AMF"; > + break; > + case TST_SV1_SERVICE: > + name = "TST"; > + break; > + case TST_SV2_SERVICE: > + name = "TST"; > + break; > + case MON_SERVICE: > + name = "MON"; > + break; > + case WD_SERVICE: > + name = "WD"; > + break; > + default: > + sprintf(buf, "%d", service_id); > + name = buf; > + break; > + } > + return name; > +} > + > + > static void coroipcs_init_conn_stats ( > struct conn_info *conn) > { > char conn_name[CS_MAX_NAME_LENGTH]; > char proc_name[CS_MAX_NAME_LENGTH]; > + char int_str[4]; > > if (conn->client_pid > 0) { > - if (pid_to_name (conn->client_pid, proc_name, > sizeof(proc_name))) > - snprintf (conn_name, sizeof(conn_name), "%s:%d:%d", > proc_name, conn->client_pid, conn->fd); > - else > - snprintf (conn_name, sizeof(conn_name), "%d:%d", > conn->client_pid, conn->fd); > - } else > - snprintf (conn_name, sizeof(conn_name), "%d", conn->fd); > - > + if (pid_to_name (conn->client_pid, proc_name, > sizeof(proc_name))) { > + snprintf (conn_name, sizeof(conn_name), > + "%s:%s:%d:%d", proc_name, > + short_service_name_get(conn->service, int_str), > + conn->client_pid, conn->fd); > + } else { > + snprintf (conn_name, sizeof(conn_name), > + "proc:%s:%d:%d", > + short_service_name_get(conn->service, int_str), > + conn->client_pid, > + conn->fd); > + } > + } else { > + snprintf (conn_name, sizeof(conn_name), > + "proc:%s:pid:%d", > + short_service_name_get(conn->service, int_str), > + conn->fd); > + } > conn->stats_handle = api->stats_create_connection (conn_name, > conn->client_pid, conn->fd); > api->stats_update_value (conn->stats_handle, "service_id", > &conn->service, sizeof(conn->service)); _______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
