MT#55283 add return value to cw_printf

Change-Id: Ibd4b6b18adb86919d99c258e526d79d4ab5d8ce1
pull/1907/head
Richard Fuchs 3 months ago
parent a66c9e6e13
commit f19737a53f

@ -1265,11 +1265,12 @@ static void cli_incoming(struct streambuf_stream *s) {
ilogs(control, LOG_INFO, "New cli connection from %s", s->addr);
}
static void cli_streambuf_printf(struct cli_writer *cw, const char *fmt, ...) {
static size_t cli_streambuf_printf(struct cli_writer *cw, const char *fmt, ...) {
va_list va;
va_start(va, fmt);
streambuf_vprintf(cw->ptr, fmt, va);
size_t ret = streambuf_vprintf(cw->ptr, fmt, va);
va_end(va);
return ret;
}
static void cli_stream_readable(struct streambuf_stream *s) {
@ -2059,12 +2060,15 @@ static void cli_incoming_media_evict_players(str *instr, struct cli_writer *cw,
}
#endif
static void ng_printf(struct cli_writer *cw, const char *fmt, ...) {
static size_t ng_printf(struct cli_writer *cw, const char *fmt, ...) {
GString *s = cw->ptr;
size_t ret = s->len;
va_list va;
va_start(va, fmt);
g_string_append_vprintf(s, fmt, va);
va_end(va);
ret = s->len - ret;
return ret;
}
const char *cli_ng(ng_command_ctx_t *ctx) {

@ -424,13 +424,15 @@ static const char *websocket_http_metrics(struct websocket_message *wm) {
// adds printf string to output buffer without triggering response
static void websocket_queue_printf(struct cli_writer *cw, const char *fmt, ...) {
static size_t websocket_queue_printf(struct cli_writer *cw, const char *fmt, ...) {
va_list va;
va_start(va, fmt);
char *s = g_strdup_vprintf(fmt, va);
size_t ret = strlen(s);
va_end(va);
websocket_queue_raw(cw->ptr, s, strlen(s));
websocket_queue_raw(cw->ptr, s, ret);
g_free(s);
return ret;
}

@ -16,7 +16,7 @@ struct cli_writer;
struct call_monologue;
struct cli_writer {
void (*cw_printf)(struct cli_writer *, const char *, ...) __attribute__ ((format (printf, 2, 3)));
size_t (*cw_printf)(struct cli_writer *, const char *, ...) __attribute__ ((format (printf, 2, 3)));
void *ptr;
call_t *call;
struct call_monologue *ml;

@ -182,22 +182,27 @@ size_t streambuf_bufsize(struct streambuf *b) {
}
void streambuf_vprintf(struct streambuf *b, const char *f, va_list va) {
size_t streambuf_vprintf(struct streambuf *b, const char *f, va_list va) {
GString *gs;
gs = g_string_new("");
g_string_vprintf(gs, f, va);
size_t ret = gs->len;
streambuf_write(b, gs->str, gs->len);
g_string_free(gs, TRUE);
return ret;
}
void streambuf_printf(struct streambuf *b, const char *f, ...) {
size_t streambuf_printf(struct streambuf *b, const char *f, ...) {
va_list va;
va_start(va, f);
streambuf_vprintf(b, f, va);
size_t ret = streambuf_vprintf(b, f, va);
va_end(va);
return ret;
}
void streambuf_write(struct streambuf *b, const char *s, unsigned int len) {

@ -42,8 +42,8 @@ int streambuf_writeable(struct streambuf *);
int streambuf_readable(struct streambuf *);
char *streambuf_getline(struct streambuf *);
size_t streambuf_bufsize(struct streambuf *);
void streambuf_printf(struct streambuf *, const char *, ...) __attribute__ ((format (printf, 2, 3)));
void streambuf_vprintf(struct streambuf *, const char *, va_list);
size_t streambuf_printf(struct streambuf *, const char *, ...) __attribute__ ((format (printf, 2, 3)));
size_t streambuf_vprintf(struct streambuf *, const char *, va_list);
void streambuf_write(struct streambuf *, const char *, unsigned int);
INLINE void streambuf_write_str(struct streambuf *b, str *s) {
streambuf_write(b, s->s, s->len);

Loading…
Cancel
Save