diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2005-01-11 10:10:34 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2005-01-11 10:10:34 +0000 |
commit | 3c967ce42aee827ff36622c7b70cbd65ef6dd900 (patch) | |
tree | 01d9c9da9f58ec3068dd2e04b4344851ab9e94b4 | |
parent | 95cd931b918a07fcf12e48dce9665f3c90ab4130 (diff) |
Fix memory leaks and make more functions static
-rw-r--r-- | test/l2test.c | 112 | ||||
-rw-r--r-- | test/rctest.c | 94 |
2 files changed, 100 insertions, 106 deletions
diff --git a/test/l2test.c b/test/l2test.c index c36cc3b7..fccea39b 100644 --- a/test/l2test.c +++ b/test/l2test.c @@ -71,36 +71,36 @@ enum { LSENDDUMP }; -unsigned char *buf; +static unsigned char *buf; /* Default mtu */ -int imtu = 672; -int omtu = 0; +static int imtu = 672; +static int omtu = 0; /* Default data size */ -long data_size = 672; +static long data_size = 672; /* Default addr and psm */ -bdaddr_t bdaddr; -unsigned short psm = 10; +static bdaddr_t bdaddr; +static unsigned short psm = 10; /* Default number of frames to send */ -int num_frames = -1; // Infinite +static int num_frames = -1; // Infinite -int master = 0; -int auth = 0; -int encrypt = 0; -int secure = 0; -int socktype = SOCK_SEQPACKET; -int linger = 0; -int reliable = 0; +static int master = 0; +static int auth = 0; +static int encrypt = 0; +static int secure = 0; +static int socktype = SOCK_SEQPACKET; +static int linger = 0; +static int reliable = 0; -float tv2fl(struct timeval tv) +static float tv2fl(struct timeval tv) { return (float)tv.tv_sec + (float)(tv.tv_usec/1000000.0); } -char *ltoh(unsigned long c, char* s) +static char *ltoh(unsigned long c, char* s) { int c1; @@ -124,7 +124,7 @@ char *ltoh(unsigned long c, char* s) return (s); } -char *ctoh(char c, char* s) +static char *ctoh(char c, char* s) { char c1; @@ -136,15 +136,15 @@ char *ctoh(char c, char* s) return (s); } -void hexdump(char *s, unsigned long l) +static void hexdump(char *s, unsigned long l) { char bfr[80]; char *pb; unsigned long i, n = 0; - + if (l == 0) return; - + while (n < l) { pb = bfr; pb = ltoh (n, pb); @@ -165,14 +165,14 @@ void hexdump(char *s, unsigned long l) else *(pb++) = (isprint (*(s + i)) ? *(s + i) : '.'); } - *pb = 0; + *pb = 0; n += 16; s += 16; puts(bfr); } } -int do_connect(char *svr) +static int do_connect(char *svr) { struct sockaddr_l2 rem_addr, loc_addr; struct l2cap_options opts; @@ -186,7 +186,7 @@ int do_connect(char *svr) memset(&loc_addr, 0, sizeof(loc_addr)); loc_addr.l2_family = AF_BLUETOOTH; - loc_addr.l2_bdaddr = bdaddr; + bacpy(&loc_addr.l2_bdaddr, &bdaddr); if (bind(s, (struct sockaddr *) &loc_addr, sizeof(loc_addr)) < 0) { syslog(LOG_ERR, "Can't bind socket. %s(%d)", strerror(errno), errno); exit(1); @@ -232,7 +232,7 @@ int do_connect(char *svr) rem_addr.l2_family = AF_BLUETOOTH; baswap(&rem_addr.l2_bdaddr, strtoba(svr)); rem_addr.l2_psm = htobs(psm); - if (connect(s, (struct sockaddr *)&rem_addr, sizeof(rem_addr)) < 0 ) { + if (connect(s, (struct sockaddr *) &rem_addr, sizeof(rem_addr)) < 0 ) { syslog(LOG_ERR, "Can't connect. %s(%d)", strerror(errno), errno); close(s); return -1; @@ -261,12 +261,12 @@ int do_connect(char *svr) return s; } -void do_listen(void (*handler)(int sk)) +static void do_listen(void (*handler)(int sk)) { struct sockaddr_l2 loc_addr, rem_addr; struct l2cap_options opts; - int s, s1, opt; - bdaddr_t ba; + int s, s1, opt; + char ba[18]; if ((s = socket(PF_BLUETOOTH, socktype, BTPROTO_L2CAP)) < 0) { syslog(LOG_ERR, "Can't create socket. %s(%d)", strerror(errno), errno); @@ -274,7 +274,7 @@ void do_listen(void (*handler)(int sk)) } loc_addr.l2_family = AF_BLUETOOTH; - loc_addr.l2_bdaddr = bdaddr; + bacpy(&loc_addr.l2_bdaddr, &bdaddr); loc_addr.l2_psm = htobs(psm); if (bind(s, (struct sockaddr *) &loc_addr, sizeof(loc_addr)) < 0) { syslog(LOG_ERR, "Can't bind socket. %s(%d)", strerror(errno), errno); @@ -327,7 +327,7 @@ void do_listen(void (*handler)(int sk)) while(1) { opt = sizeof(rem_addr); - if ((s1 = accept(s, (struct sockaddr *)&rem_addr, &opt)) < 0) { + if ((s1 = accept(s, (struct sockaddr *) &rem_addr, &opt)) < 0) { syslog(LOG_ERR,"Accept failed. %s(%d)", strerror(errno), errno); exit(1); } @@ -346,9 +346,9 @@ void do_listen(void (*handler)(int sk)) exit(1); } - baswap(&ba, &rem_addr.l2_bdaddr); + ba2str(&rem_addr.l2_bdaddr, ba); syslog(LOG_INFO, "Connect from %s [imtu %d, omtu %d, flush_to %d]\n", - batostr(&ba), opts.imtu, opts.omtu, opts.flush_to); + ba, opts.imtu, opts.omtu, opts.flush_to); /* Enable SO_LINGER */ if (linger) { @@ -362,12 +362,12 @@ void do_listen(void (*handler)(int sk)) handler(s1); - syslog(LOG_INFO, "Disconnect. %m\n"); + syslog(LOG_INFO, "Disconnect. %m"); exit(0); } } -void dump_mode(int s) +static void dump_mode(int s) { int len; int opt, optl; @@ -375,7 +375,7 @@ void dump_mode(int s) syslog(LOG_INFO, "Receiving ..."); while (1) { fd_set rset; - + FD_ZERO(&rset); FD_SET(s, &rset); @@ -393,7 +393,7 @@ void dump_mode(int s) optl = sizeof(opt); if (getsockopt(s, SOL_SOCKET, SO_ERROR, &opt, &optl ) < 0) { // Clear error syslog(LOG_ERR, "Couldn't getsockopt(SO_ERROR): %s(%d)\n", - strerror(errno), errno); + strerror(errno), errno); return; } continue; @@ -409,7 +409,7 @@ void dump_mode(int s) } } -void recv_mode(int s) +static void recv_mode(int s) { struct timeval tv_beg,tv_end,tv_diff; long total; @@ -440,7 +440,7 @@ void recv_mode(int s) continue; } else { syslog(LOG_ERR, "Read failed. %s(%d)", - strerror(errno), errno); + strerror(errno), errno); } } return; @@ -453,15 +453,15 @@ void recv_mode(int s) seq = sq; } seq++; - + /* Check length */ l = btohs(*(uint16_t *)(buf+4)); if (r != l) { syslog(LOG_INFO, "size missmatch: %d -> %d", r, l); continue; } - - /* Verify data */ + + /* Verify data */ for (i=6; i < r; i++) { if (buf[i] != 0x7f) syslog(LOG_INFO, "data missmatch: byte %d 0x%2.2x", i, buf[i]); @@ -474,11 +474,11 @@ void recv_mode(int s) timersub(&tv_end,&tv_beg,&tv_diff); syslog(LOG_INFO,"%ld bytes in %.2f sec, %.2f kB/s",total, - tv2fl(tv_diff), (float)(total / tv2fl(tv_diff) ) / 1024.0); + tv2fl(tv_diff), (float)(total / tv2fl(tv_diff) ) / 1024.0); } } -void send_mode(int s) +static void send_mode(int s) { uint32_t seq; int i; @@ -493,7 +493,7 @@ void send_mode(int s) *(uint32_t *) buf = htobl(seq); *(uint16_t *)(buf+4) = htobs(data_size); seq++; - + if (send(s, buf, data_size, 0) <= 0) { syslog(LOG_ERR, "Send failed. %s(%d)", strerror(errno), errno); exit(1); @@ -507,7 +507,7 @@ void send_mode(int s) syslog(LOG_INFO, "Done"); } -void senddump_mode(int s) +static void senddump_mode(int s) { uint32_t seq; int i; @@ -522,7 +522,7 @@ void senddump_mode(int s) *(uint32_t *) buf = htobl(seq); *(uint16_t *)(buf+4) = htobs(data_size); seq++; - + if (send(s, buf, data_size, 0) <= 0) { syslog(LOG_ERR, "Send failed. %s(%d)", strerror(errno), errno); exit(1); @@ -530,10 +530,9 @@ void senddump_mode(int s) } dump_mode(s); - } -void reconnect_mode(char *svr) +static void reconnect_mode(char *svr) { while(1) { int s = do_connect(svr); @@ -541,7 +540,7 @@ void reconnect_mode(char *svr) } } -void connect_mode(char *svr) +static void connect_mode(char *svr) { int s; if ((s = do_connect(svr)) < 0) @@ -549,7 +548,7 @@ void connect_mode(char *svr) sleep(99999999); } -void multi_connect_mode(char *svr) +static void multi_connect_mode(char *svr) { while (1) { int i, s; @@ -566,7 +565,7 @@ void multi_connect_mode(char *svr) } } -void usage(void) +static void usage(void) { printf("l2test - L2CAP testing\n" "Usage:\n"); @@ -585,7 +584,7 @@ void usage(void) printf("Options:\n" "\t[-b bytes] [-i device] [-P psm]\n" - "\t[-I imtu] [-O omtu]\n" + "\t[-I imtu] [-O omtu]\n" "\t[-N num] send num frames (default = infinite)\n" "\t[-L seconds] enable SO_LINGER\n" "\t[-R] reliable mode\n" @@ -593,12 +592,9 @@ void usage(void) "\t[-A] request authentication\n" "\t[-E] request encryption\n" "\t[-S] secure connection\n" - "\t[-M] become master\n"); + "\t[-M] become master\n"); } -extern int optind,opterr,optopt; -extern char *optarg; - int main(int argc ,char *argv[]) { int opt, mode, s, need_addr; @@ -613,7 +609,7 @@ int main(int argc ,char *argv[]) case 'r': mode = RECV; break; - + case 's': mode = SEND; need_addr = 1; @@ -733,7 +729,7 @@ int main(int argc ,char *argv[]) openlog("l2test", LOG_PERROR | LOG_PID, LOG_LOCAL0); - switch( mode ){ + switch (mode) { case RECV: do_listen(recv_mode); break; @@ -782,8 +778,8 @@ int main(int argc ,char *argv[]) case LSENDDUMP: do_listen(senddump_mode); break; - } + syslog(LOG_INFO, "Exit"); closelog(); diff --git a/test/rctest.c b/test/rctest.c index 31d2be0f..041e36b3 100644 --- a/test/rctest.c +++ b/test/rctest.c @@ -65,35 +65,35 @@ enum { LSEND }; -unsigned char *buf; +static unsigned char *buf; /* Default data size */ -long data_size = 127; -long num_frames = -1; +static long data_size = 127; +static long num_frames = -1; /* Default addr and channel */ -bdaddr_t bdaddr; -uint8_t channel = 10; +static bdaddr_t bdaddr; +static uint8_t channel = 10; -int master = 0; -int auth = 0; -int encrypt = 0; -int secure = 0; -int socktype = SOCK_STREAM; -int linger = 0; +static int master = 0; +static int auth = 0; +static int encrypt = 0; +static int secure = 0; +static int socktype = SOCK_STREAM; +static int linger = 0; -float tv2fl(struct timeval tv) +static float tv2fl(struct timeval tv) { return (float)tv.tv_sec + (float)(tv.tv_usec/1000000.0); } -int do_connect(char *svr) +static int do_connect(char *svr) { struct sockaddr_rc rem_addr, loc_addr; struct rfcomm_conninfo conn; int s, opt; - if( (s = socket(PF_BLUETOOTH, socktype, BTPROTO_RFCOMM)) < 0 ) { + if ((s = socket(PF_BLUETOOTH, socktype, BTPROTO_RFCOMM)) < 0) { syslog(LOG_ERR, "Can't create socket. %s(%d)", strerror(errno), errno); return -1; } @@ -110,17 +110,17 @@ int do_connect(char *svr) memset(&loc_addr, 0, sizeof(loc_addr)); loc_addr.rc_family = AF_BLUETOOTH; - loc_addr.rc_bdaddr = bdaddr; - if( bind(s, (struct sockaddr *) &loc_addr, sizeof(loc_addr)) < 0 ) { + bacpy(&loc_addr.rc_bdaddr, &bdaddr); + if (bind(s, (struct sockaddr *) &loc_addr, sizeof(loc_addr)) < 0) { syslog(LOG_ERR, "Can't bind socket. %s(%d)", strerror(errno), errno); exit(1); } memset(&rem_addr, 0, sizeof(rem_addr)); rem_addr.rc_family = AF_BLUETOOTH; - baswap(&rem_addr.rc_bdaddr, strtoba(svr)); + str2ba(svr, &rem_addr.rc_bdaddr); rem_addr.rc_channel = channel; - if( connect(s, (struct sockaddr *)&rem_addr, sizeof(rem_addr)) < 0 ){ + if (connect(s, (struct sockaddr *) &rem_addr, sizeof(rem_addr)) < 0) { syslog(LOG_ERR, "Can't connect. %s(%d)", strerror(errno), errno); close(s); return -1; @@ -141,21 +141,21 @@ int do_connect(char *svr) return s; } -void do_listen( void (*handler)(int sk) ) +static void do_listen(void (*handler)(int sk)) { struct sockaddr_rc loc_addr, rem_addr; - int s, s1, opt; - bdaddr_t ba; + int s, s1, opt; + char ba[18]; - if( (s = socket(PF_BLUETOOTH, socktype, BTPROTO_RFCOMM)) < 0 ) { + if ((s = socket(PF_BLUETOOTH, socktype, BTPROTO_RFCOMM)) < 0) { syslog(LOG_ERR, "Can't create socket. %s(%d)", strerror(errno), errno); exit(1); } loc_addr.rc_family = AF_BLUETOOTH; - loc_addr.rc_bdaddr = bdaddr; + bacpy(&loc_addr.rc_bdaddr, &bdaddr); loc_addr.rc_channel = channel; - if( bind(s, (struct sockaddr *) &loc_addr, sizeof(loc_addr)) < 0 ) { + if (bind(s, (struct sockaddr *) &loc_addr, sizeof(loc_addr)) < 0) { syslog(LOG_ERR, "Can't bind socket. %s(%d)", strerror(errno), errno); exit(1); } @@ -176,7 +176,7 @@ void do_listen( void (*handler)(int sk) ) exit(1); } - if( listen(s, 10) ) { + if (listen(s, 10)) { syslog(LOG_ERR,"Can not listen on the socket. %s(%d)", strerror(errno), errno); exit(1); } @@ -185,11 +185,11 @@ void do_listen( void (*handler)(int sk) ) while(1) { opt = sizeof(rem_addr); - if( (s1 = accept(s, (struct sockaddr *)&rem_addr, &opt)) < 0 ) { + if ((s1 = accept(s, (struct sockaddr *) &rem_addr, &opt)) < 0) { syslog(LOG_ERR,"Accept failed. %s(%d)", strerror(errno), errno); exit(1); } - if( fork() ) { + if (fork()) { /* Parent */ close(s1); continue; @@ -198,8 +198,8 @@ void do_listen( void (*handler)(int sk) ) close(s); - baswap(&ba, &rem_addr.rc_bdaddr); - syslog(LOG_INFO, "Connect from %s \n", batostr(&ba)); + ba2str(&rem_addr.rc_bdaddr, ba); + syslog(LOG_INFO, "Connect from %s", ba); /* Enable SO_LINGER */ if (linger) { @@ -213,21 +213,21 @@ void do_listen( void (*handler)(int sk) ) handler(s1); - syslog(LOG_INFO, "Disconnect\n"); + syslog(LOG_INFO, "Disconnect"); exit(0); } } -void dump_mode(int s) +static void dump_mode(int s) { int len; syslog(LOG_INFO, "Receiving ..."); while ((len = read(s, buf, data_size)) > 0) - syslog(LOG_INFO, "Recevied %d bytes\n", len); + syslog(LOG_INFO, "Recevied %d bytes", len); } -void recv_mode(int s) +static void recv_mode(int s) { struct timeval tv_beg,tv_end,tv_diff; long total; @@ -279,11 +279,11 @@ void recv_mode(int s) timersub(&tv_end,&tv_beg,&tv_diff); syslog(LOG_INFO,"%ld bytes in %.2f sec, %.2f kB/s",total, - tv2fl(tv_diff), (float)(total / tv2fl(tv_diff) ) / 1024.0); + tv2fl(tv_diff), (float)(total / tv2fl(tv_diff) ) / 1024.0); } } -void send_mode(int s) +static void send_mode(int s) { uint32_t seq; int i; @@ -312,7 +312,7 @@ void send_mode(int s) syslog(LOG_INFO, "Done"); } -void reconnect_mode(char *svr) +static void reconnect_mode(char *svr) { while(1) { int s = do_connect(svr); @@ -320,11 +320,11 @@ void reconnect_mode(char *svr) } } -void multi_connect_mode(char *svr) +static void multi_connect_mode(char *svr) { while (1) { int i, s; - for (i=0; i<10; i++) { + for (i = 0; i < 10; i++) { if (fork()) continue; /* Child */ @@ -337,7 +337,7 @@ void multi_connect_mode(char *svr) } } -void usage(void) +static void usage(void) { printf("rctest - RFCOMM testing\n" "Usage:\n"); @@ -354,16 +354,13 @@ void usage(void) printf("Options:\n" "\t[-b bytes] [-i device] [-P channel]\n" - "\t[-L seconds] enabled SO_LINGER option\n" - "\t[-N num] number of frames to send\n" + "\t[-L seconds] enabled SO_LINGER option\n" + "\t[-N num] number of frames to send\n" "\t[-A] request authentication\n" "\t[-E] request encryption\n" - "\t[-M] become master\n"); + "\t[-M] become master\n"); } -extern int optind,opterr,optopt; -extern char *optarg; - int main(int argc ,char *argv[]) { int opt, mode, s, need_addr; @@ -374,11 +371,11 @@ int main(int argc ,char *argv[]) bacpy(&bdaddr, BDADDR_ANY); while ((opt=getopt(argc,argv,"rdscuwmnb:i:P:N:MAESL:")) != EOF) { - switch(opt) { + switch (opt) { case 'r': mode = RECV; break; - + case 's': mode = SEND; need_addr = 1; @@ -474,7 +471,7 @@ int main(int argc ,char *argv[]) openlog("rctest", LOG_PERROR | LOG_PID, LOG_LOCAL0); - switch( mode ){ + switch (mode) { case RECV: do_listen(recv_mode); break; @@ -516,6 +513,7 @@ int main(int argc ,char *argv[]) dump_mode(s); break; } + syslog(LOG_INFO, "Exit"); closelog(); |