diff options
| author | Raghavendra Bhat <raghavendra@redhat.com> | 2012-06-06 17:34:03 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2012-08-01 12:06:11 -0700 | 
| commit | 3bf5cd69c6c8997b089ad9d007c72cfd92c7f44e (patch) | |
| tree | afe8767b63179a9f96d9928dc2a1d57a113a6673 /libglusterfs/src/logging.c | |
| parent | d3a8a50a9da28cd12277ffac25767a790761d32f (diff) | |
event-history: implement gf_log_eh for saving events
Change-Id: I2ddf4e7849bda91bb99423e27082c2bae6800a70
BUG: 795419
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: http://review.gluster.com/3532
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Pranith Kumar Karampuri <pranithk@gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'libglusterfs/src/logging.c')
| -rw-r--r-- | libglusterfs/src/logging.c | 44 | 
1 files changed, 40 insertions, 4 deletions
diff --git a/libglusterfs/src/logging.c b/libglusterfs/src/logging.c index c41d245f191..fc80f91d841 100644 --- a/libglusterfs/src/logging.c +++ b/libglusterfs/src/logging.c @@ -589,13 +589,49 @@ out:  }  int -gf_log_eh (void *data) +_gf_log_eh (const char *function, const char *fmt, ...)  { -        int    ret = -1; +        int          ret   = -1; +        va_list      ap; +        char         *str1 = NULL; +        char         *str2 = NULL; +        char         *msg  = NULL; +        xlator_t     *this = NULL; -        ret = eh_save_history (THIS->history, data); +        this = THIS; -        return ret; +        ret = gf_asprintf (&str1, "[%d] %s: ", +                           ((this->graph)?this->graph->id:0), +                           function); +        if (-1 == ret) { +                goto out; +        } + +        va_start (ap, fmt); + +        ret = vasprintf (&str2, fmt, ap); +        if (-1 == ret) { +                goto out; +        } + +        va_end (ap); + +        msg = GF_MALLOC (strlen (str1) + strlen (str2) + 1, gf_common_mt_char); + +        strcpy (msg, str1); +        strcat (msg, str2); + +        ret = eh_save_history (this->history, msg); + +out: +        if (str1) +                GF_FREE (str1); + +        /* Use FREE instead of GF_FREE since str2 was allocated by vasprintf */ +        if (str2) +                FREE (str2); + +         return ret;  }  int  | 
