From eb4f54377e2560a76a05f62a22c961edbce8f4c2 Mon Sep 17 00:00:00 2001
From: Simon Morlat <simon.morlat@linphone.org>
Date: Tue, 31 May 2011 10:52:49 +0200
Subject: [PATCH] fix unused variables

---
 src/stun.c          |   10 +++++-----
 src/tests/rtprecv.c |    6 +++++-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/stun.c b/src/stun.c
index ccac58f..e0d7c80 100644
--- a/src/stun.c
+++ b/src/stun.c
@@ -1993,7 +1993,6 @@ stunSendTest( Socket myFd, StunAddress4 *dest,
 	
    bool_t changePort=FALSE;
    bool_t changeIP=FALSE;
-   bool_t discard=FALSE;
 
    StunMessage req;
    char buf[STUN_MAX_MESSAGE_SIZE];
@@ -2015,9 +2014,10 @@ stunSendTest( Socket myFd, StunAddress4 *dest,
       case 4:
          changeIP=TRUE;
          break;
-      case 5:
+     /* case 5:
          discard=TRUE;
          break;
+			*/
       default:
          ortp_error("stun: Test %i is unkown\n", testNum);
          return ; /* error */
@@ -2162,7 +2162,7 @@ stunNatType( StunAddress4 *dest,
 
    bool_t respTestI=FALSE;
    bool_t isNat=TRUE;
-   StunAddress4 testIchangedAddr;
+   /*StunAddress4 testIchangedAddr;*/
    StunAddress4 testImappedAddr;
    bool_t respTestI2=FALSE; 
    bool_t mappedIpSame = TRUE;
@@ -2345,8 +2345,8 @@ stunNatType( StunAddress4 *dest,
                         if ( !respTestI )
                         {
 									
-                           testIchangedAddr.addr = resp.changedAddress.ipv4.addr;
-                           testIchangedAddr.port = resp.changedAddress.ipv4.port;
+                           /*testIchangedAddr.addr = resp.changedAddress.ipv4.addr;
+                           testIchangedAddr.port = resp.changedAddress.ipv4.port;*/
                            testImappedAddr.addr = resp.mappedAddress.ipv4.addr;
                            testImappedAddr.port = resp.mappedAddress.ipv4.port;
 									
diff --git a/src/tests/rtprecv.c b/src/tests/rtprecv.c
index 1861592..5eee649 100644
--- a/src/tests/rtprecv.c
+++ b/src/tests/rtprecv.c
@@ -163,8 +163,12 @@ int main(int argc, char*argv[])
 			/* this is to avoid to write to disk some silence before the first RTP packet is returned*/	
 			if ((stream_received) && (err>0)) {
 				size_t ret = fwrite(buffer,1,err,outfile);
-				if (sound_fd>0)
+				if (sound_fd>0){
 					ret = write(sound_fd,buffer,err);
+					if (ret==-1){
+						fprintf(stderr,"write to sound card failed (%s)",strerror(errno));
+					}
+				}
 			}
 		}
 		ts+=160;
-- 
1.7.5.4

