Convert two macros into functions.

Convert packet_send_debug and packet_disconnect from macros to
functions.  Some older GCCs (2.7.x, 2.95.x) see to have problems with
variadic macros with only one argument so we convert these two into
functions.  ok djm@
This commit is contained in:
Darren Tucker 2015-02-24 12:30:59 +11:00
parent 2285c30d51
commit dcc8997d11
2 changed files with 29 additions and 4 deletions

View File

@ -319,3 +319,27 @@ packet_read_expect(int expected_type)
if ((r = ssh_packet_read_expect(active_state, expected_type)) != 0)
sshpkt_fatal(active_state, __func__, r);
}
void
packet_disconnect(const char *fmt, ...)
{
char buf[1024];
va_list args;
va_start(args, fmt);
vsnprintf(buf, sizeof(buf), fmt, args);
va_end(args);
ssh_packet_disconnect(active_state, "%s", buf);
}
void
packet_send_debug(const char *fmt, ...)
{
char buf[1024];
va_list args;
va_start(args, fmt);
vsnprintf(buf, sizeof(buf), fmt, args);
va_end(args);
ssh_packet_send_debug(active_state, "%s", buf);
}

View File

@ -102,10 +102,11 @@ void packet_read_expect(int expected_type);
ssh_packet_get_string_ptr(active_state, (length_ptr))
#define packet_get_cstring(length_ptr) \
ssh_packet_get_cstring(active_state, (length_ptr))
#define packet_send_debug(fmt, args...) \
ssh_packet_send_debug(active_state, (fmt), ##args)
#define packet_disconnect(fmt, args...) \
ssh_packet_disconnect(active_state, (fmt), ##args)
void packet_send_debug(const char *, ...)
__attribute__((format(printf, 1, 2)));
void packet_disconnect(const char *, ...)
__attribute__((format(printf, 1, 2)))
__attribute__((noreturn));
#define packet_have_data_to_write() \
ssh_packet_have_data_to_write(active_state)
#define packet_not_very_much_data_to_write() \