Beispiel #1
0
int
gf_asprintf (char **string_ptr, const char *format, ...)
{
        va_list arg;
        int     rv = 0;

        va_start (arg, format);
        rv = gf_vasprintf (string_ptr, format, arg);
        va_end (arg);

        return rv;
}
Beispiel #2
0
void
runner_argprintf (runner_t *runner, const char *format, ...)
{
        va_list argva;
        char *arg = NULL;
        int ret = 0;

        va_start (argva, format);
        ret = gf_vasprintf (&arg, format, argva);
        va_end (argva);

        if (ret < 0) {
                runner->runerr = errno;
                return;
        }

        runner_insert_arg (runner, arg);
}
Beispiel #3
0
static int
gpprintf (struct gf_printer *gp, const char *format, ...)
{
        va_list arg;
        char *str = NULL;
        int ret = 0;

        va_start (arg, format);
        ret = gf_vasprintf (&str, format, arg);
        va_end (arg);

        if (ret < 0)
                return ret;

        ret = gp->write (gp, str, ret);

        GF_FREE (str);

        return ret;
}
Beispiel #4
0
int
vasprintf (char **result, const char *format, va_list args)
{
    return gf_vasprintf(result, format, args);
}
Beispiel #5
0
int
gf_event (int event, char *fmt, ...)
{
        int      ret                      = 0;
#if (USE_EVENTS)
        int      sock                     = -1;
        char     eventstr[EVENTS_MSG_MAX] = "";
        struct   sockaddr_un server;
        va_list  arguments;
        char     *msg                     = NULL;
        size_t   eventstr_size            = 0;

        if (event < 0 || event >= EVENT_LAST) {
                ret = EVENT_ERROR_INVALID_INPUTS;
                goto out;
        }

        sock = socket(AF_UNIX, SOCK_STREAM, 0);
        if (sock < 0) {
                ret = EVENT_ERROR_SOCKET;
                goto out;
        }
        server.sun_family = AF_UNIX;
        strcpy(server.sun_path, EVENT_PATH);

        if (connect(sock,
                    (struct sockaddr *) &server,
                    sizeof(struct sockaddr_un)) < 0) {
                ret = EVENT_ERROR_CONNECT;
                goto out;
        }

        va_start (arguments, fmt);
        ret = gf_vasprintf (&msg, fmt, arguments);
        va_end (arguments);
        if (ret < 0) {
                ret = EVENT_ERROR_INVALID_INPUTS;
                goto out;
        }

        eventstr_size = snprintf(NULL, 0, "%u %d %s", (unsigned)time(NULL),
                                 event, msg);

        if (eventstr_size + 1 > EVENTS_MSG_MAX) {
                eventstr_size = EVENTS_MSG_MAX - 1;
        }

        snprintf(eventstr, eventstr_size+1, "%u %d %s",
                 (unsigned)time(NULL), event, msg);

        if (sys_write(sock, eventstr, strlen(eventstr)) <= 0) {
                ret = EVENT_ERROR_SEND;
                goto out;
        }

        ret = EVENT_SEND_OK;

 out:
        sys_close(sock);
        GF_FREE(msg);
#endif
        return ret;
}