-int send_request(connection_t *c, const char *format, ...)
-{
- va_list args;
- char buffer[MAXBUFSIZE];
- int len, request;
- char *name = "everyone";
- char *hostname = "broadcast";
-cp
- if(c)
- {
- name = c->name;
- hostname = c->hostname;
- }
-
- /* Use vsnprintf instead of vasprintf: faster, no memory
- fragmentation, cleanup is automatic, and there is a limit on the
- input buffer anyway */
-
- va_start(args, format);
- len = vsnprintf(buffer, MAXBUFSIZE, format, args);
- va_end(args);
-
- if(len < 0 || len > MAXBUFSIZE-1)
- {
- syslog(LOG_ERR, _("Output buffer overflow while sending request to %s (%s)"), name, hostname);
- return -1;
- }
-
- if(debug_lvl >= DEBUG_PROTOCOL)
- {
- sscanf(buffer, "%d", &request);
- if(debug_lvl >= DEBUG_META)
- syslog(LOG_DEBUG, _("Sending %s to %s (%s): %s"), request_name[request], name, hostname, buffer);
- else
- syslog(LOG_DEBUG, _("Sending %s to %s (%s)"), request_name[request], name, hostname);
- }
-
- buffer[len++] = '\n';
-cp
- if(c)
- return send_meta(c, buffer, len);
- else
- return broadcast_meta(NULL, buffer, len);
-}
+bool send_request(connection_t *c, const char *format, ...) {
+ va_list args;
+ char request[MAXBUFSIZE];
+ int len;
+
+ /* Use vsnprintf instead of vxasprintf: faster, no memory
+ fragmentation, cleanup is automatic, and there is a limit on the
+ input buffer anyway */
+
+ va_start(args, format);
+ len = vsnprintf(request, MAXBUFSIZE, format, args);
+ va_end(args);
+
+ if(len < 0 || len > MAXBUFSIZE - 1) {
+ logger(LOG_ERR, "Output buffer overflow while sending request to %s (%s)",
+ c->name, c->hostname);
+ return false;
+ }