Changeset 1913


Ignore:
Timestamp:
Apr 9, 2008 9:38:12 AM (17 years ago)
Author:
bennylp
Message:

More ticket #485: huge changeset to support TURN TCP. Please see ticket #485 for the details

Location:
pjproject/trunk
Files:
3 added
2 deleted
20 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/build.symbian/pjnath.mmp

    r1640 r1913  
    3939SOURCE  stun_session.c 
    4040SOURCE  stun_transaction.c 
     41SOURCE  turn_session.c 
     42SOURCE  turn_sock.c 
    4143 
    4244// 
  • pjproject/trunk/pjnath/build/Makefile

    r1882 r1913  
    3333                errno.o ice_session.o ice_strans.o nat_detect.o stun_auth.o \ 
    3434                stun_msg.o stun_msg_dump.o stun_session.o stun_transaction.o \ 
    35                 turn_session.o turn_udp.o 
     35                turn_session.o turn_sock.o 
    3636export PJNATH_CFLAGS += $(_CFLAGS) 
    3737 
  • pjproject/trunk/pjnath/build/pjnath.dsp

    r1864 r1913  
    130130# Begin Source File 
    131131 
    132 SOURCE=..\src\pjnath\turn_udp.c 
     132SOURCE=..\src\pjnath\turn_sock.c 
    133133# End Source File 
    134134# End Group 
     
    186186# Begin Source File 
    187187 
    188 SOURCE=..\include\pjnath\turn_udp.h 
     188SOURCE=..\include\pjnath\turn_sock.h 
    189189# End Source File 
    190190# Begin Source File 
  • pjproject/trunk/pjnath/build/pjnath.vcproj

    r1867 r1913  
    325325                        </File> 
    326326                        <File 
    327                                 RelativePath="..\src\pjnath\turn_udp.c" 
     327                                RelativePath="..\src\pjnath\turn_sock.c" 
    328328                                > 
    329329                        </File> 
     
    386386                        </File> 
    387387                        <File 
    388                                 RelativePath="..\include\pjnath\turn_udp.h" 
     388                                RelativePath="..\include\pjnath\turn_sock.h" 
    389389                                > 
    390390                        </File> 
  • pjproject/trunk/pjnath/build/pjturn_srv.dsp

    r1852 r1913  
    9696# Begin Source File 
    9797 
     98SOURCE="..\src\pjturn-srv\listener_tcp.c" 
     99# End Source File 
     100# Begin Source File 
     101 
    98102SOURCE="..\src\pjturn-srv\listener_udp.c" 
    99103# End Source File 
  • pjproject/trunk/pjnath/build/wince-evc4/pjnath_wince.vcp

    r1495 r1913  
    586586        "..\..\..\pjlib\include\pj\assert.h"\ 
    587587        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
    588         "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
    589         "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
    590         "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
    591         "..\..\..\pjlib\include\pj\compat\errno.h"\ 
    592         "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
    593         "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
    594         "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
    595         "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
    596         "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
    597         "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
    598         "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
    599         "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
    600         "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
    601         "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
    602         "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
    603         "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
    604         "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     588        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     589        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     590        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     591        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     592        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     593        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     594        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     595        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     596        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     597        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     598        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     599        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     600        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     601        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     602        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     603        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     604        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     605        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     606        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     607        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     608        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     609        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     610        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
    605611        "..\..\..\pjlib\include\pj\compat\string.h"\ 
    606612        "..\..\..\pjlib\include\pj\config.h"\ 
     
    12551261        "..\..\..\pjlib\include\pj\assert.h"\ 
    12561262        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
    1257         "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
    1258         "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
    1259         "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
    1260         "..\..\..\pjlib\include\pj\compat\errno.h"\ 
    1261         "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
    1262         "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
    1263         "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
    1264         "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
    1265         "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
    1266         "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
    1267         "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
    1268         "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
    1269         "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
    1270         "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
    1271         "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
    1272         "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
    1273         "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     1263        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     1264        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     1265        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     1266        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     1267        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     1268        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     1269        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     1270        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     1271        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     1272        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     1273        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     1274        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     1275        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     1276        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     1277        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     1278        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     1279        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     1280        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     1281        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     1282        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     1283        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     1284        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     1285        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
    12741286        "..\..\..\pjlib\include\pj\compat\string.h"\ 
    12751287        "..\..\..\pjlib\include\pj\config.h"\ 
     
    19781990        "..\..\..\pjlib\include\pj\assert.h"\ 
    19791991        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
    1980         "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
    1981         "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
    1982         "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
    1983         "..\..\..\pjlib\include\pj\compat\errno.h"\ 
    1984         "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
    1985         "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
    1986         "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
    1987         "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
    1988         "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
    1989         "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
    1990         "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
    1991         "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
    1992         "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
    1993         "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
    1994         "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
    1995         "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
    1996         "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     1992        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     1993        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     1994        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     1995        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     1996        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     1997        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     1998        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     1999        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     2000        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     2001        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     2002        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     2003        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     2004        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     2005        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     2006        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     2007        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     2008        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     2009        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     2010        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     2011        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     2012        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     2013        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     2014        "..\..\..\pjlib\include\pj\compat\socket.h"\ 
     2015        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
    19972016        "..\..\..\pjlib\include\pj\compat\string.h"\ 
    19982017        "..\..\..\pjlib\include\pj\config.h"\ 
     
    34493468DEP_CPP_STUN_=\ 
    34503469        "..\..\..\pjlib-util\include\pjlib-util\hmac_sha1.h"\ 
     3470        "..\..\..\pjlib-util\include\pjlib-util\md5.h"\ 
    34513471        "..\..\..\pjlib-util\include\pjlib-util\sha1.h"\ 
    34523472        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     
    34543474        "..\..\..\pjlib\include\pj\assert.h"\ 
    34553475        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
    3456         "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
    3457         "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
    3458         "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
    3459         "..\..\..\pjlib\include\pj\compat\errno.h"\ 
    3460         "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
    3461         "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
    3462         "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
    3463         "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
    3464         "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
    3465         "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
    3466         "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
    3467         "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
    3468         "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
    3469         "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
    3470         "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
    3471         "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
    3472         "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     3476        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     3477        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     3478        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     3479        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     3480        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     3481        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     3482        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     3483        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     3484        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     3485        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     3486        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     3487        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     3488        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     3489        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     3490        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     3491        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     3492        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     3493        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     3494        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     3495        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     3496        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     3497        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     3498        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
    34733499        "..\..\..\pjlib\include\pj\compat\string.h"\ 
    34743500        "..\..\..\pjlib\include\pj\config.h"\ 
     
    41394165        "..\..\..\pjlib-util\include\pjlib-util\crc32.h"\ 
    41404166        "..\..\..\pjlib-util\include\pjlib-util\hmac_sha1.h"\ 
    4141         "..\..\..\pjlib-util\include\pjlib-util\md5.h"\ 
     4167        "..\..\..\pjlib-util\include\pjlib-util\sha1.h"\ 
    41424168        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
    41434169        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     
    41454171        "..\..\..\pjlib\include\pj\assert.h"\ 
    41464172        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
    4147         "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
    4148         "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
    4149         "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
    4150         "..\..\..\pjlib\include\pj\compat\errno.h"\ 
    4151         "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
    4152         "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
    4153         "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
    4154         "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
    4155         "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
    4156         "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
    4157         "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
    4158         "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
    4159         "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
    4160         "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
    4161         "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
    4162         "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
    4163         "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     4173        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     4174        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     4175        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     4176        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     4177        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     4178        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     4179        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     4180        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     4181        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     4182        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     4183        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     4184        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     4185        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     4186        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     4187        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     4188        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     4189        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     4190        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     4191        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     4192        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     4193        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     4194        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     4195        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
    41644196        "..\..\..\pjlib\include\pj\compat\string.h"\ 
    41654197        "..\..\..\pjlib\include\pj\config.h"\ 
     
    48204852        "..\..\..\pjlib\include\pj\assert.h"\ 
    48214853        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
    4822         "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
    4823         "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
    4824         "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
    4825         "..\..\..\pjlib\include\pj\compat\errno.h"\ 
    4826         "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
    4827         "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
    4828         "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
    4829         "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
    4830         "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
    4831         "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
    4832         "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
    4833         "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
    4834         "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
    4835         "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
    4836         "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
    4837         "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
    4838         "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
    4839         "..\..\..\pjlib\include\pj\compat\string.h"\ 
    4840         "..\..\..\pjlib\include\pj\config.h"\ 
    4841         "..\..\..\pjlib\include\pj\config_site.h"\ 
    4842         "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
    4843         "..\..\..\pjlib\include\pj\ctype.h"\ 
    4844         "..\..\..\pjlib\include\pj\errno.h"\ 
    4845         "..\..\..\pjlib\include\pj\except.h"\ 
    4846         "..\..\..\pjlib\include\pj\fifobuf.h"\ 
    4847         "..\..\..\pjlib\include\pj\file_access.h"\ 
    4848         "..\..\..\pjlib\include\pj\file_io.h"\ 
    4849         "..\..\..\pjlib\include\pj\guid.h"\ 
    4850         "..\..\..\pjlib\include\pj\hash.h"\ 
    4851         "..\..\..\pjlib\include\pj\ioqueue.h"\ 
    4852         "..\..\..\pjlib\include\pj\ip_helper.h"\ 
    4853         "..\..\..\pjlib\include\pj\list.h"\ 
    4854         "..\..\..\pjlib\include\pj\list_i.h"\ 
    4855         "..\..\..\pjlib\include\pj\lock.h"\ 
    4856         "..\..\..\pjlib\include\pj\log.h"\ 
    4857         "..\..\..\pjlib\include\pj\os.h"\ 
    4858         "..\..\..\pjlib\include\pj\pool.h"\ 
    4859         "..\..\..\pjlib\include\pj\pool_alt.h"\ 
    4860         "..\..\..\pjlib\include\pj\pool_buf.h"\ 
    4861         "..\..\..\pjlib\include\pj\pool_i.h"\ 
    4862         "..\..\..\pjlib\include\pj\rand.h"\ 
    4863         "..\..\..\pjlib\include\pj\rbtree.h"\ 
    4864         "..\..\..\pjlib\include\pj\sock.h"\ 
    4865         "..\..\..\pjlib\include\pj\sock_select.h"\ 
    4866         "..\..\..\pjlib\include\pj\string.h"\ 
    4867         "..\..\..\pjlib\include\pj\string_i.h"\ 
    4868         "..\..\..\pjlib\include\pj\timer.h"\ 
    4869         "..\..\..\pjlib\include\pj\types.h"\ 
    4870         "..\..\..\pjlib\include\pj\unicode.h"\ 
    4871         "..\..\..\pjlib\include\pjlib.h"\ 
    4872         "..\..\include\pjnath\config.h"\ 
    4873         "..\..\include\pjnath\errno.h"\ 
    4874         "..\..\include\pjnath\stun_msg.h"\ 
    4875         "..\..\include\pjnath\types.h"\ 
    4876          
    4877  
    4878 !ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4) Debug" 
    4879  
    4880 DEP_CPP_STUN_MS=\ 
    4881         "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
    4882         "..\..\..\pjlib\include\pj\array.h"\ 
    4883         "..\..\..\pjlib\include\pj\assert.h"\ 
    4884         "..\..\..\pjlib\include\pj\compat\assert.h"\ 
    48854854        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
    48864855        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     
    49454914         
    49464915 
     4916!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4) Debug" 
     4917 
     4918DEP_CPP_STUN_MS=\ 
     4919        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     4920        "..\..\..\pjlib\include\pj\array.h"\ 
     4921        "..\..\..\pjlib\include\pj\assert.h"\ 
     4922        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     4923        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     4924        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     4925        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     4926        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     4927        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     4928        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     4929        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     4930        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     4931        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     4932        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     4933        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     4934        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     4935        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     4936        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     4937        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     4938        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     4939        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     4940        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     4941        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     4942        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     4943        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     4944        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     4945        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     4946        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     4947        "..\..\..\pjlib\include\pj\config.h"\ 
     4948        "..\..\..\pjlib\include\pj\config_site.h"\ 
     4949        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     4950        "..\..\..\pjlib\include\pj\ctype.h"\ 
     4951        "..\..\..\pjlib\include\pj\errno.h"\ 
     4952        "..\..\..\pjlib\include\pj\except.h"\ 
     4953        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     4954        "..\..\..\pjlib\include\pj\file_access.h"\ 
     4955        "..\..\..\pjlib\include\pj\file_io.h"\ 
     4956        "..\..\..\pjlib\include\pj\guid.h"\ 
     4957        "..\..\..\pjlib\include\pj\hash.h"\ 
     4958        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     4959        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     4960        "..\..\..\pjlib\include\pj\list.h"\ 
     4961        "..\..\..\pjlib\include\pj\list_i.h"\ 
     4962        "..\..\..\pjlib\include\pj\lock.h"\ 
     4963        "..\..\..\pjlib\include\pj\log.h"\ 
     4964        "..\..\..\pjlib\include\pj\os.h"\ 
     4965        "..\..\..\pjlib\include\pj\pool.h"\ 
     4966        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     4967        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     4968        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     4969        "..\..\..\pjlib\include\pj\rand.h"\ 
     4970        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     4971        "..\..\..\pjlib\include\pj\sock.h"\ 
     4972        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     4973        "..\..\..\pjlib\include\pj\string.h"\ 
     4974        "..\..\..\pjlib\include\pj\string_i.h"\ 
     4975        "..\..\..\pjlib\include\pj\timer.h"\ 
     4976        "..\..\..\pjlib\include\pj\types.h"\ 
     4977        "..\..\..\pjlib\include\pj\unicode.h"\ 
     4978        "..\..\..\pjlib\include\pjlib.h"\ 
     4979        "..\..\include\pjnath\config.h"\ 
     4980        "..\..\include\pjnath\errno.h"\ 
     4981        "..\..\include\pjnath\stun_msg.h"\ 
     4982        "..\..\include\pjnath\types.h"\ 
     4983         
     4984 
    49474985!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4T) Release" 
    49484986 
     
    54815519        "..\..\..\pjlib\include\pj\assert.h"\ 
    54825520        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
    5483         "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
    5484         "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
    5485         "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
    5486         "..\..\..\pjlib\include\pj\compat\errno.h"\ 
    5487         "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
    5488         "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
    5489         "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
    5490         "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
    5491         "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
    5492         "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
    5493         "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
    5494         "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
    5495         "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
    5496         "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
    5497         "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
    5498         "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
    5499         "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
    5500         "..\..\..\pjlib\include\pj\compat\string.h"\ 
    5501         "..\..\..\pjlib\include\pj\config.h"\ 
    5502         "..\..\..\pjlib\include\pj\config_site.h"\ 
    5503         "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
    5504         "..\..\..\pjlib\include\pj\ctype.h"\ 
    5505         "..\..\..\pjlib\include\pj\errno.h"\ 
    5506         "..\..\..\pjlib\include\pj\except.h"\ 
    5507         "..\..\..\pjlib\include\pj\fifobuf.h"\ 
    5508         "..\..\..\pjlib\include\pj\file_access.h"\ 
    5509         "..\..\..\pjlib\include\pj\file_io.h"\ 
    5510         "..\..\..\pjlib\include\pj\guid.h"\ 
    5511         "..\..\..\pjlib\include\pj\hash.h"\ 
    5512         "..\..\..\pjlib\include\pj\ioqueue.h"\ 
    5513         "..\..\..\pjlib\include\pj\ip_helper.h"\ 
    5514         "..\..\..\pjlib\include\pj\list.h"\ 
    5515         "..\..\..\pjlib\include\pj\list_i.h"\ 
    5516         "..\..\..\pjlib\include\pj\lock.h"\ 
    5517         "..\..\..\pjlib\include\pj\log.h"\ 
    5518         "..\..\..\pjlib\include\pj\os.h"\ 
    5519         "..\..\..\pjlib\include\pj\pool.h"\ 
    5520         "..\..\..\pjlib\include\pj\pool_alt.h"\ 
    5521         "..\..\..\pjlib\include\pj\pool_buf.h"\ 
    5522         "..\..\..\pjlib\include\pj\pool_i.h"\ 
    5523         "..\..\..\pjlib\include\pj\rand.h"\ 
    5524         "..\..\..\pjlib\include\pj\rbtree.h"\ 
    5525         "..\..\..\pjlib\include\pj\sock.h"\ 
    5526         "..\..\..\pjlib\include\pj\sock_select.h"\ 
    5527         "..\..\..\pjlib\include\pj\string.h"\ 
    5528         "..\..\..\pjlib\include\pj\string_i.h"\ 
    5529         "..\..\..\pjlib\include\pj\timer.h"\ 
    5530         "..\..\..\pjlib\include\pj\types.h"\ 
    5531         "..\..\..\pjlib\include\pj\unicode.h"\ 
    5532         "..\..\..\pjlib\include\pjlib.h"\ 
    5533         "..\..\include\pjnath\config.h"\ 
     5521        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     5522        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     5523        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     5524        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     5525        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     5526        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     5527        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     5528        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     5529        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     5530        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     5531        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     5532        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     5533        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     5534        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     5535        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     5536        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     5537        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     5538        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     5539        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     5540        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     5541        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     5542        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     5543        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     5544        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     5545        "..\..\..\pjlib\include\pj\config.h"\ 
     5546        "..\..\..\pjlib\include\pj\config_site.h"\ 
     5547        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     5548        "..\..\..\pjlib\include\pj\ctype.h"\ 
     5549        "..\..\..\pjlib\include\pj\errno.h"\ 
     5550        "..\..\..\pjlib\include\pj\except.h"\ 
     5551        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     5552        "..\..\..\pjlib\include\pj\file_access.h"\ 
     5553        "..\..\..\pjlib\include\pj\file_io.h"\ 
     5554        "..\..\..\pjlib\include\pj\guid.h"\ 
     5555        "..\..\..\pjlib\include\pj\hash.h"\ 
     5556        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     5557        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     5558        "..\..\..\pjlib\include\pj\list.h"\ 
     5559        "..\..\..\pjlib\include\pj\list_i.h"\ 
     5560        "..\..\..\pjlib\include\pj\lock.h"\ 
     5561        "..\..\..\pjlib\include\pj\log.h"\ 
     5562        "..\..\..\pjlib\include\pj\os.h"\ 
     5563        "..\..\..\pjlib\include\pj\pool.h"\ 
     5564        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     5565        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     5566        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     5567        "..\..\..\pjlib\include\pj\rand.h"\ 
     5568        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     5569        "..\..\..\pjlib\include\pj\sock.h"\ 
     5570        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     5571        "..\..\..\pjlib\include\pj\string.h"\ 
     5572        "..\..\..\pjlib\include\pj\string_i.h"\ 
     5573        "..\..\..\pjlib\include\pj\timer.h"\ 
     5574        "..\..\..\pjlib\include\pj\types.h"\ 
     5575        "..\..\..\pjlib\include\pj\unicode.h"\ 
     5576        "..\..\..\pjlib\include\pjlib.h"\ 
     5577        "..\..\include\pjnath\config.h"\ 
     5578        "..\..\include\pjnath\errno.h"\ 
    55345579        "..\..\include\pjnath\stun_auth.h"\ 
    55355580        "..\..\include\pjnath\stun_config.h"\ 
     
    61566201        "..\..\..\pjlib\include\pj\assert.h"\ 
    61576202        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
    6158         "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
    6159         "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
    6160         "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
    6161         "..\..\..\pjlib\include\pj\compat\errno.h"\ 
    6162         "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
    6163         "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
    6164         "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
    6165         "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
    6166         "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
    6167         "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
    6168         "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
    6169         "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
    6170         "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
    6171         "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
    6172         "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
    6173         "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
    6174         "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
    6175         "..\..\..\pjlib\include\pj\compat\string.h"\ 
    6176         "..\..\..\pjlib\include\pj\config.h"\ 
    6177         "..\..\..\pjlib\include\pj\config_site.h"\ 
    6178         "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
    6179         "..\..\..\pjlib\include\pj\ctype.h"\ 
    6180         "..\..\..\pjlib\include\pj\errno.h"\ 
    6181         "..\..\..\pjlib\include\pj\except.h"\ 
    6182         "..\..\..\pjlib\include\pj\fifobuf.h"\ 
    6183         "..\..\..\pjlib\include\pj\file_access.h"\ 
    6184         "..\..\..\pjlib\include\pj\file_io.h"\ 
    6185         "..\..\..\pjlib\include\pj\guid.h"\ 
    6186         "..\..\..\pjlib\include\pj\hash.h"\ 
    6187         "..\..\..\pjlib\include\pj\ioqueue.h"\ 
    6188         "..\..\..\pjlib\include\pj\ip_helper.h"\ 
    6189         "..\..\..\pjlib\include\pj\list.h"\ 
    6190         "..\..\..\pjlib\include\pj\list_i.h"\ 
    6191         "..\..\..\pjlib\include\pj\lock.h"\ 
    6192         "..\..\..\pjlib\include\pj\log.h"\ 
    6193         "..\..\..\pjlib\include\pj\os.h"\ 
    6194         "..\..\..\pjlib\include\pj\pool.h"\ 
    6195         "..\..\..\pjlib\include\pj\pool_alt.h"\ 
    6196         "..\..\..\pjlib\include\pj\pool_buf.h"\ 
    6197         "..\..\..\pjlib\include\pj\pool_i.h"\ 
    6198         "..\..\..\pjlib\include\pj\rand.h"\ 
    6199         "..\..\..\pjlib\include\pj\rbtree.h"\ 
    6200         "..\..\..\pjlib\include\pj\sock.h"\ 
    6201         "..\..\..\pjlib\include\pj\sock_select.h"\ 
    6202         "..\..\..\pjlib\include\pj\string.h"\ 
    6203         "..\..\..\pjlib\include\pj\string_i.h"\ 
    6204         "..\..\..\pjlib\include\pj\timer.h"\ 
    6205         "..\..\..\pjlib\include\pj\types.h"\ 
    6206         "..\..\..\pjlib\include\pj\unicode.h"\ 
    6207         "..\..\..\pjlib\include\pjlib.h"\ 
    6208         "..\..\include\pjnath\config.h"\ 
    6209         "..\..\include\pjnath\errno.h"\ 
    6210         "..\..\include\pjnath\stun_config.h"\ 
    6211         "..\..\include\pjnath\stun_msg.h"\ 
    6212         "..\..\include\pjnath\stun_transaction.h"\ 
    6213         "..\..\include\pjnath\types.h"\ 
    6214          
    6215  
    6216 !ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4) Debug" 
    6217  
    6218 DEP_CPP_STUN_T=\ 
    6219         "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
    6220         "..\..\..\pjlib\include\pj\array.h"\ 
    6221         "..\..\..\pjlib\include\pj\assert.h"\ 
    6222         "..\..\..\pjlib\include\pj\compat\assert.h"\ 
    62236203        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
    62246204        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     
    62856265         
    62866266 
     6267!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4) Debug" 
     6268 
     6269DEP_CPP_STUN_T=\ 
     6270        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     6271        "..\..\..\pjlib\include\pj\array.h"\ 
     6272        "..\..\..\pjlib\include\pj\assert.h"\ 
     6273        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     6274        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     6275        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     6276        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     6277        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     6278        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     6279        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     6280        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     6281        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     6282        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     6283        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     6284        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     6285        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     6286        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     6287        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     6288        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     6289        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     6290        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     6291        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     6292        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     6293        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     6294        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     6295        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     6296        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     6297        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     6298        "..\..\..\pjlib\include\pj\config.h"\ 
     6299        "..\..\..\pjlib\include\pj\config_site.h"\ 
     6300        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     6301        "..\..\..\pjlib\include\pj\ctype.h"\ 
     6302        "..\..\..\pjlib\include\pj\errno.h"\ 
     6303        "..\..\..\pjlib\include\pj\except.h"\ 
     6304        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     6305        "..\..\..\pjlib\include\pj\file_access.h"\ 
     6306        "..\..\..\pjlib\include\pj\file_io.h"\ 
     6307        "..\..\..\pjlib\include\pj\guid.h"\ 
     6308        "..\..\..\pjlib\include\pj\hash.h"\ 
     6309        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     6310        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     6311        "..\..\..\pjlib\include\pj\list.h"\ 
     6312        "..\..\..\pjlib\include\pj\list_i.h"\ 
     6313        "..\..\..\pjlib\include\pj\lock.h"\ 
     6314        "..\..\..\pjlib\include\pj\log.h"\ 
     6315        "..\..\..\pjlib\include\pj\os.h"\ 
     6316        "..\..\..\pjlib\include\pj\pool.h"\ 
     6317        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     6318        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     6319        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     6320        "..\..\..\pjlib\include\pj\rand.h"\ 
     6321        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     6322        "..\..\..\pjlib\include\pj\sock.h"\ 
     6323        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     6324        "..\..\..\pjlib\include\pj\string.h"\ 
     6325        "..\..\..\pjlib\include\pj\string_i.h"\ 
     6326        "..\..\..\pjlib\include\pj\timer.h"\ 
     6327        "..\..\..\pjlib\include\pj\types.h"\ 
     6328        "..\..\..\pjlib\include\pj\unicode.h"\ 
     6329        "..\..\..\pjlib\include\pjlib.h"\ 
     6330        "..\..\include\pjnath\config.h"\ 
     6331        "..\..\include\pjnath\errno.h"\ 
     6332        "..\..\include\pjnath\stun_config.h"\ 
     6333        "..\..\include\pjnath\stun_msg.h"\ 
     6334        "..\..\include\pjnath\stun_transaction.h"\ 
     6335        "..\..\include\pjnath\types.h"\ 
     6336         
     6337 
    62876338!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4T) Release" 
    62886339 
     
    65426593        "..\..\include\pjnath\stun_msg.h"\ 
    65436594        "..\..\include\pjnath\stun_transaction.h"\ 
     6595        "..\..\include\pjnath\types.h"\ 
     6596         
     6597 
     6598!ENDIF  
     6599 
     6600# End Source File 
     6601# Begin Source File 
     6602 
     6603SOURCE=..\..\src\pjnath\turn_session.c 
     6604 
     6605!IF  "$(CFG)" == "pjnath_wince - Win32 (WCE emulator) Release" 
     6606 
     6607DEP_CPP_TURN_=\ 
     6608        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     6609        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     6610        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     6611        "..\..\..\pjlib-util\include\pjlib-util\srv_resolver.h"\ 
     6612        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     6613        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     6614        "..\..\..\pjlib\include\pj\array.h"\ 
     6615        "..\..\..\pjlib\include\pj\assert.h"\ 
     6616        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     6617        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     6618        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     6619        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     6620        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     6621        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     6622        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     6623        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     6624        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     6625        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     6626        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     6627        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     6628        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     6629        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     6630        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     6631        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     6632        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     6633        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     6634        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     6635        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     6636        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     6637        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     6638        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     6639        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     6640        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     6641        "..\..\..\pjlib\include\pj\config.h"\ 
     6642        "..\..\..\pjlib\include\pj\config_site.h"\ 
     6643        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     6644        "..\..\..\pjlib\include\pj\ctype.h"\ 
     6645        "..\..\..\pjlib\include\pj\errno.h"\ 
     6646        "..\..\..\pjlib\include\pj\except.h"\ 
     6647        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     6648        "..\..\..\pjlib\include\pj\file_access.h"\ 
     6649        "..\..\..\pjlib\include\pj\file_io.h"\ 
     6650        "..\..\..\pjlib\include\pj\guid.h"\ 
     6651        "..\..\..\pjlib\include\pj\hash.h"\ 
     6652        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     6653        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     6654        "..\..\..\pjlib\include\pj\list.h"\ 
     6655        "..\..\..\pjlib\include\pj\list_i.h"\ 
     6656        "..\..\..\pjlib\include\pj\lock.h"\ 
     6657        "..\..\..\pjlib\include\pj\log.h"\ 
     6658        "..\..\..\pjlib\include\pj\os.h"\ 
     6659        "..\..\..\pjlib\include\pj\pool.h"\ 
     6660        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     6661        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     6662        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     6663        "..\..\..\pjlib\include\pj\rand.h"\ 
     6664        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     6665        "..\..\..\pjlib\include\pj\sock.h"\ 
     6666        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     6667        "..\..\..\pjlib\include\pj\string.h"\ 
     6668        "..\..\..\pjlib\include\pj\string_i.h"\ 
     6669        "..\..\..\pjlib\include\pj\timer.h"\ 
     6670        "..\..\..\pjlib\include\pj\types.h"\ 
     6671        "..\..\..\pjlib\include\pj\unicode.h"\ 
     6672        "..\..\..\pjlib\include\pjlib.h"\ 
     6673        "..\..\include\pjnath\config.h"\ 
     6674        "..\..\include\pjnath\errno.h"\ 
     6675        "..\..\include\pjnath\stun_auth.h"\ 
     6676        "..\..\include\pjnath\stun_config.h"\ 
     6677        "..\..\include\pjnath\stun_msg.h"\ 
     6678        "..\..\include\pjnath\stun_session.h"\ 
     6679        "..\..\include\pjnath\stun_transaction.h"\ 
     6680        "..\..\include\pjnath\turn_session.h"\ 
     6681        "..\..\include\pjnath\types.h"\ 
     6682         
     6683 
     6684!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE emulator) Debug" 
     6685 
     6686DEP_CPP_TURN_=\ 
     6687        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     6688        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     6689        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     6690        "..\..\..\pjlib-util\include\pjlib-util\srv_resolver.h"\ 
     6691        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     6692        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     6693        "..\..\..\pjlib\include\pj\array.h"\ 
     6694        "..\..\..\pjlib\include\pj\assert.h"\ 
     6695        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     6696        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     6697        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     6698        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     6699        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     6700        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     6701        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     6702        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     6703        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     6704        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     6705        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     6706        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     6707        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     6708        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     6709        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     6710        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     6711        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     6712        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     6713        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     6714        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     6715        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     6716        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     6717        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     6718        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     6719        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     6720        "..\..\..\pjlib\include\pj\config.h"\ 
     6721        "..\..\..\pjlib\include\pj\config_site.h"\ 
     6722        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     6723        "..\..\..\pjlib\include\pj\ctype.h"\ 
     6724        "..\..\..\pjlib\include\pj\errno.h"\ 
     6725        "..\..\..\pjlib\include\pj\except.h"\ 
     6726        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     6727        "..\..\..\pjlib\include\pj\file_access.h"\ 
     6728        "..\..\..\pjlib\include\pj\file_io.h"\ 
     6729        "..\..\..\pjlib\include\pj\guid.h"\ 
     6730        "..\..\..\pjlib\include\pj\hash.h"\ 
     6731        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     6732        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     6733        "..\..\..\pjlib\include\pj\list.h"\ 
     6734        "..\..\..\pjlib\include\pj\list_i.h"\ 
     6735        "..\..\..\pjlib\include\pj\lock.h"\ 
     6736        "..\..\..\pjlib\include\pj\log.h"\ 
     6737        "..\..\..\pjlib\include\pj\os.h"\ 
     6738        "..\..\..\pjlib\include\pj\pool.h"\ 
     6739        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     6740        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     6741        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     6742        "..\..\..\pjlib\include\pj\rand.h"\ 
     6743        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     6744        "..\..\..\pjlib\include\pj\sock.h"\ 
     6745        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     6746        "..\..\..\pjlib\include\pj\string.h"\ 
     6747        "..\..\..\pjlib\include\pj\string_i.h"\ 
     6748        "..\..\..\pjlib\include\pj\timer.h"\ 
     6749        "..\..\..\pjlib\include\pj\types.h"\ 
     6750        "..\..\..\pjlib\include\pj\unicode.h"\ 
     6751        "..\..\..\pjlib\include\pjlib.h"\ 
     6752        "..\..\include\pjnath\config.h"\ 
     6753        "..\..\include\pjnath\errno.h"\ 
     6754        "..\..\include\pjnath\stun_auth.h"\ 
     6755        "..\..\include\pjnath\stun_config.h"\ 
     6756        "..\..\include\pjnath\stun_msg.h"\ 
     6757        "..\..\include\pjnath\stun_session.h"\ 
     6758        "..\..\include\pjnath\stun_transaction.h"\ 
     6759        "..\..\include\pjnath\turn_session.h"\ 
     6760        "..\..\include\pjnath\types.h"\ 
     6761         
     6762 
     6763!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4I) Release" 
     6764 
     6765DEP_CPP_TURN_=\ 
     6766        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     6767        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     6768        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     6769        "..\..\..\pjlib-util\include\pjlib-util\srv_resolver.h"\ 
     6770        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     6771        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     6772        "..\..\..\pjlib\include\pj\array.h"\ 
     6773        "..\..\..\pjlib\include\pj\assert.h"\ 
     6774        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     6775        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     6776        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     6777        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     6778        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     6779        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     6780        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     6781        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     6782        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     6783        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     6784        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     6785        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     6786        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     6787        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     6788        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     6789        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     6790        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     6791        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     6792        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     6793        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     6794        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     6795        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     6796        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     6797        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     6798        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     6799        "..\..\..\pjlib\include\pj\config.h"\ 
     6800        "..\..\..\pjlib\include\pj\config_site.h"\ 
     6801        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     6802        "..\..\..\pjlib\include\pj\ctype.h"\ 
     6803        "..\..\..\pjlib\include\pj\errno.h"\ 
     6804        "..\..\..\pjlib\include\pj\except.h"\ 
     6805        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     6806        "..\..\..\pjlib\include\pj\file_access.h"\ 
     6807        "..\..\..\pjlib\include\pj\file_io.h"\ 
     6808        "..\..\..\pjlib\include\pj\guid.h"\ 
     6809        "..\..\..\pjlib\include\pj\hash.h"\ 
     6810        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     6811        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     6812        "..\..\..\pjlib\include\pj\list.h"\ 
     6813        "..\..\..\pjlib\include\pj\list_i.h"\ 
     6814        "..\..\..\pjlib\include\pj\lock.h"\ 
     6815        "..\..\..\pjlib\include\pj\log.h"\ 
     6816        "..\..\..\pjlib\include\pj\os.h"\ 
     6817        "..\..\..\pjlib\include\pj\pool.h"\ 
     6818        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     6819        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     6820        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     6821        "..\..\..\pjlib\include\pj\rand.h"\ 
     6822        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     6823        "..\..\..\pjlib\include\pj\sock.h"\ 
     6824        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     6825        "..\..\..\pjlib\include\pj\string.h"\ 
     6826        "..\..\..\pjlib\include\pj\string_i.h"\ 
     6827        "..\..\..\pjlib\include\pj\timer.h"\ 
     6828        "..\..\..\pjlib\include\pj\types.h"\ 
     6829        "..\..\..\pjlib\include\pj\unicode.h"\ 
     6830        "..\..\..\pjlib\include\pjlib.h"\ 
     6831        "..\..\include\pjnath\config.h"\ 
     6832        "..\..\include\pjnath\errno.h"\ 
     6833        "..\..\include\pjnath\stun_auth.h"\ 
     6834        "..\..\include\pjnath\stun_config.h"\ 
     6835        "..\..\include\pjnath\stun_msg.h"\ 
     6836        "..\..\include\pjnath\stun_session.h"\ 
     6837        "..\..\include\pjnath\stun_transaction.h"\ 
     6838        "..\..\include\pjnath\turn_session.h"\ 
     6839        "..\..\include\pjnath\types.h"\ 
     6840         
     6841 
     6842!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4I) Debug" 
     6843 
     6844DEP_CPP_TURN_=\ 
     6845        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     6846        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     6847        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     6848        "..\..\..\pjlib-util\include\pjlib-util\srv_resolver.h"\ 
     6849        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     6850        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     6851        "..\..\..\pjlib\include\pj\array.h"\ 
     6852        "..\..\..\pjlib\include\pj\assert.h"\ 
     6853        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     6854        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     6855        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     6856        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     6857        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     6858        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     6859        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     6860        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     6861        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     6862        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     6863        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     6864        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     6865        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     6866        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     6867        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     6868        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     6869        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     6870        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     6871        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     6872        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     6873        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     6874        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     6875        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     6876        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     6877        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     6878        "..\..\..\pjlib\include\pj\config.h"\ 
     6879        "..\..\..\pjlib\include\pj\config_site.h"\ 
     6880        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     6881        "..\..\..\pjlib\include\pj\ctype.h"\ 
     6882        "..\..\..\pjlib\include\pj\errno.h"\ 
     6883        "..\..\..\pjlib\include\pj\except.h"\ 
     6884        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     6885        "..\..\..\pjlib\include\pj\file_access.h"\ 
     6886        "..\..\..\pjlib\include\pj\file_io.h"\ 
     6887        "..\..\..\pjlib\include\pj\guid.h"\ 
     6888        "..\..\..\pjlib\include\pj\hash.h"\ 
     6889        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     6890        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     6891        "..\..\..\pjlib\include\pj\list.h"\ 
     6892        "..\..\..\pjlib\include\pj\list_i.h"\ 
     6893        "..\..\..\pjlib\include\pj\lock.h"\ 
     6894        "..\..\..\pjlib\include\pj\log.h"\ 
     6895        "..\..\..\pjlib\include\pj\os.h"\ 
     6896        "..\..\..\pjlib\include\pj\pool.h"\ 
     6897        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     6898        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     6899        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     6900        "..\..\..\pjlib\include\pj\rand.h"\ 
     6901        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     6902        "..\..\..\pjlib\include\pj\sock.h"\ 
     6903        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     6904        "..\..\..\pjlib\include\pj\string.h"\ 
     6905        "..\..\..\pjlib\include\pj\string_i.h"\ 
     6906        "..\..\..\pjlib\include\pj\timer.h"\ 
     6907        "..\..\..\pjlib\include\pj\types.h"\ 
     6908        "..\..\..\pjlib\include\pj\unicode.h"\ 
     6909        "..\..\..\pjlib\include\pjlib.h"\ 
     6910        "..\..\include\pjnath\config.h"\ 
     6911        "..\..\include\pjnath\errno.h"\ 
     6912        "..\..\include\pjnath\stun_auth.h"\ 
     6913        "..\..\include\pjnath\stun_config.h"\ 
     6914        "..\..\include\pjnath\stun_msg.h"\ 
     6915        "..\..\include\pjnath\stun_session.h"\ 
     6916        "..\..\include\pjnath\stun_transaction.h"\ 
     6917        "..\..\include\pjnath\turn_session.h"\ 
     6918        "..\..\include\pjnath\types.h"\ 
     6919         
     6920 
     6921!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4) Release" 
     6922 
     6923DEP_CPP_TURN_=\ 
     6924        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     6925        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     6926        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     6927        "..\..\..\pjlib-util\include\pjlib-util\srv_resolver.h"\ 
     6928        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     6929        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     6930        "..\..\..\pjlib\include\pj\array.h"\ 
     6931        "..\..\..\pjlib\include\pj\assert.h"\ 
     6932        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     6933        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     6934        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     6935        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     6936        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     6937        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     6938        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     6939        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     6940        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     6941        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     6942        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     6943        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     6944        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     6945        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     6946        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     6947        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     6948        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     6949        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     6950        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     6951        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     6952        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     6953        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     6954        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     6955        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     6956        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     6957        "..\..\..\pjlib\include\pj\config.h"\ 
     6958        "..\..\..\pjlib\include\pj\config_site.h"\ 
     6959        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     6960        "..\..\..\pjlib\include\pj\ctype.h"\ 
     6961        "..\..\..\pjlib\include\pj\errno.h"\ 
     6962        "..\..\..\pjlib\include\pj\except.h"\ 
     6963        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     6964        "..\..\..\pjlib\include\pj\file_access.h"\ 
     6965        "..\..\..\pjlib\include\pj\file_io.h"\ 
     6966        "..\..\..\pjlib\include\pj\guid.h"\ 
     6967        "..\..\..\pjlib\include\pj\hash.h"\ 
     6968        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     6969        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     6970        "..\..\..\pjlib\include\pj\list.h"\ 
     6971        "..\..\..\pjlib\include\pj\list_i.h"\ 
     6972        "..\..\..\pjlib\include\pj\lock.h"\ 
     6973        "..\..\..\pjlib\include\pj\log.h"\ 
     6974        "..\..\..\pjlib\include\pj\os.h"\ 
     6975        "..\..\..\pjlib\include\pj\pool.h"\ 
     6976        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     6977        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     6978        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     6979        "..\..\..\pjlib\include\pj\rand.h"\ 
     6980        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     6981        "..\..\..\pjlib\include\pj\sock.h"\ 
     6982        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     6983        "..\..\..\pjlib\include\pj\string.h"\ 
     6984        "..\..\..\pjlib\include\pj\string_i.h"\ 
     6985        "..\..\..\pjlib\include\pj\timer.h"\ 
     6986        "..\..\..\pjlib\include\pj\types.h"\ 
     6987        "..\..\..\pjlib\include\pj\unicode.h"\ 
     6988        "..\..\..\pjlib\include\pjlib.h"\ 
     6989        "..\..\include\pjnath\config.h"\ 
     6990        "..\..\include\pjnath\errno.h"\ 
     6991        "..\..\include\pjnath\stun_auth.h"\ 
     6992        "..\..\include\pjnath\stun_config.h"\ 
     6993        "..\..\include\pjnath\stun_msg.h"\ 
     6994        "..\..\include\pjnath\stun_session.h"\ 
     6995        "..\..\include\pjnath\stun_transaction.h"\ 
     6996        "..\..\include\pjnath\turn_session.h"\ 
     6997        "..\..\include\pjnath\types.h"\ 
     6998         
     6999 
     7000!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4) Debug" 
     7001 
     7002DEP_CPP_TURN_=\ 
     7003        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7004        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7005        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7006        "..\..\..\pjlib-util\include\pjlib-util\srv_resolver.h"\ 
     7007        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7008        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7009        "..\..\..\pjlib\include\pj\array.h"\ 
     7010        "..\..\..\pjlib\include\pj\assert.h"\ 
     7011        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7012        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7013        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7014        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7015        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7016        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7017        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7018        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7019        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7020        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7021        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7022        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7023        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7024        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7025        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7026        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7027        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7028        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7029        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7030        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7031        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7032        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7033        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7034        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7035        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7036        "..\..\..\pjlib\include\pj\config.h"\ 
     7037        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7038        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7039        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7040        "..\..\..\pjlib\include\pj\errno.h"\ 
     7041        "..\..\..\pjlib\include\pj\except.h"\ 
     7042        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7043        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7044        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7045        "..\..\..\pjlib\include\pj\guid.h"\ 
     7046        "..\..\..\pjlib\include\pj\hash.h"\ 
     7047        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7048        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7049        "..\..\..\pjlib\include\pj\list.h"\ 
     7050        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7051        "..\..\..\pjlib\include\pj\lock.h"\ 
     7052        "..\..\..\pjlib\include\pj\log.h"\ 
     7053        "..\..\..\pjlib\include\pj\os.h"\ 
     7054        "..\..\..\pjlib\include\pj\pool.h"\ 
     7055        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7056        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7057        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7058        "..\..\..\pjlib\include\pj\rand.h"\ 
     7059        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7060        "..\..\..\pjlib\include\pj\sock.h"\ 
     7061        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7062        "..\..\..\pjlib\include\pj\string.h"\ 
     7063        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7064        "..\..\..\pjlib\include\pj\timer.h"\ 
     7065        "..\..\..\pjlib\include\pj\types.h"\ 
     7066        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7067        "..\..\..\pjlib\include\pjlib.h"\ 
     7068        "..\..\include\pjnath\config.h"\ 
     7069        "..\..\include\pjnath\errno.h"\ 
     7070        "..\..\include\pjnath\stun_auth.h"\ 
     7071        "..\..\include\pjnath\stun_config.h"\ 
     7072        "..\..\include\pjnath\stun_msg.h"\ 
     7073        "..\..\include\pjnath\stun_session.h"\ 
     7074        "..\..\include\pjnath\stun_transaction.h"\ 
     7075        "..\..\include\pjnath\turn_session.h"\ 
     7076        "..\..\include\pjnath\types.h"\ 
     7077         
     7078 
     7079!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4T) Release" 
     7080 
     7081DEP_CPP_TURN_=\ 
     7082        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7083        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7084        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7085        "..\..\..\pjlib-util\include\pjlib-util\srv_resolver.h"\ 
     7086        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7087        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7088        "..\..\..\pjlib\include\pj\array.h"\ 
     7089        "..\..\..\pjlib\include\pj\assert.h"\ 
     7090        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7091        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7092        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7093        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7094        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7095        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7096        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7097        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7098        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7099        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7100        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7101        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7102        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7103        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7104        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7105        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7106        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7107        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7108        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7109        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7110        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7111        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7112        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7113        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7114        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7115        "..\..\..\pjlib\include\pj\config.h"\ 
     7116        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7117        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7118        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7119        "..\..\..\pjlib\include\pj\errno.h"\ 
     7120        "..\..\..\pjlib\include\pj\except.h"\ 
     7121        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7122        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7123        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7124        "..\..\..\pjlib\include\pj\guid.h"\ 
     7125        "..\..\..\pjlib\include\pj\hash.h"\ 
     7126        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7127        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7128        "..\..\..\pjlib\include\pj\list.h"\ 
     7129        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7130        "..\..\..\pjlib\include\pj\lock.h"\ 
     7131        "..\..\..\pjlib\include\pj\log.h"\ 
     7132        "..\..\..\pjlib\include\pj\os.h"\ 
     7133        "..\..\..\pjlib\include\pj\pool.h"\ 
     7134        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7135        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7136        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7137        "..\..\..\pjlib\include\pj\rand.h"\ 
     7138        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7139        "..\..\..\pjlib\include\pj\sock.h"\ 
     7140        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7141        "..\..\..\pjlib\include\pj\string.h"\ 
     7142        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7143        "..\..\..\pjlib\include\pj\timer.h"\ 
     7144        "..\..\..\pjlib\include\pj\types.h"\ 
     7145        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7146        "..\..\..\pjlib\include\pjlib.h"\ 
     7147        "..\..\include\pjnath\config.h"\ 
     7148        "..\..\include\pjnath\errno.h"\ 
     7149        "..\..\include\pjnath\stun_auth.h"\ 
     7150        "..\..\include\pjnath\stun_config.h"\ 
     7151        "..\..\include\pjnath\stun_msg.h"\ 
     7152        "..\..\include\pjnath\stun_session.h"\ 
     7153        "..\..\include\pjnath\stun_transaction.h"\ 
     7154        "..\..\include\pjnath\turn_session.h"\ 
     7155        "..\..\include\pjnath\types.h"\ 
     7156         
     7157 
     7158!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4T) Debug" 
     7159 
     7160DEP_CPP_TURN_=\ 
     7161        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7162        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7163        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7164        "..\..\..\pjlib-util\include\pjlib-util\srv_resolver.h"\ 
     7165        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7166        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7167        "..\..\..\pjlib\include\pj\array.h"\ 
     7168        "..\..\..\pjlib\include\pj\assert.h"\ 
     7169        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7170        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7171        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7172        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7173        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7174        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7175        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7176        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7177        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7178        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7179        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7180        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7181        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7182        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7183        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7184        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7185        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7186        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7187        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7188        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7189        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7190        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7191        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7192        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7193        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7194        "..\..\..\pjlib\include\pj\config.h"\ 
     7195        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7196        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7197        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7198        "..\..\..\pjlib\include\pj\errno.h"\ 
     7199        "..\..\..\pjlib\include\pj\except.h"\ 
     7200        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7201        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7202        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7203        "..\..\..\pjlib\include\pj\guid.h"\ 
     7204        "..\..\..\pjlib\include\pj\hash.h"\ 
     7205        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7206        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7207        "..\..\..\pjlib\include\pj\list.h"\ 
     7208        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7209        "..\..\..\pjlib\include\pj\lock.h"\ 
     7210        "..\..\..\pjlib\include\pj\log.h"\ 
     7211        "..\..\..\pjlib\include\pj\os.h"\ 
     7212        "..\..\..\pjlib\include\pj\pool.h"\ 
     7213        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7214        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7215        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7216        "..\..\..\pjlib\include\pj\rand.h"\ 
     7217        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7218        "..\..\..\pjlib\include\pj\sock.h"\ 
     7219        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7220        "..\..\..\pjlib\include\pj\string.h"\ 
     7221        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7222        "..\..\..\pjlib\include\pj\timer.h"\ 
     7223        "..\..\..\pjlib\include\pj\types.h"\ 
     7224        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7225        "..\..\..\pjlib\include\pjlib.h"\ 
     7226        "..\..\include\pjnath\config.h"\ 
     7227        "..\..\include\pjnath\errno.h"\ 
     7228        "..\..\include\pjnath\stun_auth.h"\ 
     7229        "..\..\include\pjnath\stun_config.h"\ 
     7230        "..\..\include\pjnath\stun_msg.h"\ 
     7231        "..\..\include\pjnath\stun_session.h"\ 
     7232        "..\..\include\pjnath\stun_transaction.h"\ 
     7233        "..\..\include\pjnath\turn_session.h"\ 
     7234        "..\..\include\pjnath\types.h"\ 
     7235         
     7236 
     7237!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE x86) Release" 
     7238 
     7239DEP_CPP_TURN_=\ 
     7240        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7241        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7242        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7243        "..\..\..\pjlib-util\include\pjlib-util\srv_resolver.h"\ 
     7244        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7245        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7246        "..\..\..\pjlib\include\pj\array.h"\ 
     7247        "..\..\..\pjlib\include\pj\assert.h"\ 
     7248        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7249        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7250        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7251        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7252        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7253        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7254        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7255        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7256        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7257        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7258        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7259        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7260        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7261        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7262        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7263        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7264        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7265        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7266        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7267        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7268        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7269        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7270        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7271        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7272        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7273        "..\..\..\pjlib\include\pj\config.h"\ 
     7274        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7275        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7276        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7277        "..\..\..\pjlib\include\pj\errno.h"\ 
     7278        "..\..\..\pjlib\include\pj\except.h"\ 
     7279        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7280        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7281        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7282        "..\..\..\pjlib\include\pj\guid.h"\ 
     7283        "..\..\..\pjlib\include\pj\hash.h"\ 
     7284        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7285        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7286        "..\..\..\pjlib\include\pj\list.h"\ 
     7287        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7288        "..\..\..\pjlib\include\pj\lock.h"\ 
     7289        "..\..\..\pjlib\include\pj\log.h"\ 
     7290        "..\..\..\pjlib\include\pj\os.h"\ 
     7291        "..\..\..\pjlib\include\pj\pool.h"\ 
     7292        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7293        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7294        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7295        "..\..\..\pjlib\include\pj\rand.h"\ 
     7296        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7297        "..\..\..\pjlib\include\pj\sock.h"\ 
     7298        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7299        "..\..\..\pjlib\include\pj\string.h"\ 
     7300        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7301        "..\..\..\pjlib\include\pj\timer.h"\ 
     7302        "..\..\..\pjlib\include\pj\types.h"\ 
     7303        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7304        "..\..\..\pjlib\include\pjlib.h"\ 
     7305        "..\..\include\pjnath\config.h"\ 
     7306        "..\..\include\pjnath\errno.h"\ 
     7307        "..\..\include\pjnath\stun_auth.h"\ 
     7308        "..\..\include\pjnath\stun_config.h"\ 
     7309        "..\..\include\pjnath\stun_msg.h"\ 
     7310        "..\..\include\pjnath\stun_session.h"\ 
     7311        "..\..\include\pjnath\stun_transaction.h"\ 
     7312        "..\..\include\pjnath\turn_session.h"\ 
     7313        "..\..\include\pjnath\types.h"\ 
     7314         
     7315 
     7316!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE x86) Debug" 
     7317 
     7318DEP_CPP_TURN_=\ 
     7319        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7320        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7321        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7322        "..\..\..\pjlib-util\include\pjlib-util\srv_resolver.h"\ 
     7323        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7324        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7325        "..\..\..\pjlib\include\pj\array.h"\ 
     7326        "..\..\..\pjlib\include\pj\assert.h"\ 
     7327        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7328        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7329        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7330        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7331        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7332        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7333        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7334        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7335        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7336        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7337        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7338        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7339        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7340        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7341        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7342        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7343        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7344        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7345        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7346        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7347        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7348        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7349        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7350        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7351        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7352        "..\..\..\pjlib\include\pj\config.h"\ 
     7353        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7354        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7355        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7356        "..\..\..\pjlib\include\pj\errno.h"\ 
     7357        "..\..\..\pjlib\include\pj\except.h"\ 
     7358        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7359        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7360        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7361        "..\..\..\pjlib\include\pj\guid.h"\ 
     7362        "..\..\..\pjlib\include\pj\hash.h"\ 
     7363        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7364        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7365        "..\..\..\pjlib\include\pj\list.h"\ 
     7366        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7367        "..\..\..\pjlib\include\pj\lock.h"\ 
     7368        "..\..\..\pjlib\include\pj\log.h"\ 
     7369        "..\..\..\pjlib\include\pj\os.h"\ 
     7370        "..\..\..\pjlib\include\pj\pool.h"\ 
     7371        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7372        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7373        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7374        "..\..\..\pjlib\include\pj\rand.h"\ 
     7375        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7376        "..\..\..\pjlib\include\pj\sock.h"\ 
     7377        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7378        "..\..\..\pjlib\include\pj\string.h"\ 
     7379        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7380        "..\..\..\pjlib\include\pj\timer.h"\ 
     7381        "..\..\..\pjlib\include\pj\types.h"\ 
     7382        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7383        "..\..\..\pjlib\include\pjlib.h"\ 
     7384        "..\..\include\pjnath\config.h"\ 
     7385        "..\..\include\pjnath\errno.h"\ 
     7386        "..\..\include\pjnath\stun_auth.h"\ 
     7387        "..\..\include\pjnath\stun_config.h"\ 
     7388        "..\..\include\pjnath\stun_msg.h"\ 
     7389        "..\..\include\pjnath\stun_session.h"\ 
     7390        "..\..\include\pjnath\stun_transaction.h"\ 
     7391        "..\..\include\pjnath\turn_session.h"\ 
     7392        "..\..\include\pjnath\types.h"\ 
     7393         
     7394 
     7395!ENDIF  
     7396 
     7397# End Source File 
     7398# Begin Source File 
     7399 
     7400SOURCE=..\..\src\pjnath\turn_sock.c 
     7401 
     7402!IF  "$(CFG)" == "pjnath_wince - Win32 (WCE emulator) Release" 
     7403 
     7404DEP_CPP_TURN_S=\ 
     7405        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7406        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7407        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7408        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7409        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7410        "..\..\..\pjlib\include\pj\array.h"\ 
     7411        "..\..\..\pjlib\include\pj\assert.h"\ 
     7412        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7413        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7414        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7415        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7416        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7417        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7418        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7419        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7420        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7421        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7422        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7423        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7424        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7425        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7426        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7427        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7428        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7429        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7430        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7431        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7432        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7433        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7434        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7435        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7436        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7437        "..\..\..\pjlib\include\pj\config.h"\ 
     7438        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7439        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7440        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7441        "..\..\..\pjlib\include\pj\errno.h"\ 
     7442        "..\..\..\pjlib\include\pj\except.h"\ 
     7443        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7444        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7445        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7446        "..\..\..\pjlib\include\pj\guid.h"\ 
     7447        "..\..\..\pjlib\include\pj\hash.h"\ 
     7448        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7449        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7450        "..\..\..\pjlib\include\pj\list.h"\ 
     7451        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7452        "..\..\..\pjlib\include\pj\lock.h"\ 
     7453        "..\..\..\pjlib\include\pj\log.h"\ 
     7454        "..\..\..\pjlib\include\pj\os.h"\ 
     7455        "..\..\..\pjlib\include\pj\pool.h"\ 
     7456        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7457        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7458        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7459        "..\..\..\pjlib\include\pj\rand.h"\ 
     7460        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7461        "..\..\..\pjlib\include\pj\sock.h"\ 
     7462        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7463        "..\..\..\pjlib\include\pj\string.h"\ 
     7464        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7465        "..\..\..\pjlib\include\pj\timer.h"\ 
     7466        "..\..\..\pjlib\include\pj\types.h"\ 
     7467        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7468        "..\..\..\pjlib\include\pjlib.h"\ 
     7469        "..\..\include\pjnath\config.h"\ 
     7470        "..\..\include\pjnath\stun_auth.h"\ 
     7471        "..\..\include\pjnath\stun_config.h"\ 
     7472        "..\..\include\pjnath\stun_msg.h"\ 
     7473        "..\..\include\pjnath\stun_session.h"\ 
     7474        "..\..\include\pjnath\stun_transaction.h"\ 
     7475        "..\..\include\pjnath\turn_session.h"\ 
     7476        "..\..\include\pjnath\turn_sock.h"\ 
     7477        "..\..\include\pjnath\types.h"\ 
     7478         
     7479 
     7480!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE emulator) Debug" 
     7481 
     7482DEP_CPP_TURN_S=\ 
     7483        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7484        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7485        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7486        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7487        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7488        "..\..\..\pjlib\include\pj\array.h"\ 
     7489        "..\..\..\pjlib\include\pj\assert.h"\ 
     7490        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7491        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7492        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7493        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7494        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7495        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7496        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7497        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7498        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7499        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7500        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7501        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7502        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7503        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7504        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7505        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7506        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7507        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7508        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7509        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7510        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7511        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7512        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7513        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7514        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7515        "..\..\..\pjlib\include\pj\config.h"\ 
     7516        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7517        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7518        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7519        "..\..\..\pjlib\include\pj\errno.h"\ 
     7520        "..\..\..\pjlib\include\pj\except.h"\ 
     7521        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7522        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7523        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7524        "..\..\..\pjlib\include\pj\guid.h"\ 
     7525        "..\..\..\pjlib\include\pj\hash.h"\ 
     7526        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7527        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7528        "..\..\..\pjlib\include\pj\list.h"\ 
     7529        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7530        "..\..\..\pjlib\include\pj\lock.h"\ 
     7531        "..\..\..\pjlib\include\pj\log.h"\ 
     7532        "..\..\..\pjlib\include\pj\os.h"\ 
     7533        "..\..\..\pjlib\include\pj\pool.h"\ 
     7534        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7535        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7536        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7537        "..\..\..\pjlib\include\pj\rand.h"\ 
     7538        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7539        "..\..\..\pjlib\include\pj\sock.h"\ 
     7540        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7541        "..\..\..\pjlib\include\pj\string.h"\ 
     7542        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7543        "..\..\..\pjlib\include\pj\timer.h"\ 
     7544        "..\..\..\pjlib\include\pj\types.h"\ 
     7545        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7546        "..\..\..\pjlib\include\pjlib.h"\ 
     7547        "..\..\include\pjnath\config.h"\ 
     7548        "..\..\include\pjnath\stun_auth.h"\ 
     7549        "..\..\include\pjnath\stun_config.h"\ 
     7550        "..\..\include\pjnath\stun_msg.h"\ 
     7551        "..\..\include\pjnath\stun_session.h"\ 
     7552        "..\..\include\pjnath\stun_transaction.h"\ 
     7553        "..\..\include\pjnath\turn_session.h"\ 
     7554        "..\..\include\pjnath\turn_sock.h"\ 
     7555        "..\..\include\pjnath\types.h"\ 
     7556         
     7557 
     7558!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4I) Release" 
     7559 
     7560DEP_CPP_TURN_S=\ 
     7561        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7562        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7563        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7564        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7565        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7566        "..\..\..\pjlib\include\pj\array.h"\ 
     7567        "..\..\..\pjlib\include\pj\assert.h"\ 
     7568        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7569        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7570        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7571        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7572        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7573        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7574        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7575        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7576        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7577        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7578        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7579        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7580        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7581        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7582        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7583        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7584        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7585        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7586        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7587        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7588        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7589        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7590        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7591        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7592        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7593        "..\..\..\pjlib\include\pj\config.h"\ 
     7594        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7595        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7596        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7597        "..\..\..\pjlib\include\pj\errno.h"\ 
     7598        "..\..\..\pjlib\include\pj\except.h"\ 
     7599        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7600        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7601        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7602        "..\..\..\pjlib\include\pj\guid.h"\ 
     7603        "..\..\..\pjlib\include\pj\hash.h"\ 
     7604        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7605        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7606        "..\..\..\pjlib\include\pj\list.h"\ 
     7607        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7608        "..\..\..\pjlib\include\pj\lock.h"\ 
     7609        "..\..\..\pjlib\include\pj\log.h"\ 
     7610        "..\..\..\pjlib\include\pj\os.h"\ 
     7611        "..\..\..\pjlib\include\pj\pool.h"\ 
     7612        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7613        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7614        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7615        "..\..\..\pjlib\include\pj\rand.h"\ 
     7616        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7617        "..\..\..\pjlib\include\pj\sock.h"\ 
     7618        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7619        "..\..\..\pjlib\include\pj\string.h"\ 
     7620        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7621        "..\..\..\pjlib\include\pj\timer.h"\ 
     7622        "..\..\..\pjlib\include\pj\types.h"\ 
     7623        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7624        "..\..\..\pjlib\include\pjlib.h"\ 
     7625        "..\..\include\pjnath\config.h"\ 
     7626        "..\..\include\pjnath\stun_auth.h"\ 
     7627        "..\..\include\pjnath\stun_config.h"\ 
     7628        "..\..\include\pjnath\stun_msg.h"\ 
     7629        "..\..\include\pjnath\stun_session.h"\ 
     7630        "..\..\include\pjnath\stun_transaction.h"\ 
     7631        "..\..\include\pjnath\turn_session.h"\ 
     7632        "..\..\include\pjnath\turn_sock.h"\ 
     7633        "..\..\include\pjnath\types.h"\ 
     7634         
     7635 
     7636!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4I) Debug" 
     7637 
     7638DEP_CPP_TURN_S=\ 
     7639        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7640        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7641        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7642        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7643        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7644        "..\..\..\pjlib\include\pj\array.h"\ 
     7645        "..\..\..\pjlib\include\pj\assert.h"\ 
     7646        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7647        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7648        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7649        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7650        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7651        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7652        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7653        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7654        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7655        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7656        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7657        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7658        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7659        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7660        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7661        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7662        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7663        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7664        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7665        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7666        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7667        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7668        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7669        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7670        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7671        "..\..\..\pjlib\include\pj\config.h"\ 
     7672        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7673        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7674        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7675        "..\..\..\pjlib\include\pj\errno.h"\ 
     7676        "..\..\..\pjlib\include\pj\except.h"\ 
     7677        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7678        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7679        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7680        "..\..\..\pjlib\include\pj\guid.h"\ 
     7681        "..\..\..\pjlib\include\pj\hash.h"\ 
     7682        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7683        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7684        "..\..\..\pjlib\include\pj\list.h"\ 
     7685        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7686        "..\..\..\pjlib\include\pj\lock.h"\ 
     7687        "..\..\..\pjlib\include\pj\log.h"\ 
     7688        "..\..\..\pjlib\include\pj\os.h"\ 
     7689        "..\..\..\pjlib\include\pj\pool.h"\ 
     7690        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7691        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7692        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7693        "..\..\..\pjlib\include\pj\rand.h"\ 
     7694        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7695        "..\..\..\pjlib\include\pj\sock.h"\ 
     7696        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7697        "..\..\..\pjlib\include\pj\string.h"\ 
     7698        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7699        "..\..\..\pjlib\include\pj\timer.h"\ 
     7700        "..\..\..\pjlib\include\pj\types.h"\ 
     7701        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7702        "..\..\..\pjlib\include\pjlib.h"\ 
     7703        "..\..\include\pjnath\config.h"\ 
     7704        "..\..\include\pjnath\stun_auth.h"\ 
     7705        "..\..\include\pjnath\stun_config.h"\ 
     7706        "..\..\include\pjnath\stun_msg.h"\ 
     7707        "..\..\include\pjnath\stun_session.h"\ 
     7708        "..\..\include\pjnath\stun_transaction.h"\ 
     7709        "..\..\include\pjnath\turn_session.h"\ 
     7710        "..\..\include\pjnath\turn_sock.h"\ 
     7711        "..\..\include\pjnath\types.h"\ 
     7712         
     7713 
     7714!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4) Release" 
     7715 
     7716DEP_CPP_TURN_S=\ 
     7717        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7718        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7719        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7720        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7721        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7722        "..\..\..\pjlib\include\pj\array.h"\ 
     7723        "..\..\..\pjlib\include\pj\assert.h"\ 
     7724        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7725        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7726        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7727        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7728        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7729        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7730        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7731        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7732        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7733        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7734        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7735        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7736        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7737        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7738        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7739        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7740        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7741        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7742        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7743        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7744        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7745        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7746        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7747        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7748        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7749        "..\..\..\pjlib\include\pj\config.h"\ 
     7750        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7751        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7752        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7753        "..\..\..\pjlib\include\pj\errno.h"\ 
     7754        "..\..\..\pjlib\include\pj\except.h"\ 
     7755        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7756        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7757        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7758        "..\..\..\pjlib\include\pj\guid.h"\ 
     7759        "..\..\..\pjlib\include\pj\hash.h"\ 
     7760        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7761        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7762        "..\..\..\pjlib\include\pj\list.h"\ 
     7763        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7764        "..\..\..\pjlib\include\pj\lock.h"\ 
     7765        "..\..\..\pjlib\include\pj\log.h"\ 
     7766        "..\..\..\pjlib\include\pj\os.h"\ 
     7767        "..\..\..\pjlib\include\pj\pool.h"\ 
     7768        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7769        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7770        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7771        "..\..\..\pjlib\include\pj\rand.h"\ 
     7772        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7773        "..\..\..\pjlib\include\pj\sock.h"\ 
     7774        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7775        "..\..\..\pjlib\include\pj\string.h"\ 
     7776        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7777        "..\..\..\pjlib\include\pj\timer.h"\ 
     7778        "..\..\..\pjlib\include\pj\types.h"\ 
     7779        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7780        "..\..\..\pjlib\include\pjlib.h"\ 
     7781        "..\..\include\pjnath\config.h"\ 
     7782        "..\..\include\pjnath\stun_auth.h"\ 
     7783        "..\..\include\pjnath\stun_config.h"\ 
     7784        "..\..\include\pjnath\stun_msg.h"\ 
     7785        "..\..\include\pjnath\stun_session.h"\ 
     7786        "..\..\include\pjnath\stun_transaction.h"\ 
     7787        "..\..\include\pjnath\turn_session.h"\ 
     7788        "..\..\include\pjnath\turn_sock.h"\ 
     7789        "..\..\include\pjnath\types.h"\ 
     7790         
     7791 
     7792!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4) Debug" 
     7793 
     7794DEP_CPP_TURN_S=\ 
     7795        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7796        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7797        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7798        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7799        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7800        "..\..\..\pjlib\include\pj\array.h"\ 
     7801        "..\..\..\pjlib\include\pj\assert.h"\ 
     7802        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7803        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7804        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7805        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7806        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7807        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7808        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7809        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7810        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7811        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7812        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7813        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7814        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7815        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7816        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7817        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7818        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7819        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7820        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7821        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7822        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7823        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7824        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7825        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7826        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7827        "..\..\..\pjlib\include\pj\config.h"\ 
     7828        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7829        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7830        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7831        "..\..\..\pjlib\include\pj\errno.h"\ 
     7832        "..\..\..\pjlib\include\pj\except.h"\ 
     7833        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7834        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7835        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7836        "..\..\..\pjlib\include\pj\guid.h"\ 
     7837        "..\..\..\pjlib\include\pj\hash.h"\ 
     7838        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7839        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7840        "..\..\..\pjlib\include\pj\list.h"\ 
     7841        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7842        "..\..\..\pjlib\include\pj\lock.h"\ 
     7843        "..\..\..\pjlib\include\pj\log.h"\ 
     7844        "..\..\..\pjlib\include\pj\os.h"\ 
     7845        "..\..\..\pjlib\include\pj\pool.h"\ 
     7846        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7847        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7848        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7849        "..\..\..\pjlib\include\pj\rand.h"\ 
     7850        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7851        "..\..\..\pjlib\include\pj\sock.h"\ 
     7852        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7853        "..\..\..\pjlib\include\pj\string.h"\ 
     7854        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7855        "..\..\..\pjlib\include\pj\timer.h"\ 
     7856        "..\..\..\pjlib\include\pj\types.h"\ 
     7857        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7858        "..\..\..\pjlib\include\pjlib.h"\ 
     7859        "..\..\include\pjnath\config.h"\ 
     7860        "..\..\include\pjnath\stun_auth.h"\ 
     7861        "..\..\include\pjnath\stun_config.h"\ 
     7862        "..\..\include\pjnath\stun_msg.h"\ 
     7863        "..\..\include\pjnath\stun_session.h"\ 
     7864        "..\..\include\pjnath\stun_transaction.h"\ 
     7865        "..\..\include\pjnath\turn_session.h"\ 
     7866        "..\..\include\pjnath\turn_sock.h"\ 
     7867        "..\..\include\pjnath\types.h"\ 
     7868         
     7869 
     7870!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4T) Release" 
     7871 
     7872DEP_CPP_TURN_S=\ 
     7873        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7874        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7875        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7876        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7877        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7878        "..\..\..\pjlib\include\pj\array.h"\ 
     7879        "..\..\..\pjlib\include\pj\assert.h"\ 
     7880        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7881        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7882        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7883        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7884        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7885        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7886        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7887        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7888        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7889        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7890        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7891        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7892        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7893        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7894        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7895        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7896        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7897        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7898        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7899        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7900        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7901        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7902        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7903        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7904        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7905        "..\..\..\pjlib\include\pj\config.h"\ 
     7906        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7907        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7908        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7909        "..\..\..\pjlib\include\pj\errno.h"\ 
     7910        "..\..\..\pjlib\include\pj\except.h"\ 
     7911        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7912        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7913        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7914        "..\..\..\pjlib\include\pj\guid.h"\ 
     7915        "..\..\..\pjlib\include\pj\hash.h"\ 
     7916        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7917        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7918        "..\..\..\pjlib\include\pj\list.h"\ 
     7919        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7920        "..\..\..\pjlib\include\pj\lock.h"\ 
     7921        "..\..\..\pjlib\include\pj\log.h"\ 
     7922        "..\..\..\pjlib\include\pj\os.h"\ 
     7923        "..\..\..\pjlib\include\pj\pool.h"\ 
     7924        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     7925        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     7926        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     7927        "..\..\..\pjlib\include\pj\rand.h"\ 
     7928        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     7929        "..\..\..\pjlib\include\pj\sock.h"\ 
     7930        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     7931        "..\..\..\pjlib\include\pj\string.h"\ 
     7932        "..\..\..\pjlib\include\pj\string_i.h"\ 
     7933        "..\..\..\pjlib\include\pj\timer.h"\ 
     7934        "..\..\..\pjlib\include\pj\types.h"\ 
     7935        "..\..\..\pjlib\include\pj\unicode.h"\ 
     7936        "..\..\..\pjlib\include\pjlib.h"\ 
     7937        "..\..\include\pjnath\config.h"\ 
     7938        "..\..\include\pjnath\stun_auth.h"\ 
     7939        "..\..\include\pjnath\stun_config.h"\ 
     7940        "..\..\include\pjnath\stun_msg.h"\ 
     7941        "..\..\include\pjnath\stun_session.h"\ 
     7942        "..\..\include\pjnath\stun_transaction.h"\ 
     7943        "..\..\include\pjnath\turn_session.h"\ 
     7944        "..\..\include\pjnath\turn_sock.h"\ 
     7945        "..\..\include\pjnath\types.h"\ 
     7946         
     7947 
     7948!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE ARMV4T) Debug" 
     7949 
     7950DEP_CPP_TURN_S=\ 
     7951        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     7952        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     7953        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     7954        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     7955        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     7956        "..\..\..\pjlib\include\pj\array.h"\ 
     7957        "..\..\..\pjlib\include\pj\assert.h"\ 
     7958        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     7959        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     7960        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     7961        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     7962        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     7963        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     7964        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     7965        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     7966        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     7967        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     7968        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     7969        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     7970        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     7971        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     7972        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     7973        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     7974        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     7975        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     7976        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     7977        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     7978        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     7979        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     7980        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     7981        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     7982        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     7983        "..\..\..\pjlib\include\pj\config.h"\ 
     7984        "..\..\..\pjlib\include\pj\config_site.h"\ 
     7985        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     7986        "..\..\..\pjlib\include\pj\ctype.h"\ 
     7987        "..\..\..\pjlib\include\pj\errno.h"\ 
     7988        "..\..\..\pjlib\include\pj\except.h"\ 
     7989        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     7990        "..\..\..\pjlib\include\pj\file_access.h"\ 
     7991        "..\..\..\pjlib\include\pj\file_io.h"\ 
     7992        "..\..\..\pjlib\include\pj\guid.h"\ 
     7993        "..\..\..\pjlib\include\pj\hash.h"\ 
     7994        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     7995        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     7996        "..\..\..\pjlib\include\pj\list.h"\ 
     7997        "..\..\..\pjlib\include\pj\list_i.h"\ 
     7998        "..\..\..\pjlib\include\pj\lock.h"\ 
     7999        "..\..\..\pjlib\include\pj\log.h"\ 
     8000        "..\..\..\pjlib\include\pj\os.h"\ 
     8001        "..\..\..\pjlib\include\pj\pool.h"\ 
     8002        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     8003        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     8004        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     8005        "..\..\..\pjlib\include\pj\rand.h"\ 
     8006        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     8007        "..\..\..\pjlib\include\pj\sock.h"\ 
     8008        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     8009        "..\..\..\pjlib\include\pj\string.h"\ 
     8010        "..\..\..\pjlib\include\pj\string_i.h"\ 
     8011        "..\..\..\pjlib\include\pj\timer.h"\ 
     8012        "..\..\..\pjlib\include\pj\types.h"\ 
     8013        "..\..\..\pjlib\include\pj\unicode.h"\ 
     8014        "..\..\..\pjlib\include\pjlib.h"\ 
     8015        "..\..\include\pjnath\config.h"\ 
     8016        "..\..\include\pjnath\stun_auth.h"\ 
     8017        "..\..\include\pjnath\stun_config.h"\ 
     8018        "..\..\include\pjnath\stun_msg.h"\ 
     8019        "..\..\include\pjnath\stun_session.h"\ 
     8020        "..\..\include\pjnath\stun_transaction.h"\ 
     8021        "..\..\include\pjnath\turn_session.h"\ 
     8022        "..\..\include\pjnath\turn_sock.h"\ 
     8023        "..\..\include\pjnath\types.h"\ 
     8024         
     8025 
     8026!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE x86) Release" 
     8027 
     8028DEP_CPP_TURN_S=\ 
     8029        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     8030        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     8031        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     8032        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     8033        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     8034        "..\..\..\pjlib\include\pj\array.h"\ 
     8035        "..\..\..\pjlib\include\pj\assert.h"\ 
     8036        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     8037        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     8038        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     8039        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     8040        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     8041        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     8042        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     8043        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     8044        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     8045        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     8046        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     8047        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     8048        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     8049        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     8050        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     8051        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     8052        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     8053        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     8054        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     8055        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     8056        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     8057        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     8058        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     8059        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     8060        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     8061        "..\..\..\pjlib\include\pj\config.h"\ 
     8062        "..\..\..\pjlib\include\pj\config_site.h"\ 
     8063        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     8064        "..\..\..\pjlib\include\pj\ctype.h"\ 
     8065        "..\..\..\pjlib\include\pj\errno.h"\ 
     8066        "..\..\..\pjlib\include\pj\except.h"\ 
     8067        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     8068        "..\..\..\pjlib\include\pj\file_access.h"\ 
     8069        "..\..\..\pjlib\include\pj\file_io.h"\ 
     8070        "..\..\..\pjlib\include\pj\guid.h"\ 
     8071        "..\..\..\pjlib\include\pj\hash.h"\ 
     8072        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     8073        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     8074        "..\..\..\pjlib\include\pj\list.h"\ 
     8075        "..\..\..\pjlib\include\pj\list_i.h"\ 
     8076        "..\..\..\pjlib\include\pj\lock.h"\ 
     8077        "..\..\..\pjlib\include\pj\log.h"\ 
     8078        "..\..\..\pjlib\include\pj\os.h"\ 
     8079        "..\..\..\pjlib\include\pj\pool.h"\ 
     8080        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     8081        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     8082        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     8083        "..\..\..\pjlib\include\pj\rand.h"\ 
     8084        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     8085        "..\..\..\pjlib\include\pj\sock.h"\ 
     8086        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     8087        "..\..\..\pjlib\include\pj\string.h"\ 
     8088        "..\..\..\pjlib\include\pj\string_i.h"\ 
     8089        "..\..\..\pjlib\include\pj\timer.h"\ 
     8090        "..\..\..\pjlib\include\pj\types.h"\ 
     8091        "..\..\..\pjlib\include\pj\unicode.h"\ 
     8092        "..\..\..\pjlib\include\pjlib.h"\ 
     8093        "..\..\include\pjnath\config.h"\ 
     8094        "..\..\include\pjnath\stun_auth.h"\ 
     8095        "..\..\include\pjnath\stun_config.h"\ 
     8096        "..\..\include\pjnath\stun_msg.h"\ 
     8097        "..\..\include\pjnath\stun_session.h"\ 
     8098        "..\..\include\pjnath\stun_transaction.h"\ 
     8099        "..\..\include\pjnath\turn_session.h"\ 
     8100        "..\..\include\pjnath\turn_sock.h"\ 
     8101        "..\..\include\pjnath\types.h"\ 
     8102         
     8103 
     8104!ELSEIF  "$(CFG)" == "pjnath_wince - Win32 (WCE x86) Debug" 
     8105 
     8106DEP_CPP_TURN_S=\ 
     8107        "..\..\..\pjlib-util\include\pjlib-util\config.h"\ 
     8108        "..\..\..\pjlib-util\include\pjlib-util\dns.h"\ 
     8109        "..\..\..\pjlib-util\include\pjlib-util\resolver.h"\ 
     8110        "..\..\..\pjlib-util\include\pjlib-util\types.h"\ 
     8111        "..\..\..\pjlib\include\pj\addr_resolv.h"\ 
     8112        "..\..\..\pjlib\include\pj\array.h"\ 
     8113        "..\..\..\pjlib\include\pj\assert.h"\ 
     8114        "..\..\..\pjlib\include\pj\compat\assert.h"\ 
     8115        "..\..\..\pjlib\include\pj\compat\cc_armcc.h"\ 
     8116        "..\..\..\pjlib\include\pj\compat\cc_codew.h"\ 
     8117        "..\..\..\pjlib\include\pj\compat\cc_gcc.h"\ 
     8118        "..\..\..\pjlib\include\pj\compat\cc_gcce.h"\ 
     8119        "..\..\..\pjlib\include\pj\compat\cc_msvc.h"\ 
     8120        "..\..\..\pjlib\include\pj\compat\cc_mwcc.h"\ 
     8121        "..\..\..\pjlib\include\pj\compat\ctype.h"\ 
     8122        "..\..\..\pjlib\include\pj\compat\errno.h"\ 
     8123        "..\..\..\pjlib\include\pj\compat\high_precision.h"\ 
     8124        "..\..\..\pjlib\include\pj\compat\m_auto.h"\ 
     8125        "..\..\..\pjlib\include\pj\compat\os_auto.h"\ 
     8126        "..\..\..\pjlib\include\pj\compat\os_darwinos.h"\ 
     8127        "..\..\..\pjlib\include\pj\compat\os_linux.h"\ 
     8128        "..\..\..\pjlib\include\pj\compat\os_linux_kernel.h"\ 
     8129        "..\..\..\pjlib\include\pj\compat\os_palmos.h"\ 
     8130        "..\..\..\pjlib\include\pj\compat\os_rtems.h"\ 
     8131        "..\..\..\pjlib\include\pj\compat\os_sunos.h"\ 
     8132        "..\..\..\pjlib\include\pj\compat\os_symbian.h"\ 
     8133        "..\..\..\pjlib\include\pj\compat\os_win32.h"\ 
     8134        "..\..\..\pjlib\include\pj\compat\os_win32_wince.h"\ 
     8135        "..\..\..\pjlib\include\pj\compat\setjmp.h"\ 
     8136        "..\..\..\pjlib\include\pj\compat\size_t.h"\ 
     8137        "..\..\..\pjlib\include\pj\compat\stdarg.h"\ 
     8138        "..\..\..\pjlib\include\pj\compat\string.h"\ 
     8139        "..\..\..\pjlib\include\pj\config.h"\ 
     8140        "..\..\..\pjlib\include\pj\config_site.h"\ 
     8141        "..\..\..\pjlib\include\pj\config_site_sample.h"\ 
     8142        "..\..\..\pjlib\include\pj\ctype.h"\ 
     8143        "..\..\..\pjlib\include\pj\errno.h"\ 
     8144        "..\..\..\pjlib\include\pj\except.h"\ 
     8145        "..\..\..\pjlib\include\pj\fifobuf.h"\ 
     8146        "..\..\..\pjlib\include\pj\file_access.h"\ 
     8147        "..\..\..\pjlib\include\pj\file_io.h"\ 
     8148        "..\..\..\pjlib\include\pj\guid.h"\ 
     8149        "..\..\..\pjlib\include\pj\hash.h"\ 
     8150        "..\..\..\pjlib\include\pj\ioqueue.h"\ 
     8151        "..\..\..\pjlib\include\pj\ip_helper.h"\ 
     8152        "..\..\..\pjlib\include\pj\list.h"\ 
     8153        "..\..\..\pjlib\include\pj\list_i.h"\ 
     8154        "..\..\..\pjlib\include\pj\lock.h"\ 
     8155        "..\..\..\pjlib\include\pj\log.h"\ 
     8156        "..\..\..\pjlib\include\pj\os.h"\ 
     8157        "..\..\..\pjlib\include\pj\pool.h"\ 
     8158        "..\..\..\pjlib\include\pj\pool_alt.h"\ 
     8159        "..\..\..\pjlib\include\pj\pool_buf.h"\ 
     8160        "..\..\..\pjlib\include\pj\pool_i.h"\ 
     8161        "..\..\..\pjlib\include\pj\rand.h"\ 
     8162        "..\..\..\pjlib\include\pj\rbtree.h"\ 
     8163        "..\..\..\pjlib\include\pj\sock.h"\ 
     8164        "..\..\..\pjlib\include\pj\sock_select.h"\ 
     8165        "..\..\..\pjlib\include\pj\string.h"\ 
     8166        "..\..\..\pjlib\include\pj\string_i.h"\ 
     8167        "..\..\..\pjlib\include\pj\timer.h"\ 
     8168        "..\..\..\pjlib\include\pj\types.h"\ 
     8169        "..\..\..\pjlib\include\pj\unicode.h"\ 
     8170        "..\..\..\pjlib\include\pjlib.h"\ 
     8171        "..\..\include\pjnath\config.h"\ 
     8172        "..\..\include\pjnath\stun_auth.h"\ 
     8173        "..\..\include\pjnath\stun_config.h"\ 
     8174        "..\..\include\pjnath\stun_msg.h"\ 
     8175        "..\..\include\pjnath\stun_session.h"\ 
     8176        "..\..\include\pjnath\stun_transaction.h"\ 
     8177        "..\..\include\pjnath\turn_session.h"\ 
     8178        "..\..\include\pjnath\turn_sock.h"\ 
    65448179        "..\..\include\pjnath\types.h"\ 
    65458180         
     
    65958230 
    65968231SOURCE=..\..\include\pjnath\stun_transaction.h 
     8232# End Source File 
     8233# Begin Source File 
     8234 
     8235SOURCE=..\..\include\pjnath\turn_session.h 
     8236# End Source File 
     8237# Begin Source File 
     8238 
     8239SOURCE=..\..\include\pjnath\turn_sock.h 
    65978240# End Source File 
    65988241# Begin Source File 
  • pjproject/trunk/pjnath/include/pjnath.h

    r1867 r1913  
    2929#include <pjnath/stun_transaction.h> 
    3030#include <pjnath/turn_session.h> 
    31 #include <pjnath/turn_udp.h> 
     31#include <pjnath/turn_sock.h> 
    3232#include <pjnath/types.h> 
    3333 
  • pjproject/trunk/pjnath/include/pjnath/stun_session.h

    r1877 r1913  
    6565     * 
    6666     * @param sess          The STUN session. 
     67     * @param token         The token associated with this outgoing message 
     68     *                      and was set by the application. This token was  
     69     *                      set by application in pj_stun_session_send_msg() 
     70     *                      for outgoing messages that are initiated by the 
     71     *                      application, or in pj_stun_session_on_rx_pkt() 
     72     *                      if this message is a response that was internally 
     73     *                      generated by the STUN session (for example, an 
     74     *                      401/Unauthorized response). Application may use 
     75     *                      this facility for any purposes. 
    6776     * @param pkt           Packet to be sent. 
    6877     * @param pkt_size      Size of the packet to be sent. 
     
    7483     */ 
    7584    pj_status_t (*on_send_msg)(pj_stun_session *sess, 
     85                               void *token, 
    7686                               const void *pkt, 
    7787                               pj_size_t pkt_size, 
     
    8090 
    8191    /**  
    82      * Callback to be called on incoming STUN request message. In the  
     92     * Callback to be called on incoming STUN request message. This function 
     93     * is called when application calls pj_stun_session_on_rx_pkt() and when 
     94     * the STUN session has detected that the incoming STUN message is a 
     95     * STUN request message. In the  
    8396     * callback processing, application MUST create a response by calling 
    8497     * pj_stun_session_create_response() function and send the response 
     
    90103     * @param pkt_len       Length of the STUN packet. 
    91104     * @param rdata         Data containing incoming request message. 
     105     * @param token         The token that was set by the application when 
     106     *                      calling pj_stun_session_on_rx_pkt() function. 
    92107     * @param src_addr      Source address of the packet. 
    93108     * @param src_addr_len  Length of the source address. 
     
    101116                                 unsigned pkt_len, 
    102117                                 const pj_stun_rx_data *rdata, 
     118                                 void *token, 
    103119                                 const pj_sockaddr_t *src_addr, 
    104120                                 unsigned src_addr_len); 
     
    106122    /** 
    107123     * Callback to be called when response is received or the transaction  
    108      * has timed out. 
     124     * has timed out. This callback is called either when application calls 
     125     * pj_stun_session_on_rx_pkt() with the packet containing a STUN 
     126     * response for the client transaction, or when the internal timer of 
     127     * the STUN client transaction has timed-out before a STUN response is 
     128     * received. 
    109129     * 
    110130     * @param sess          The STUN session. 
     
    116136     *                      response may contain non-NULL value if the  
    117137     *                      response contains STUN ERROR-CODE attribute. 
     138     * @param token         The token that was set by the application  when 
     139     *                      calling pj_stun_session_send_msg() function. 
     140     *                      Please not that this token IS NOT the token 
     141     *                      that was given in pj_stun_session_on_rx_pkt(). 
    118142     * @param tdata         The original STUN request. 
    119143     * @param response      The response message, on successful transaction, 
     
    128152    void (*on_request_complete)(pj_stun_session *sess, 
    129153                                pj_status_t status, 
     154                                void *token, 
    130155                                pj_stun_tx_data *tdata, 
    131156                                const pj_stun_msg *response, 
     
    135160 
    136161    /** 
    137      * Type of callback to be called on incoming STUN indication. 
     162     * Callback to be called on incoming STUN request message. This function 
     163     * is called when application calls pj_stun_session_on_rx_pkt() and when 
     164     * the STUN session has detected that the incoming STUN message is a 
     165     * STUN indication message. 
     166     * 
     167     * @param sess          The STUN session. 
     168     * @param pkt           Pointer to the original STUN packet. 
     169     * @param pkt_len       Length of the STUN packet. 
     170     * @param msg           The parsed STUN indication. 
     171     * @param token         The token that was set by the application when 
     172     *                      calling pj_stun_session_on_rx_pkt() function. 
     173     * @param src_addr      Source address of the packet. 
     174     * @param src_addr_len  Length of the source address. 
     175     * 
     176     * @return              The return value of this callback will be 
     177     *                      returned back to pj_stun_session_on_rx_pkt() 
     178     *                      function. 
    138179     */ 
    139180    pj_status_t (*on_rx_indication)(pj_stun_session *sess, 
     
    141182                                    unsigned pkt_len, 
    142183                                    const pj_stun_msg *msg, 
     184                                    void *token, 
    143185                                    const pj_sockaddr_t *src_addr, 
    144186                                    unsigned src_addr_len); 
     
    178220    pj_stun_msg         *msg;           /**< The STUN message.              */ 
    179221 
    180     void                *user_data;     /**< Arbitrary application data.    */ 
     222    void                *token;         /**< The token.                     */ 
    181223 
    182224    pj_stun_client_tsx  *client_tsx;    /**< Client STUN transaction.       */ 
     225    pj_bool_t            retransmit;    /**< Retransmit request?            */ 
    183226    pj_uint32_t          msg_magic;     /**< Message magic.                 */ 
    184227    pj_uint8_t           msg_key[12];   /**< Message/transaction key.       */ 
     
    369412 * 
    370413 * @param sess      The STUN session instance. 
    371  * @param cache_res If PJ_TRUE then response will be cached. 
     414 * @param token     Optional token which will be given back to application in 
     415 *                  \a on_send_msg() callback and \a on_request_complete() 
     416 *                  callback, if the message is a STUN request message.  
     417 *                  Internally this function will put the token in the  
     418 *                  \a token field of pj_stun_tx_data, hence it will 
     419 *                  overwrite any value that the application puts there. 
     420 * @param cache_res If the message is a response message for an incoming 
     421 *                  request, specify PJ_TRUE to instruct the STUN session 
     422 *                  to cache this response for subsequent incoming request 
     423 *                  retransmission. Otherwise this parameter will be ignored 
     424 *                  for non-response message. 
     425 * @param retransmit If the message is a request message, specify whether the 
     426 *                  request should be retransmitted. Normally application will 
     427 *                  specify TRUE if the underlying transport is UDP and FALSE 
     428 *                  if the underlying transport is TCP or TLS. 
    372429 * @param dst_addr  The destination socket address. 
    373430 * @param addr_len  Length of destination address. 
     
    378435 */ 
    379436PJ_DECL(pj_status_t) pj_stun_session_send_msg(pj_stun_session *sess, 
     437                                              void *token, 
    380438                                              pj_bool_t cache_res, 
     439                                              pj_bool_t retransmit, 
    381440                                              const pj_sockaddr_t *dst_addr, 
    382441                                              unsigned addr_len, 
     
    384443 
    385444/** 
    386  * Create and send STUN response message. 
     445 * This is a utility function to create and send response for an incoming 
     446 * STUN request. Internally this function calls pj_stun_session_create_res() 
     447 * and pj_stun_session_send_msg(). It is provided here as a matter of 
     448 * convenience. 
    387449 * 
    388450 * @param sess      The STUN session instance. 
     
    396458 *                  \a err_code is non-zero, then default error message will 
    397459 *                  be used. 
     460 * @param token     Optional token which will be given back to application in 
     461 *                  \a on_send_msg() callback and \a on_request_complete() 
     462 *                  callback, if the message is a STUN request message.  
     463 *                  Internally this function will put the token in the  
     464 *                  \a token field of pj_stun_tx_data, hence it will 
     465 *                  overwrite any value that the application puts there. 
    398466 * @param cache     Specify whether session should cache this response for 
    399467 *                  future request retransmission. If TRUE, subsequent request 
     
    410478                                             unsigned code,  
    411479                                             const char *err_msg, 
     480                                             void *token, 
    412481                                             pj_bool_t cache,  
    413482                                             const pj_sockaddr_t *dst_addr,  
     
    469538 *                      STUN message (useful if packet is received via a 
    470539 *                      stream oriented protocol). 
    471  * @param src_addr      The source address of the packet. 
     540 * @param token         Optional token which will be given back to application 
     541 *                      in the \a on_rx_request(), \a on_rx_indication() and  
     542 *                      \a on_send_msg() callbacks. The token can be used to  
     543 *                      associate processing or incoming request or indication 
     544 *                      with some context. 
     545 * @param src_addr      The source address of the packet, which will also 
     546 *                      be given back to application callbacks, along with 
     547 *                      source address length. 
    472548 * @param src_addr_len  Length of the source address. 
    473549 * 
     
    478554                                               pj_size_t pkt_size, 
    479555                                               unsigned options, 
     556                                               void *token, 
    480557                                               unsigned *parsed_len, 
    481558                                               const pj_sockaddr_t *src_addr, 
  • pjproject/trunk/pjnath/include/pjnath/turn_session.h

    r1880 r1913  
    5656 
    5757 
    58 /** TURN transport types */ 
     58/**  
     59 * TURN transport types, which will be used both to specify the connection  
     60 * type for reaching TURN server and the type of allocation transport to be  
     61 * requested to server (the REQUESTED-TRANSPORT attribute). 
     62 */ 
    5963typedef enum pj_turn_tp_type 
    6064{ 
    61     PJ_TURN_TP_UDP = 17,    /**< UDP.   */ 
    62     PJ_TURN_TP_TCP = 6,     /**< TCP.   */ 
    63     PJ_TURN_TP_TLS = 256    /**< TLS.   */ 
     65    /** 
     66     * UDP transport, which value corresponds to IANA protocol number. 
     67     */ 
     68    PJ_TURN_TP_UDP = 17, 
     69 
     70    /** 
     71     * TCP transport, which value corresponds to IANA protocol number. 
     72     */ 
     73    PJ_TURN_TP_TCP = 6, 
     74 
     75    /** 
     76     * TLS transport. The TLS transport will only be used as the connection 
     77     * type to reach the server and never as the allocation transport type. 
     78     */ 
     79    PJ_TURN_TP_TLS = 255 
     80 
    6481} pj_turn_tp_type; 
    6582 
     
    219236} pj_turn_session_info; 
    220237 
     238 
     239/** 
     240 * Create default pj_turn_alloc_param. 
     241 */ 
     242PJ_DECL(void) pj_turn_alloc_param_default(pj_turn_alloc_param *prm); 
     243 
     244/** 
     245 * Duplicate pj_turn_alloc_param. 
     246 */ 
     247PJ_DECL(void) pj_turn_alloc_param_copy(pj_pool_t *pool,  
     248                                       pj_turn_alloc_param *dst, 
     249                                       const pj_turn_alloc_param *src); 
    221250 
    222251/** 
     
    240269 
    241270/** 
    242  * Destroy TURN client session. 
     271 * Shutdown TURN client session. 
     272 */ 
     273PJ_DECL(pj_status_t) pj_turn_session_shutdown(pj_turn_session *sess); 
     274 
     275 
     276/** 
     277 * Forcefully destroy the TURN session. 
    243278 */ 
    244279PJ_DECL(pj_status_t) pj_turn_session_destroy(pj_turn_session *sess); 
  • pjproject/trunk/pjnath/src/pjnath/ice_session.c

    r1877 r1913  
    114114/* These are the callbacks registered to the STUN sessions */ 
    115115static pj_status_t on_stun_send_msg(pj_stun_session *sess, 
     116                                    void *token, 
    116117                                    const void *pkt, 
    117118                                    pj_size_t pkt_size, 
     
    122123                                      unsigned pkt_len, 
    123124                                      const pj_stun_rx_data *rdata, 
     125                                      void *token, 
    124126                                      const pj_sockaddr_t *src_addr, 
    125127                                      unsigned src_addr_len); 
    126128static void on_stun_request_complete(pj_stun_session *stun_sess, 
    127129                                     pj_status_t status, 
     130                                     void *token, 
    128131                                     pj_stun_tx_data *tdata, 
    129132                                     const pj_stun_msg *response, 
     
    134137                                         unsigned pkt_len, 
    135138                                         const pj_stun_msg *msg, 
     139                                         void *token, 
    136140                                         const pj_sockaddr_t *src_addr, 
    137141                                         unsigned src_addr_len); 
     
    13931397    rd->clist = clist; 
    13941398    rd->ckid = check_id; 
    1395     check->tdata->user_data = (void*) rd; 
    13961399 
    13971400    /* Add PRIORITY */ 
     
    14251428 
    14261429    /* Initiate STUN transaction to send the request */ 
    1427     status = pj_stun_session_send_msg(comp->stun_sess, PJ_FALSE,  
    1428                                       &rcand->addr,  
     1430    status = pj_stun_session_send_msg(comp->stun_sess, (void*)rd, PJ_FALSE,  
     1431                                      PJ_TRUE, &rcand->addr,  
    14291432                                      sizeof(pj_sockaddr_in), check->tdata); 
    14301433    if (status != PJ_SUCCESS) { 
     
    16451648 */ 
    16461649static pj_status_t on_stun_send_msg(pj_stun_session *sess, 
     1650                                    void *token, 
    16471651                                    const void *pkt, 
    16481652                                    pj_size_t pkt_size, 
     
    16521656    stun_data *sd = (stun_data*) pj_stun_session_get_user_data(sess); 
    16531657    pj_ice_sess *ice = sd->ice; 
     1658 
     1659    PJ_UNUSED_ARG(token); 
     1660 
    16541661    return (*ice->cb.on_tx_pkt)(ice, sd->comp_id,  
    16551662                                pkt, pkt_size,  
     
    16611668static void on_stun_request_complete(pj_stun_session *stun_sess, 
    16621669                                     pj_status_t status, 
     1670                                     void *token, 
    16631671                                     pj_stun_tx_data *tdata, 
    16641672                                     const pj_stun_msg *response, 
     
    16661674                                     unsigned src_addr_len) 
    16671675{ 
    1668     struct req_data *rd = (struct req_data*) tdata->user_data; 
     1676    struct req_data *rd = (struct req_data*) token; 
    16691677    pj_ice_sess *ice; 
    16701678    pj_ice_sess_check *check, *new_check; 
     
    19061914                                      unsigned pkt_len, 
    19071915                                      const pj_stun_rx_data *rdata, 
     1916                                      void *token, 
    19081917                                      const pj_sockaddr_t *src_addr, 
    19091918                                      unsigned src_addr_len) 
     
    19211930    PJ_UNUSED_ARG(pkt); 
    19221931    PJ_UNUSED_ARG(pkt_len); 
     1932    PJ_UNUSED_ARG(token); 
    19231933 
    19241934    /* Reject any requests except Binding request */ 
    19251935    if (msg->hdr.type != PJ_STUN_BINDING_REQUEST) { 
    1926         status = pj_stun_session_create_res(sess, rdata,  
    1927                                             PJ_STUN_SC_BAD_REQUEST, 
    1928                                             NULL, &tdata); 
    1929         if (status != PJ_SUCCESS) 
    1930             return status; 
    1931  
    1932         return pj_stun_session_send_msg(sess, PJ_TRUE,  
    1933                                         src_addr, src_addr_len, tdata); 
     1936        pj_stun_session_respond(sess, rdata, PJ_STUN_SC_BAD_REQUEST,  
     1937                                NULL, NULL, PJ_TRUE,  
     1938                                src_addr, src_addr_len); 
     1939        return PJ_SUCCESS; 
    19341940    } 
    19351941 
     
    19952001        } else { 
    19962002            /* Generate 487 response */ 
    1997             status = pj_stun_session_create_res(sess, rdata,  
    1998                                                 PJ_STUN_SC_ROLE_CONFLICT, 
    1999                                                 NULL, &tdata); 
    2000             if (status == PJ_SUCCESS) { 
    2001                 pj_stun_session_send_msg(sess, PJ_TRUE,  
    2002                                          src_addr, src_addr_len, tdata); 
    2003             } 
     2003            pj_stun_session_respond(sess, rdata, PJ_STUN_SC_ROLE_CONFLICT,  
     2004                                    NULL, NULL, PJ_TRUE,  
     2005                                    src_addr, src_addr_len); 
    20042006            pj_mutex_unlock(ice->mutex); 
    20052007            return PJ_SUCCESS; 
     
    20112013        if (pj_cmp_timestamp(&ice->tie_breaker, &role_attr->value) < 0) { 
    20122014            /* Generate 487 response */ 
    2013             status = pj_stun_session_create_res(sess, rdata,  
    2014                                                 PJ_STUN_SC_ROLE_CONFLICT, 
    2015                                                 NULL, &tdata); 
    2016             if (status == PJ_SUCCESS) { 
    2017                 pj_stun_session_send_msg(sess, PJ_TRUE,  
    2018                                          src_addr, src_addr_len, tdata); 
    2019             } 
     2015            pj_stun_session_respond(sess, rdata, PJ_STUN_SC_ROLE_CONFLICT,  
     2016                                    NULL, NULL, PJ_TRUE,  
     2017                                    src_addr, src_addr_len); 
    20202018            pj_mutex_unlock(ice->mutex); 
    20212019            return PJ_SUCCESS; 
     
    20412039                                           PJ_TRUE, src_addr, src_addr_len); 
    20422040 
    2043     status = pj_stun_session_send_msg(sess, PJ_TRUE,  
     2041    status = pj_stun_session_send_msg(sess, NULL, PJ_TRUE, PJ_TRUE, 
    20442042                                      src_addr, src_addr_len, tdata); 
    20452043 
     
    22872285                                         unsigned pkt_len, 
    22882286                                         const pj_stun_msg *msg, 
     2287                                         void *token, 
    22892288                                         const pj_sockaddr_t *src_addr, 
    22902289                                         unsigned src_addr_len) 
     
    22942293    PJ_UNUSED_ARG(pkt_len); 
    22952294    PJ_UNUSED_ARG(msg); 
     2295    PJ_UNUSED_ARG(token); 
    22962296    PJ_UNUSED_ARG(src_addr); 
    22972297    PJ_UNUSED_ARG(src_addr_len); 
     
    23682368    if (stun_status == PJ_SUCCESS) { 
    23692369        status = pj_stun_session_on_rx_pkt(comp->stun_sess, pkt, pkt_size, 
    2370                                            PJ_STUN_IS_DATAGRAM, 
     2370                                           PJ_STUN_IS_DATAGRAM, NULL, 
    23712371                                           NULL, src_addr, src_addr_len); 
    23722372        if (status != PJ_SUCCESS) { 
  • pjproject/trunk/pjnath/src/pjnath/ice_strans.c

    r1790 r1913  
    6161/* STUN session callback */ 
    6262static pj_status_t stun_on_send_msg(pj_stun_session *sess, 
     63                                    void *token, 
    6364                                    const void *pkt, 
    6465                                    pj_size_t pkt_size, 
     
    6768static void stun_on_request_complete(pj_stun_session *sess, 
    6869                                     pj_status_t status, 
     70                                     void *token, 
    6971                                     pj_stun_tx_data *tdata, 
    7072                                     const pj_stun_msg *response, 
     
    491493                                                   bytes_read,  
    492494                                                   PJ_STUN_IS_DATAGRAM, NULL, 
    493                                                    &comp->src_addr,  
     495                                                   NULL, &comp->src_addr,  
    494496                                                   comp->src_addr_len); 
    495497            } else if (ice_st->ice) { 
     
    601603        //tdata->user_data = NULL; 
    602604 
    603         // We need this to support mapped address change 
    604         tdata->user_data = &comp->cand_list[j]; 
    605605        ++comp->pending_cnt; 
    606606 
     
    610610                  pj_inet_ntoa(comp->local_addr.ipv4.sin_addr), 
    611611                  pj_ntohs(comp->local_addr.ipv4.sin_port))); 
    612         status = pj_stun_session_send_msg(comp->stun_sess, PJ_FALSE,  
    613                                           &ice_st->stun_srv,  
     612        status = pj_stun_session_send_msg(comp->stun_sess, &comp->cand_list[j], 
     613                                          PJ_FALSE, PJ_TRUE, &ice_st->stun_srv, 
    614614                                          sizeof(pj_sockaddr_in), tdata); 
    615615        if (status != PJ_SUCCESS) { 
     
    701701        return status; 
    702702 
    703     /* Attach alias instance to tdata */ 
     703    /* Will be attached to tdata in send_msg() */ 
    704704    cand = &comp->cand_list[comp->cand_cnt]; 
    705     tdata->user_data = (void*)cand; 
    706705 
    707706    /* Add pending count first, since stun_on_request_complete() 
     
    721720 
    722721    /* Send STUN binding request */ 
    723     status = pj_stun_session_send_msg(comp->stun_sess, PJ_FALSE,  
    724                                       &ice_st->stun_srv,  
     722    status = pj_stun_session_send_msg(comp->stun_sess, (void*)cand, PJ_FALSE,  
     723                                      PJ_TRUE, &ice_st->stun_srv,  
    725724                                      sizeof(pj_sockaddr_in), tdata); 
    726725    if (status != PJ_SUCCESS) { 
     
    10791078 */ 
    10801079static pj_status_t stun_on_send_msg(pj_stun_session *sess, 
     1080                                    void *token, 
    10811081                                    const void *pkt, 
    10821082                                    pj_size_t size, 
     
    10871087    pj_ssize_t pkt_size; 
    10881088    pj_status_t status; 
     1089 
     1090    PJ_UNUSED_ARG(token); 
    10891091 
    10901092    comp = (pj_ice_strans_comp*) pj_stun_session_get_user_data(sess); 
     
    11031105static void stun_on_request_complete(pj_stun_session *sess, 
    11041106                                     pj_status_t status, 
     1107                                     void *token, 
    11051108                                     pj_stun_tx_data *tdata, 
    11061109                                     const pj_stun_msg *response, 
     
    11161119 
    11171120    comp = (pj_ice_strans_comp*) pj_stun_session_get_user_data(sess); 
    1118     cand = (pj_ice_strans_cand*) tdata->user_data; 
    1119  
     1121    cand = (pj_ice_strans_cand*) token; 
     1122 
     1123    PJ_UNUSED_ARG(token); 
     1124    PJ_UNUSED_ARG(tdata); 
    11201125    PJ_UNUSED_ARG(src_addr); 
    11211126    PJ_UNUSED_ARG(src_addr_len); 
  • pjproject/trunk/pjnath/src/pjnath/nat_detect.c

    r1654 r1913  
    114114static void on_request_complete(pj_stun_session *sess, 
    115115                                pj_status_t status, 
     116                                void *token, 
    116117                                pj_stun_tx_data *tdata, 
    117118                                const pj_stun_msg *response, 
     
    119120                                unsigned src_addr_len); 
    120121static pj_status_t on_send_msg(pj_stun_session *sess, 
     122                               void *token, 
    121123                               const void *pkt, 
    122124                               pj_size_t pkt_size, 
     
    415417        pj_stun_session_on_rx_pkt(sess->stun_sess, sess->rx_pkt, bytes_read, 
    416418                                  PJ_STUN_IS_DATAGRAM|PJ_STUN_CHECK_PACKET,  
    417                                   NULL, &sess->src_addr, sess->src_addr_len); 
     419                                  NULL, NULL,  
     420                                  &sess->src_addr, sess->src_addr_len); 
    418421    } 
    419422 
     
    439442 */ 
    440443static pj_status_t on_send_msg(pj_stun_session *stun_sess, 
     444                               void *token, 
    441445                               const void *pkt, 
    442446                               pj_size_t pkt_size, 
     
    447451    pj_ssize_t pkt_len; 
    448452    pj_status_t status; 
     453 
     454    PJ_UNUSED_ARG(token); 
    449455 
    450456    sess = (nat_detect_session*) pj_stun_session_get_user_data(stun_sess); 
     
    463469static void on_request_complete(pj_stun_session *stun_sess, 
    464470                                pj_status_t status, 
     471                                void *token, 
    465472                                pj_stun_tx_data *tdata, 
    466473                                const pj_stun_msg *response, 
     
    475482    unsigned test_id; 
    476483 
     484    PJ_UNUSED_ARG(token); 
    477485    PJ_UNUSED_ARG(tdata); 
    478486    PJ_UNUSED_ARG(src_addr); 
     
    813821 
    814822    /* Send the request */ 
    815     status = pj_stun_session_send_msg(sess->stun_sess, PJ_TRUE,  
    816                                       sess->cur_server,  
     823    status = pj_stun_session_send_msg(sess->stun_sess, NULL, PJ_TRUE, 
     824                                      PJ_TRUE, sess->cur_server,  
    817825                                      sizeof(pj_sockaddr_in), 
    818826                                      sess->result[test_id].tdata); 
  • pjproject/trunk/pjnath/src/pjnath/stun_session.c

    r1903 r1913  
    350350 
    351351        /* Retry the request */ 
    352         status = pj_stun_session_send_msg(sess, PJ_TRUE, src_addr,  
     352        status = pj_stun_session_send_msg(sess, request->token, PJ_TRUE,  
     353                                          request->retransmit, src_addr,  
    353354                                          src_addr_len, tdata); 
    354355 
     
    378379 
    379380    if (notify_user && sess->cb.on_request_complete) { 
    380         (*sess->cb.on_request_complete)(sess, status, tdata,  
    381                                         response,  
    382                                         src_addr, src_addr_len); 
     381        (*sess->cb.on_request_complete)(sess, status, tdata->token, tdata,  
     382                                        response, src_addr, src_addr_len); 
    383383    } 
    384384 
     
    398398    tdata = (pj_stun_tx_data*) pj_stun_client_tsx_get_data(tsx); 
    399399 
    400     return tdata->sess->cb.on_send_msg(tdata->sess, stun_pkt, pkt_size, 
    401                                        tdata->dst_addr, tdata->addr_len); 
     400    return tdata->sess->cb.on_send_msg(tdata->sess, tdata->token, stun_pkt,  
     401                                       pkt_size, tdata->dst_addr,  
     402                                       tdata->addr_len); 
    402403} 
    403404 
     
    731732 
    732733PJ_DEF(pj_status_t) pj_stun_session_send_msg( pj_stun_session *sess, 
     734                                              void *token, 
    733735                                              pj_bool_t cache_res, 
     736                                              pj_bool_t retransmit, 
    734737                                              const pj_sockaddr_t *server, 
    735738                                              unsigned addr_len, 
     
    743746    tdata->max_len = PJ_STUN_MAX_PKT_LEN; 
    744747    tdata->pkt = pj_pool_alloc(tdata->pool, tdata->max_len); 
     748 
     749    tdata->token = token; 
     750    tdata->retransmit = retransmit; 
    745751 
    746752    /* Start locking the session now */ 
     
    788794 
    789795        /* Send the request! */ 
    790         status = pj_stun_client_tsx_send_msg(tdata->client_tsx, PJ_TRUE, 
     796        status = pj_stun_client_tsx_send_msg(tdata->client_tsx, retransmit, 
    791797                                             tdata->pkt, tdata->pkt_size); 
    792798        if (status != PJ_SUCCESS && status != PJ_EPENDING) { 
     
    829835     
    830836        /* Otherwise for non-request message, send directly to transport. */ 
    831         status = sess->cb.on_send_msg(sess, tdata->pkt, tdata->pkt_size, 
    832                                       server, addr_len); 
     837        status = sess->cb.on_send_msg(sess, token, tdata->pkt,  
     838                                      tdata->pkt_size, server, addr_len); 
    833839 
    834840        if (status != PJ_SUCCESS && status != PJ_EPENDING) { 
     
    855861                                             unsigned code,  
    856862                                             const char *errmsg, 
     863                                             void *token, 
    857864                                             pj_bool_t cache,  
    858865                                             const pj_sockaddr_t *dst_addr,  
     
    869876        return status; 
    870877 
    871     return pj_stun_session_send_msg(sess, cache, dst_addr,  addr_len, tdata); 
     878    return pj_stun_session_send_msg(sess, token, cache, PJ_FALSE, 
     879                                    dst_addr,  addr_len, tdata); 
    872880} 
    873881 
     
    888896 
    889897    if (notify) { 
    890         (sess->cb.on_request_complete)(sess, notify_status, tdata, NULL, 
    891                                        NULL, 0); 
     898        (sess->cb.on_request_complete)(sess, notify_status, tdata->token,  
     899                                       tdata, NULL, NULL, 0); 
    892900    } 
    893901 
     
    921929 
    922930/* Send response */ 
    923 static pj_status_t send_response(pj_stun_session *sess,  
     931static pj_status_t send_response(pj_stun_session *sess, void *token, 
    924932                                 pj_pool_t *pool, pj_stun_msg *response, 
    925933                                 const pj_stun_req_cred_info *auth_info, 
     
    954962 
    955963    /* Send packet */ 
    956     status = sess->cb.on_send_msg(sess, out_pkt, out_len, addr, addr_len); 
     964    status = sess->cb.on_send_msg(sess, token, out_pkt, out_len,  
     965                                  addr, addr_len); 
    957966 
    958967    return status; 
     
    961970/* Authenticate incoming message */ 
    962971static pj_status_t authenticate_req(pj_stun_session *sess, 
     972                                    void *token, 
    963973                                    const pj_uint8_t *pkt, 
    964974                                    unsigned pkt_len, 
     
    982992    if (status != PJ_SUCCESS && response != NULL) { 
    983993        PJ_LOG(5,(SNAME(sess), "Message authentication failed")); 
    984         send_response(sess, tmp_pool, response, &rdata->info, PJ_FALSE,  
    985                       src_addr, src_addr_len); 
     994        send_response(sess, token, tmp_pool, response, &rdata->info,  
     995                      PJ_FALSE, src_addr, src_addr_len); 
    986996    } 
    987997 
     
    10711081                 "Request retransmission, sending cached response")); 
    10721082 
    1073         send_response(sess, tmp_pool, t->msg, &t->auth_info, PJ_TRUE,  
    1074                       src_addr, src_addr_len); 
     1083        send_response(sess, t->token, tmp_pool, t->msg, &t->auth_info,  
     1084                      PJ_TRUE, src_addr, src_addr_len); 
    10751085        return PJ_SUCCESS; 
    10761086    } 
     
    10821092static pj_status_t on_incoming_request(pj_stun_session *sess, 
    10831093                                       unsigned options, 
     1094                                       void *token, 
    10841095                                       pj_pool_t *tmp_pool, 
    10851096                                       const pj_uint8_t *in_pkt, 
     
    11031114     */ 
    11041115    if ((options & PJ_STUN_NO_AUTHENTICATE) == 0) { 
    1105         status = authenticate_req(sess, (const pj_uint8_t*) in_pkt, in_pkt_len, 
    1106                                   &rdata, tmp_pool, src_addr, src_addr_len); 
     1116        status = authenticate_req(sess, token, (const pj_uint8_t*) in_pkt,  
     1117                                  in_pkt_len,&rdata, tmp_pool, src_addr,  
     1118                                  src_addr_len); 
    11071119        if (status != PJ_SUCCESS) { 
    11081120            return status; 
     
    11131125    if (sess->cb.on_rx_request) { 
    11141126        status = (*sess->cb.on_rx_request)(sess, in_pkt, in_pkt_len, &rdata, 
    1115                                            src_addr, src_addr_len); 
     1127                                           token, src_addr, src_addr_len); 
    11161128    } else { 
    11171129        pj_str_t err_text; 
     
    11231135                                             &err_text, &response); 
    11241136        if (status == PJ_SUCCESS && response) { 
    1125             status = send_response(sess, tmp_pool, response,  
     1137            status = send_response(sess, token, tmp_pool, response,  
    11261138                                   NULL, PJ_FALSE, src_addr, src_addr_len); 
    11271139        } 
     
    11341146/* Handle incoming indication */ 
    11351147static pj_status_t on_incoming_indication(pj_stun_session *sess, 
     1148                                          void *token, 
    11361149                                          pj_pool_t *tmp_pool, 
    11371150                                          const pj_uint8_t *in_pkt, 
     
    11461159    if (sess->cb.on_rx_indication) { 
    11471160        return (*sess->cb.on_rx_indication)(sess, in_pkt, in_pkt_len, msg, 
    1148                                             src_addr, src_addr_len); 
     1161                                            token, src_addr, src_addr_len); 
    11491162    } else { 
    11501163        return PJ_SUCCESS; 
     
    11571170                                              pj_size_t pkt_size, 
    11581171                                              unsigned options, 
     1172                                              void *token, 
    11591173                                              unsigned *parsed_len, 
    11601174                                              const pj_sockaddr_t *src_addr, 
     
    11811195        LOG_ERR_(sess, "STUN msg_decode() error", status); 
    11821196        if (response) { 
    1183             send_response(sess, tmp_pool, response, NULL, 
     1197            send_response(sess, token, tmp_pool, response, NULL, 
    11841198                          PJ_FALSE, src_addr, src_addr_len); 
    11851199        } 
     
    12181232    } else if (PJ_STUN_IS_REQUEST(msg->hdr.type)) { 
    12191233 
    1220         status = on_incoming_request(sess, options, tmp_pool,  
     1234        status = on_incoming_request(sess, options, token, tmp_pool,  
    12211235                                     (const pj_uint8_t*) packet, pkt_size,  
    12221236                                     msg, src_addr, src_addr_len); 
     
    12241238    } else if (PJ_STUN_IS_INDICATION(msg->hdr.type)) { 
    12251239 
    1226         status = on_incoming_indication(sess, tmp_pool,  
     1240        status = on_incoming_indication(sess, token, tmp_pool,  
    12271241                                        (const pj_uint8_t*) packet, pkt_size, 
    12281242                                        msg, src_addr, src_addr_len); 
  • pjproject/trunk/pjnath/src/pjnath/turn_session.c

    r1882 r1913  
    111111 */ 
    112112static void sess_shutdown(pj_turn_session *sess, 
    113                           pj_bool_t notify, 
    114113                          pj_status_t status); 
    115114static void do_destroy(pj_turn_session *sess); 
    116115static void send_refresh(pj_turn_session *sess, int lifetime); 
    117116static pj_status_t stun_on_send_msg(pj_stun_session *sess, 
     117                                    void *token, 
    118118                                    const void *pkt, 
    119119                                    pj_size_t pkt_size, 
     
    122122static void stun_on_request_complete(pj_stun_session *sess, 
    123123                                     pj_status_t status, 
     124                                     void *token, 
    124125                                     pj_stun_tx_data *tdata, 
    125126                                     const pj_stun_msg *response, 
     
    130131                                         unsigned pkt_len, 
    131132                                         const pj_stun_msg *msg, 
     133                                         void *token, 
    132134                                         const pj_sockaddr_t *src_addr, 
    133135                                         unsigned src_addr_len); 
     
    145147 
    146148 
    147 /** 
     149/* 
     150 * Create default pj_turn_alloc_param. 
     151 */ 
     152PJ_DEF(void) pj_turn_alloc_param_default(pj_turn_alloc_param *prm) 
     153{ 
     154    pj_bzero(prm, sizeof(*prm)); 
     155} 
     156 
     157/* 
     158 * Duplicate pj_turn_alloc_param. 
     159 */ 
     160PJ_DEF(void) pj_turn_alloc_param_copy( pj_pool_t *pool,  
     161                                       pj_turn_alloc_param *dst, 
     162                                       const pj_turn_alloc_param *src) 
     163{ 
     164    PJ_UNUSED_ARG(pool); 
     165    pj_memcpy(dst, src, sizeof(*dst)); 
     166} 
     167 
     168/* 
    148169 * Get TURN state name. 
    149170 */ 
     
    286307    pj_turn_state_t old_state = sess->state; 
    287308 
     309    if (state==sess->state) 
     310        return; 
     311 
    288312    PJ_LOG(4,(sess->obj_name, "State changed %s --> %s", 
    289313              state_names[old_state], state_names[state])); 
     
    299323 */ 
    300324static void sess_shutdown(pj_turn_session *sess, 
    301                           pj_bool_t notify, 
    302325                          pj_status_t status) 
    303326{ 
    304327    pj_bool_t can_destroy = PJ_TRUE; 
    305  
    306     PJ_UNUSED_ARG(notify); 
    307328 
    308329    PJ_LOG(4,(sess->obj_name, "Request to shutdown in state %s, cause:%d", 
     
    361382 * Public API to destroy TURN client session. 
    362383 */ 
    363 PJ_DEF(pj_status_t) pj_turn_session_destroy(pj_turn_session *sess) 
     384PJ_DEF(pj_status_t) pj_turn_session_shutdown(pj_turn_session *sess) 
    364385{ 
    365386    PJ_ASSERT_RETURN(sess, PJ_EINVAL); 
     
    367388    pj_lock_acquire(sess->lock); 
    368389 
    369     sess_shutdown(sess, PJ_FALSE, PJ_SUCCESS); 
     390    sess_shutdown(sess, PJ_SUCCESS); 
    370391 
    371392    pj_lock_release(sess->lock); 
    372393 
     394    return PJ_SUCCESS; 
     395} 
     396 
     397 
     398/** 
     399 * Forcefully destroy the TURN session. 
     400 */ 
     401PJ_DEF(pj_status_t) pj_turn_session_destroy( pj_turn_session *sess) 
     402{ 
     403    set_state(sess, PJ_TURN_STATE_DEALLOCATED); 
     404    sess_shutdown(sess, PJ_SUCCESS); 
    373405    return PJ_SUCCESS; 
    374406} 
     
    465497        } 
    466498 
     499        PJ_LOG(5,(sess->obj_name, "Resolving %.*s%.*s with DNS SRV", 
     500                  (int)res_name.slen, res_name.ptr, 
     501                  (int)domain->slen, domain->ptr)); 
    467502        set_state(sess, PJ_TURN_STATE_RESOLVING); 
     503 
    468504        status = pj_dns_srv_resolve(domain, &res_name, default_port,  
    469505                                    sess->pool, resolver, opt, sess,  
     
    488524        ai = (pj_addrinfo*) 
    489525             pj_pool_calloc(sess->pool, cnt, sizeof(pj_addrinfo)); 
     526 
     527        PJ_LOG(5,(sess->obj_name, "Resolving %.*s with DNS A", 
     528                  (int)domain->slen, domain->ptr)); 
    490529 
    491530        status = pj_getaddrinfo(sess->af, domain, &cnt, ai); 
     
    539578{ 
    540579    pj_stun_tx_data *tdata; 
     580    pj_bool_t retransmit; 
    541581    pj_status_t status; 
    542582 
    543583    PJ_ASSERT_RETURN(sess, PJ_EINVAL); 
    544     PJ_ASSERT_RETURN(sess->state>PJ_TURN_STATE_NULL && sess->state<=PJ_TURN_STATE_RESOLVED,  
     584    PJ_ASSERT_RETURN(sess->state>PJ_TURN_STATE_NULL &&  
     585                     sess->state<=PJ_TURN_STATE_RESOLVED,  
    545586                     PJ_EINVALIDOP); 
    546587 
     
    548589 
    549590    if (sess->state < PJ_TURN_STATE_RESOLVED) { 
    550         if (param && param != &sess->alloc_param) 
    551             pj_memcpy(&sess->alloc_param, param, sizeof(*param)); 
     591        if (param && param != &sess->alloc_param)  
     592            pj_turn_alloc_param_copy(sess->pool, &sess->alloc_param, param); 
    552593        sess->pending_alloc = PJ_TRUE; 
    553594 
     
    595636    /* Send request */ 
    596637    set_state(sess, PJ_TURN_STATE_ALLOCATING); 
    597     status = pj_stun_session_send_msg(sess->stun, PJ_FALSE, sess->srv_addr, 
     638    retransmit = (sess->tp_type == PJ_TURN_TP_UDP); 
     639    status = pj_stun_session_send_msg(sess->stun, NULL, PJ_FALSE,  
     640                                      retransmit, sess->srv_addr, 
    598641                                      pj_sockaddr_get_len(sess->srv_addr),  
    599642                                      tdata); 
     
    637680    } 
    638681 
    639     status = pj_stun_session_send_msg(sess->stun, PJ_FALSE, sess->srv_addr, 
     682    status = pj_stun_session_send_msg(sess->stun, NULL, PJ_FALSE,  
     683                                      (sess->tp_type==PJ_TURN_TP_UDP), 
     684                                      sess->srv_addr, 
    640685                                      pj_sockaddr_get_len(sess->srv_addr),  
    641686                                      tdata); 
     
    648693    if (lifetime == 0) { 
    649694        set_state(sess, PJ_TURN_STATE_DEALLOCATED); 
    650         sess_shutdown(sess, PJ_FALSE, status); 
     695        sess_shutdown(sess, status); 
    651696    } 
    652697} 
     
    725770 
    726771        /* Send the indication */ 
    727         status = pj_stun_session_send_msg(sess->stun, PJ_FALSE, sess->srv_addr, 
     772        status = pj_stun_session_send_msg(sess->stun, NULL, PJ_FALSE,  
     773                                          PJ_FALSE, sess->srv_addr, 
    728774                                          pj_sockaddr_get_len(sess->srv_addr), 
    729775                                          tdata); 
     
    763809    peer = lookup_peer_by_addr(sess, peer_adr, addr_len, PJ_TRUE, PJ_FALSE); 
    764810    pj_assert(peer); 
    765  
    766     /* Associate peer data structure with tdata for future reference 
    767      * when we receive the ChannelBind response. 
    768      */ 
    769     tdata->user_data = peer; 
    770811 
    771812    if (peer->ch_id != PJ_TURN_INVALID_CHANNEL) { 
     
    788829                                  peer_adr, addr_len); 
    789830 
    790     /* Send the request */ 
    791     status = pj_stun_session_send_msg(sess->stun, PJ_FALSE, sess->srv_addr, 
     831    /* Send the request, associate peer data structure with tdata  
     832     * for future reference when we receive the ChannelBind response. 
     833     */ 
     834    status = pj_stun_session_send_msg(sess->stun, peer, PJ_FALSE,  
     835                                      (sess->tp_type==PJ_TURN_TP_UDP), 
     836                                      sess->srv_addr, 
    792837                                      pj_sockaddr_get_len(sess->srv_addr), 
    793838                                      tdata); 
     
    829874            options |= PJ_STUN_IS_DATAGRAM; 
    830875        status=pj_stun_session_on_rx_pkt(sess->stun, pkt, pkt_len, 
    831                                          options, NULL, 
     876                                         options, NULL, NULL, 
    832877                                         sess->srv_addr, 
    833878                                         pj_sockaddr_get_len(sess->srv_addr)); 
     
    883928 */ 
    884929static pj_status_t stun_on_send_msg(pj_stun_session *stun, 
     930                                    void *token, 
    885931                                    const void *pkt, 
    886932                                    pj_size_t pkt_size, 
     
    889935{ 
    890936    pj_turn_session *sess; 
     937 
     938    PJ_UNUSED_ARG(token); 
    891939 
    892940    sess = (pj_turn_session*) pj_stun_session_get_user_data(stun); 
     
    928976 
    929977            set_state(sess, PJ_TURN_STATE_DEALLOCATED); 
    930             sess_shutdown(sess, PJ_TRUE, status); 
     978            sess_shutdown(sess, status); 
    931979            return; 
    932980        } 
     
    937985        if (method==PJ_STUN_REFRESH_METHOD) { 
    938986            set_state(sess, PJ_TURN_STATE_DEALLOCATED); 
    939             sess_shutdown(sess, PJ_TRUE, status); 
     987            sess_shutdown(sess, status); 
    940988            return; 
    941989        } 
     
    9761024    /* If LIFETIME is zero, this is a deallocation */ 
    9771025    if (lf_attr->value == 0) { 
    978         pj_bool_t notify = sess->state < PJ_TURN_STATE_DEALLOCATING; 
    9791026        set_state(sess, PJ_TURN_STATE_DEALLOCATED); 
    980         sess_shutdown(sess, notify, PJ_SUCCESS); 
     1027        sess_shutdown(sess, PJ_SUCCESS); 
    9811028        return; 
    9821029    } 
     
    10691116static void stun_on_request_complete(pj_stun_session *stun, 
    10701117                                     pj_status_t status, 
     1118                                     void *token, 
    10711119                                     pj_stun_tx_data *tdata, 
    10721120                                     const pj_stun_msg *response, 
     
    11461194        { 
    11471195            /* Successful ChannelBind response */ 
    1148             struct peer *peer = (struct peer*)tdata->user_data; 
     1196            struct peer *peer = (struct peer*)token; 
    11491197 
    11501198            pj_assert(peer->ch_id != PJ_TURN_INVALID_CHANNEL); 
     
    11921240                                         unsigned pkt_len, 
    11931241                                         const pj_stun_msg *msg, 
     1242                                         void *token, 
    11941243                                         const pj_sockaddr_t *src_addr, 
    11951244                                         unsigned src_addr_len) 
     
    11991248    pj_stun_data_attr *data_attr; 
    12001249 
     1250    PJ_UNUSED_ARG(token); 
    12011251    PJ_UNUSED_ARG(pkt); 
    12021252    PJ_UNUSED_ARG(pkt_len); 
     
    12541304    /* Check failure */ 
    12551305    if (status != PJ_SUCCESS) { 
    1256         sess_shutdown(sess, PJ_TRUE, status); 
     1306        sess_shutdown(sess, status); 
    12571307        return; 
    12581308    } 
     
    12631313 
    12641314        for (j=0; j<rec->entry[i].server.addr_count && cnt<MAX_SRV_CNT; ++j) { 
    1265             pj_sockaddr_in *addr = &sess->srv_addr[cnt].ipv4; 
     1315            pj_sockaddr_in *addr = &sess->srv_addr_list[cnt].ipv4; 
    12661316 
    12671317            addr->sin_family = sess->af; 
     
    12751325 
    12761326    /* Set current server */ 
    1277     sess->srv_addr = &sess->srv_addr[0]; 
     1327    sess->srv_addr = &sess->srv_addr_list[0]; 
    12781328 
    12791329    /* Set state to PJ_TURN_STATE_RESOLVED */ 
     
    14151465 
    14161466                /* Send the indication */ 
    1417                 pj_stun_session_send_msg(sess->stun, PJ_FALSE, sess->srv_addr, 
    1418                                         pj_sockaddr_get_len(sess->srv_addr), 
    1419                                         tdata); 
     1467                pj_stun_session_send_msg(sess->stun, NULL, PJ_FALSE,  
     1468                                         PJ_FALSE, sess->srv_addr, 
     1469                                         pj_sockaddr_get_len(sess->srv_addr), 
     1470                                         tdata); 
    14201471            } 
    14211472        } 
  • pjproject/trunk/pjnath/src/pjturn-client/client_main.c

    r1904 r1913  
    4949    pj_bool_t            quit; 
    5050 
    51     pj_turn_udp         *udp_rel; 
     51    pj_turn_sock        *relay; 
    5252    pj_sockaddr          relay_addr; 
    5353 
     
    5757static struct options 
    5858{ 
    59     char    *srv_addr; 
    60     char    *srv_port; 
    61     char    *realm; 
    62     char    *user_name; 
    63     char    *password; 
    64     pj_bool_t use_fingerprint; 
     59    pj_bool_t    use_tcp; 
     60    char        *srv_addr; 
     61    char        *srv_port; 
     62    char        *realm; 
     63    char        *user_name; 
     64    char        *password; 
     65    pj_bool_t    use_fingerprint; 
    6566} o; 
    6667 
    6768 
    6869static int worker_thread(void *unused); 
    69 static void turn_on_rx_data(pj_turn_udp *udp_rel, 
     70static void turn_on_rx_data(pj_turn_sock *relay, 
    7071                            const pj_uint8_t *pkt, 
    7172                            unsigned pkt_len, 
    7273                            const pj_sockaddr_t *peer_addr, 
    7374                            unsigned addr_len); 
    74 static void turn_on_state(pj_turn_udp *udp_rel, pj_turn_state_t old_state, 
     75static void turn_on_state(pj_turn_sock *relay, pj_turn_state_t old_state, 
    7576                          pj_turn_state_t new_state); 
    7677 
     
    156157        g.thread = NULL; 
    157158    } 
    158     if (g.udp_rel) { 
    159         pj_turn_udp_destroy(g.udp_rel); 
    160         g.udp_rel = NULL; 
     159    if (g.relay) { 
     160        pj_turn_sock_destroy(g.relay); 
     161        g.relay = NULL; 
    161162    } 
    162163    for (i=0; i<PJ_ARRAY_SIZE(g.peer); ++i) { 
     
    243244static pj_status_t create_relay(void) 
    244245{ 
    245     pj_turn_udp_cb rel_cb; 
     246    pj_turn_sock_cb rel_cb; 
    246247    pj_stun_auth_cred cred; 
    247248    pj_str_t srv; 
    248249    pj_status_t status; 
    249250 
    250     if (g.udp_rel) { 
     251    if (g.relay) { 
    251252        PJ_LOG(1,(THIS_FILE, "Relay already created")); 
    252253        return -1; 
     
    256257    rel_cb.on_rx_data = &turn_on_rx_data; 
    257258    rel_cb.on_state = &turn_on_state; 
    258     CHECK( pj_turn_udp_create(&g.stun_config, pj_AF_INET(), &rel_cb, 0, 
    259                               NULL, &g.udp_rel) ); 
     259    CHECK( pj_turn_sock_create(&g.stun_config, pj_AF_INET(),  
     260                               (o.use_tcp? PJ_TURN_TP_TCP : PJ_TURN_TP_UDP), 
     261                               &rel_cb, 0, 
     262                               NULL, &g.relay) ); 
    260263 
    261264    if (o.user_name) { 
     
    272275 
    273276    srv = pj_str(o.srv_addr); 
    274     CHECK( pj_turn_udp_init(g.udp_rel,                           /* the relay */ 
     277    CHECK( pj_turn_sock_init(g.relay,                            /* the relay */ 
    275278                            &srv,                                /* srv addr */ 
    276279                            (o.srv_port?atoi(o.srv_port):PJ_STUN_PORT),/* def port */ 
     
    285288static void destroy_relay(void) 
    286289{ 
    287     if (g.udp_rel) { 
    288         pj_turn_udp_destroy(g.udp_rel); 
    289     } 
    290 } 
    291  
    292  
    293 static void turn_on_rx_data(pj_turn_udp *udp_rel, 
     290    if (g.relay) { 
     291        pj_turn_sock_destroy(g.relay); 
     292    } 
     293} 
     294 
     295 
     296static void turn_on_rx_data(pj_turn_sock *relay, 
    294297                            const pj_uint8_t *pkt, 
    295298                            unsigned pkt_len, 
     
    306309 
    307310 
    308 static void turn_on_state(pj_turn_udp *udp_rel, pj_turn_state_t old_state, 
     311static void turn_on_state(pj_turn_sock *relay, pj_turn_state_t old_state, 
    309312                          pj_turn_state_t new_state) 
    310313{ 
     
    314317    if (new_state == PJ_TURN_STATE_READY) { 
    315318        pj_turn_session_info info; 
    316         pj_turn_udp_get_info(udp_rel, &info); 
     319        pj_turn_sock_get_info(relay, &info); 
    317320        pj_memcpy(&g.relay_addr, &info.relay_addr, sizeof(pj_sockaddr)); 
    318     } else if (new_state > PJ_TURN_STATE_READY && g.udp_rel) { 
     321    } else if (new_state > PJ_TURN_STATE_READY && g.relay) { 
    319322        PJ_LOG(3,(THIS_FILE, "Relay shutting down..")); 
    320         g.udp_rel = NULL; 
     323        g.relay = NULL; 
    321324    } 
    322325} 
     
    327330    char client_state[20], relay_addr[80], peer0_addr[80], peer1_addr[80]; 
    328331 
    329     if (g.udp_rel) { 
    330         pj_turn_udp_get_info(g.udp_rel, &info); 
     332    if (g.relay) { 
     333        pj_turn_sock_get_info(g.relay, &info); 
    331334        strcpy(client_state, pj_turn_state_name(info.state)); 
    332335        if (info.state >= PJ_TURN_STATE_READY) 
     
    358361          peer1_addr); 
    359362    puts("+-----------------------------------+                                |"); 
    360     puts("| q  Quit        d  Dump            | 1  Send data to relay adderss  |"); 
     363    puts("| q  Quit                  d  Dump  | 1  Send data to relay adderss  |"); 
    361364    puts("+-----------------------------------+--------------------------------+"); 
    362365    printf(">>> "); 
     
    385388            break; 
    386389        case 's': 
    387             if (g.udp_rel == NULL) { 
     390            if (g.relay == NULL) { 
    388391                puts("Error: no relay"); 
    389392                continue; 
     
    395398 
    396399            strcpy(input, "Hello from client"); 
    397             status = pj_turn_udp_sendto(g.udp_rel, (const pj_uint8_t*)input,  
     400            status = pj_turn_sock_sendto(g.relay, (const pj_uint8_t*)input,  
    398401                                        strlen(input)+1,  
    399402                                        &peer->addr,  
     
    403406            break; 
    404407        case 'b': 
    405             if (g.udp_rel == NULL) { 
     408            if (g.relay == NULL) { 
    406409                puts("Error: no relay"); 
    407410                continue; 
     
    412415                peer = &g.peer[1]; 
    413416 
    414             status = pj_turn_udp_bind_channel(g.udp_rel, &peer->addr, 
     417            status = pj_turn_sock_bind_channel(g.relay, &peer->addr, 
    415418                                              pj_sockaddr_get_len(&peer->addr)); 
    416419            if (status != PJ_SUCCESS) 
    417420                my_perror("turn_udp_bind_channel() failed", status); 
    418421            break; 
     422        case 'd': 
     423            pj_pool_factory_dump(&g.cp.factory, PJ_TRUE); 
     424            break; 
    419425        case 'x': 
    420             if (g.udp_rel == NULL) { 
     426            if (g.relay == NULL) { 
    421427                puts("Error: no relay"); 
    422428                continue; 
     
    426432        case '0': 
    427433        case '1': 
    428             if (g.udp_rel == NULL) { 
     434            if (g.relay == NULL) { 
    429435                puts("No relay"); 
    430436                break; 
     
    451457    puts(""); 
    452458    puts("and OPTIONS:"); 
    453     puts(" --realm, -r       Set realm of the credential"); 
    454     puts(" --username, -u    Set username of the credential"); 
    455     puts(" --password, -p    Set password of the credential"); 
    456     puts(" --fingerprint, -F Use fingerprint for outgoing requests"); 
     459    puts(" --tcp, -T             Use TCP to connect to TURN server"); 
     460    puts(" --realm, -r REALM     Set realm of the credential to REALM"); 
     461    puts(" --username, -u UID    Set username of the credential to UID"); 
     462    puts(" --password, -p PASSWD Set password of the credential to PASSWD"); 
     463    puts(" --fingerprint, -F     Use fingerprint for outgoing requests"); 
    457464    puts(" --help, -h"); 
    458465} 
     
    465472        { "password",   1, 0, 'p'}, 
    466473        { "fingerprint",0, 0, 'F'}, 
    467         { "data",       1, 0, 'D'}, 
     474        { "tcp",        0, 0, 'T'}, 
    468475        { "help",       0, 0, 'h'} 
    469476    }; 
     
    472479    pj_status_t status; 
    473480 
    474     while((c=pj_getopt_long(argc,argv, "r:u:p:N:hF", long_options, &opt_id))!=-1) { 
     481    while((c=pj_getopt_long(argc,argv, "r:u:p:N:hFT", long_options, &opt_id))!=-1) { 
    475482        switch (c) { 
    476483        case 'r': 
     
    488495        case 'F': 
    489496            o.use_fingerprint = PJ_TRUE; 
     497            break; 
     498        case 'T': 
     499            o.use_tcp = PJ_TRUE; 
    490500            break; 
    491501 
  • pjproject/trunk/pjnath/src/pjturn-srv/allocation.c

    r1879 r1913  
    6666                            pj_ssize_t bytes_read); 
    6767static pj_status_t stun_on_send_msg(pj_stun_session *sess, 
     68                                    void *token, 
    6869                                    const void *pkt, 
    6970                                    pj_size_t pkt_size, 
     
    7475                                      unsigned pkt_len, 
    7576                                      const pj_stun_rx_data *rdata, 
     77                                      void *token, 
    7678                                      const pj_sockaddr_t *src_addr, 
    7779                                      unsigned src_addr_len); 
     
    8082                                         unsigned pkt_len, 
    8183                                         const pj_stun_msg *msg, 
     84                                         void *token, 
    8285                                         const pj_sockaddr_t *src_addr, 
    8386                                         unsigned src_addr_len); 
     
    124127        pj_stun_session_respond(sess, rdata,  
    125128                                PJ_STUN_SC_ALLOCATION_QUOTA_REACHED, 
    126                                 "Invalid bandwidth", PJ_TRUE, 
     129                                "Invalid bandwidth", NULL, PJ_TRUE, 
    127130                                src_addr, src_addr_len); 
    128131        return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_ALLOCATION_QUOTA_REACHED); 
     
    135138        pj_stun_session_respond(sess, rdata, PJ_STUN_SC_BAD_REQUEST, 
    136139                                "Missing REQUESTED-TRANSPORT attribute",  
    137                                 PJ_TRUE, src_addr, src_addr_len); 
     140                                NULL, PJ_TRUE, src_addr, src_addr_len); 
    138141        return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_BAD_REQUEST); 
    139142    } 
     
    144147    if (cfg->tp_type != PJ_TURN_TP_UDP) { 
    145148        pj_stun_session_respond(sess, rdata, PJ_STUN_SC_UNSUPP_TRANSPORT_PROTO, 
    146                                 NULL, PJ_TRUE, src_addr, src_addr_len); 
     149                                NULL, NULL, PJ_TRUE, src_addr, src_addr_len); 
    147150        return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_UNSUPP_TRANSPORT_PROTO); 
    148151    } 
     
    156159        pj_stun_session_respond(sess, rdata,  
    157160                                PJ_STUN_SC_BAD_REQUEST, 
    158                                 "RESERVATION-TOKEN is not supported", PJ_TRUE,  
    159                                 src_addr, src_addr_len); 
     161                                "RESERVATION-TOKEN is not supported", NULL,  
     162                                PJ_TRUE, src_addr, src_addr_len); 
    160163        return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_BAD_REQUEST); 
    161164    } 
     
    168171        pj_stun_session_respond(sess, rdata,  
    169172                                PJ_STUN_SC_BAD_REQUEST, 
    170                                 "REQUESTED-PROPS is not supported", PJ_TRUE,  
    171                                 src_addr, src_addr_len); 
     173                                "REQUESTED-PROPS is not supported",  
     174                                NULL, PJ_TRUE, src_addr, src_addr_len); 
    172175        return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_BAD_REQUEST); 
    173176    } 
     
    180183        if (cfg->lifetime < MIN_LIFETIME) { 
    181184            pj_stun_session_respond(sess, rdata, PJ_STUN_SC_BAD_REQUEST, 
    182                                     "LIFETIME too short", PJ_TRUE,  
    183                                     src_addr, src_addr_len); 
     185                                    "LIFETIME too short", NULL,  
     186                                    PJ_TRUE, src_addr, src_addr_len); 
    184187            return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_BAD_REQUEST); 
    185188        } 
     
    197200static pj_status_t send_allocate_response(pj_turn_allocation *alloc, 
    198201                                          pj_stun_session *srv_sess, 
     202                                          pj_turn_transport *transport, 
    199203                                          const pj_stun_rx_data *rdata) 
    200204{ 
     
    233237     
    234238    /* Send the response */ 
    235     return pj_stun_session_send_msg(srv_sess, PJ_TRUE, 
    236                                     &alloc->hkey.clt_addr,  
     239    return pj_stun_session_send_msg(srv_sess, transport, PJ_TRUE, 
     240                                    PJ_FALSE, &alloc->hkey.clt_addr,  
    237241                                    pj_sockaddr_get_len(&alloc->hkey.clt_addr), 
    238242                                    tdata); 
     
    284288 * Create new allocation. 
    285289 */ 
    286 PJ_DEF(pj_status_t) pj_turn_allocation_create(pj_turn_listener *listener, 
     290PJ_DEF(pj_status_t) pj_turn_allocation_create(pj_turn_transport *transport, 
    287291                                              const pj_sockaddr_t *src_addr, 
    288292                                              unsigned src_addr_len, 
     
    291295                                              pj_turn_allocation **p_alloc) 
    292296{ 
    293     pj_turn_srv *srv = listener->server; 
     297    pj_turn_srv *srv = transport->listener->server; 
    294298    const pj_stun_msg *msg = rdata->msg; 
    295299    pj_pool_t *pool; 
     
    311315    alloc->pool = pool; 
    312316    alloc->obj_name = pool->obj_name; 
    313     alloc->listener = listener; 
    314     alloc->clt_sock = PJ_INVALID_SOCKET; 
    315317    alloc->relay.tp.sock = PJ_INVALID_SOCKET; 
     318    alloc->server = transport->listener->server; 
    316319 
    317320    alloc->bandwidth = req.bandwidth; 
    318321 
    319     alloc->hkey.tp_type = listener->tp_type; 
     322    /* Set transport */ 
     323    alloc->transport = transport; 
     324    pj_turn_transport_add_ref(transport, alloc); 
     325 
     326    alloc->hkey.tp_type = transport->listener->tp_type; 
    320327    pj_memcpy(&alloc->hkey.clt_addr, src_addr, src_addr_len); 
    321328 
     
    333340 
    334341    /* Print info */ 
    335     pj_ansi_strcpy(alloc->info, pj_turn_tp_type_name(listener->tp_type)); 
     342    pj_ansi_strcpy(alloc->info,  
     343                   pj_turn_tp_type_name(transport->listener->tp_type)); 
    336344    alloc->info[3] = ':'; 
    337345    pj_sockaddr_print(src_addr, alloc->info+4, sizeof(alloc->info)-4, 3); 
     
    371379 
    372380    /* Respond to ALLOCATE request */ 
    373     status = send_allocate_response(alloc, srv_sess, rdata); 
     381    status = send_allocate_response(alloc, srv_sess, transport, rdata); 
    374382    if (status != PJ_SUCCESS) 
    375383        goto on_error; 
     
    389397    pj_strerror(status, str_tmp, sizeof(str_tmp)); 
    390398    pj_stun_session_respond(srv_sess, rdata, PJ_STUN_SC_BAD_REQUEST, str_tmp,  
    391                             PJ_TRUE, src_addr, src_addr_len); 
     399                            transport, PJ_TRUE, src_addr, src_addr_len); 
    392400 
    393401    /* Cleanup */ 
     
    401409{ 
    402410    if (relay->timer.id) { 
    403         pj_timer_heap_cancel(relay->allocation->listener->server->core.timer_heap,  
     411        pj_timer_heap_cancel(relay->allocation->server->core.timer_heap,  
    404412                             &relay->timer); 
    405413        relay->timer.id = PJ_FALSE; 
     
    428436 
    429437    /* Unregister this allocation */ 
    430     pj_turn_srv_unregister_allocation(alloc->listener->server, alloc); 
     438    pj_turn_srv_unregister_allocation(alloc->server, alloc); 
    431439 
    432440    /* Destroy relay */ 
     
    436444    if (alloc->lock) { 
    437445        pj_lock_acquire(alloc->lock); 
     446    } 
     447 
     448    /* Unreference transport */ 
     449    if (alloc->transport) { 
     450        pj_turn_transport_dec_ref(alloc->transport, alloc); 
     451        alloc->transport = NULL; 
    438452    } 
    439453 
     
    466480 
    467481 
     482/* 
     483 * Handle transport closure. 
     484 */ 
     485PJ_DEF(void) pj_turn_allocation_on_transport_closed( pj_turn_allocation *alloc, 
     486                                                     pj_turn_transport *tp) 
     487{ 
     488    PJ_LOG(5,(alloc->obj_name, "Transport %s unexpectedly closed, destroying " 
     489              "allocation %s", tp->info, alloc->info)); 
     490    pj_turn_transport_dec_ref(tp, alloc); 
     491    alloc->transport = NULL; 
     492    destroy_allocation(alloc); 
     493} 
     494 
     495 
    468496/* Initiate shutdown sequence for this allocation and start destroy timer. 
    469497 * Once allocation is marked as shutting down, any packets will be  
     
    477505    if (alloc->relay.timer.id == TIMER_ID_TIMEOUT) { 
    478506        /* Cancel existing shutdown timer */ 
    479         pj_timer_heap_cancel(alloc->listener->server->core.timer_heap, 
     507        pj_timer_heap_cancel(alloc->server->core.timer_heap, 
    480508                             &alloc->relay.timer); 
    481509        alloc->relay.timer.id = TIMER_ID_NONE; 
     
    499527    /* Schedule destroy timer */ 
    500528    alloc->relay.timer.id = TIMER_ID_DESTROY; 
    501     pj_timer_heap_schedule(alloc->listener->server->core.timer_heap, 
     529    pj_timer_heap_schedule(alloc->server->core.timer_heap, 
    502530                           &alloc->relay.timer, &destroy_delay); 
    503531} 
     
    515543    pj_assert(alloc->relay.timer.id != TIMER_ID_DESTROY); 
    516544    if (alloc->relay.timer.id != 0) { 
    517         pj_timer_heap_cancel(alloc->listener->server->core.timer_heap, 
     545        pj_timer_heap_cancel(alloc->server->core.timer_heap,  
    518546                             &alloc->relay.timer); 
    519547        alloc->relay.timer.id = TIMER_ID_NONE; 
     
    524552 
    525553    alloc->relay.timer.id = TIMER_ID_TIMEOUT; 
    526     status = pj_timer_heap_schedule(alloc->listener->server->core.timer_heap, 
     554    status = pj_timer_heap_schedule(alloc->server->core.timer_heap,  
    527555                                    &alloc->relay.timer, &delay); 
    528556    if (status != PJ_SUCCESS) { 
     
    590618     
    591619    /* TODO: get the requested address family from somewhere */ 
    592     af = alloc->listener->addr.addr.sa_family; 
     620    af = alloc->transport->listener->addr.addr.sa_family; 
    593621 
    594622    /* Save realm */ 
     
    687715    } 
    688716    if (!pj_sockaddr_has_addr(&relay->hkey.addr)) { 
    689         pj_sockaddr_copy_addr(&relay->hkey.addr, &alloc->listener->addr); 
     717        pj_sockaddr_copy_addr(&relay->hkey.addr,  
     718                              &alloc->transport->listener->addr); 
    690719    } 
    691720    if (!pj_sockaddr_has_addr(&relay->hkey.addr)) { 
     
    725754    pj_status_t status; 
    726755 
    727     status = pj_stun_session_respond(alloc->sess, rdata, code, errmsg, cache, 
    728                                      &alloc->hkey.clt_addr, 
     756    status = pj_stun_session_respond(alloc->sess, rdata, code, errmsg, NULL,  
     757                                     cache, &alloc->hkey.clt_addr, 
    729758                                     pj_sockaddr_get_len(&alloc->hkey.clt_addr.addr)); 
    730759    if (status != PJ_SUCCESS) { 
     
    770799    } 
    771800 
    772     status = pj_stun_session_send_msg(alloc->sess, PJ_TRUE,  
    773                                       &alloc->hkey.clt_addr,   
     801    status = pj_stun_session_send_msg(alloc->sess, NULL, PJ_TRUE,  
     802                                      PJ_FALSE, &alloc->hkey.clt_addr,   
    774803                                      pj_sockaddr_get_len(&alloc->hkey.clt_addr),  
    775804                                      tdata); 
     
    791820    pj_memcpy(&perm->hkey.peer_addr, peer_addr, addr_len); 
    792821     
    793     if (alloc->listener->tp_type == PJ_TURN_TP_UDP) { 
    794         perm->sock = alloc->listener->sock; 
    795     } else { 
    796         pj_assert(!"TCP is not supported yet"); 
    797         return NULL; 
    798     } 
    799  
    800822    perm->allocation = alloc; 
    801823    perm->channel = PJ_TURN_INVALID_CHANNEL; 
     
    901923         */ 
    902924        unsigned options = PJ_STUN_CHECK_PACKET; 
    903         if (pkt->listener->tp_type == PJ_TURN_TP_UDP) 
     925        unsigned parsed_len = 0; 
     926 
     927        if (pkt->transport->listener->tp_type == PJ_TURN_TP_UDP) 
    904928            options |= PJ_STUN_IS_DATAGRAM; 
    905929 
    906930        status = pj_stun_session_on_rx_pkt(alloc->sess, pkt->pkt, pkt->len, 
    907                                            options, NULL, 
     931                                           options, NULL, &parsed_len, 
    908932                                           &pkt->src.clt_addr,  
    909933                                           pkt->src_addr_len); 
     934 
     935        if (pkt->transport->listener->tp_type == PJ_TURN_TP_UDP) { 
     936            pkt->len = 0; 
     937        } else if (parsed_len > 0) { 
     938            if (parsed_len == pkt->len) { 
     939                pkt->len = 0; 
     940            } else { 
     941                pj_memmove(pkt->pkt, pkt->pkt+parsed_len, 
     942                           pkt->len - parsed_len); 
     943                pkt->len -= parsed_len; 
     944            } 
     945        } 
     946 
    910947        if (status != PJ_SUCCESS) { 
    911948            alloc_err(alloc, "Error handling STUN packet", status); 
     
    924961 
    925962        /* For UDP check the packet length */ 
    926         if (alloc->listener->tp_type == PJ_TURN_TP_UDP) { 
     963        if (alloc->transport->listener->tp_type == PJ_TURN_TP_UDP) { 
    927964            if (pkt->len < pj_ntohs(cd->length)+sizeof(*cd)) { 
    928965                PJ_LOG(4,(alloc->obj_name,  
     
    10041041 
    10051042        /* Send to client */ 
    1006         pj_turn_listener_sendto(alloc->listener, rel->tp.tx_pkt, 
    1007                                len+sizeof(pj_turn_channel_data), 0, 
    1008                                &alloc->hkey.clt_addr, 
    1009                                pj_sockaddr_get_len(&alloc->hkey.clt_addr)); 
     1043        alloc->transport->sendto(alloc->transport, rel->tp.tx_pkt, 
     1044                                 len+sizeof(pj_turn_channel_data), 0, 
     1045                                 &alloc->hkey.clt_addr, 
     1046                                 pj_sockaddr_get_len(&alloc->hkey.clt_addr)); 
    10101047    } else { 
    10111048        /* Send Data Indication */ 
     
    10271064                                    (const pj_uint8_t*)pkt, len); 
    10281065 
    1029         pj_stun_session_send_msg(alloc->sess, PJ_FALSE,  
    1030                                  &alloc->hkey.clt_addr,  
     1066        pj_stun_session_send_msg(alloc->sess, NULL, PJ_FALSE,  
     1067                                 PJ_FALSE, &alloc->hkey.clt_addr,  
    10311068                                 pj_sockaddr_get_len(&alloc->hkey.clt_addr),  
    10321069                                 tdata); 
     
    10771114 */ 
    10781115static pj_status_t stun_on_send_msg(pj_stun_session *sess, 
     1116                                    void *token, 
    10791117                                    const void *pkt, 
    10801118                                    pj_size_t pkt_size, 
     
    10841122    pj_turn_allocation *alloc; 
    10851123 
     1124    PJ_UNUSED_ARG(token); 
     1125 
    10861126    alloc = (pj_turn_allocation*) pj_stun_session_get_user_data(sess); 
    10871127 
    1088     return pj_turn_listener_sendto(alloc->listener, pkt, pkt_size, 0, 
    1089                                   dst_addr, addr_len); 
     1128    return alloc->transport->sendto(alloc->transport, pkt, pkt_size, 0, 
     1129                                    dst_addr, addr_len); 
    10901130} 
    10911131 
     
    10991139                                      unsigned pkt_len, 
    11001140                                      const pj_stun_rx_data *rdata, 
     1141                                      void *token, 
    11011142                                      const pj_sockaddr_t *src_addr, 
    11021143                                      unsigned src_addr_len) 
     
    11071148    PJ_UNUSED_ARG(pkt); 
    11081149    PJ_UNUSED_ARG(pkt_len); 
     1150    PJ_UNUSED_ARG(token); 
    11091151    PJ_UNUSED_ARG(src_addr); 
    11101152    PJ_UNUSED_ARG(src_addr_len); 
     
    12751317                                         unsigned pkt_len, 
    12761318                                         const pj_stun_msg *msg, 
     1319                                         void *token, 
    12771320                                         const pj_sockaddr_t *src_addr, 
    12781321                                         unsigned src_addr_len) 
     
    12821325    pj_turn_allocation *alloc; 
    12831326    pj_turn_permission *perm; 
     1327    pj_ssize_t len; 
    12841328 
    12851329    PJ_UNUSED_ARG(pkt); 
    12861330    PJ_UNUSED_ARG(pkt_len); 
     1331    PJ_UNUSED_ARG(token); 
    12871332    PJ_UNUSED_ARG(src_addr); 
    12881333    PJ_UNUSED_ARG(src_addr_len); 
     
    13211366        return PJ_SUCCESS; 
    13221367 
    1323     /* Relay the data to client */ 
    1324     if (alloc->hkey.tp_type == PJ_TURN_TP_UDP) { 
    1325         pj_ssize_t len = data_attr->length; 
    1326         pj_sock_sendto(alloc->listener->sock, data_attr->data,  
    1327                        &len, 0, &peer_attr->sockaddr, 
    1328                        pj_sockaddr_get_len(&peer_attr->sockaddr)); 
    1329     } else { 
    1330         pj_assert(!"TCP is not supported"); 
    1331     } 
     1368    /* Relay the data to peer */ 
     1369    len = data_attr->length; 
     1370    pj_sock_sendto(alloc->relay.tp.sock, data_attr->data,  
     1371                   &len, 0, &peer_attr->sockaddr, 
     1372                   pj_sockaddr_get_len(&peer_attr->sockaddr)); 
    13321373 
    13331374    return PJ_SUCCESS; 
  • pjproject/trunk/pjnath/src/pjturn-srv/listener_udp.c

    r1852 r1913  
    1818 */ 
    1919#include "turn.h" 
     20#include <pj/compat/socket.h> 
    2021 
    2122struct read_op 
     
    2829{ 
    2930    pj_turn_listener         base; 
     31 
    3032    pj_ioqueue_key_t        *key; 
    3133    unsigned                 read_cnt; 
    3234    struct read_op          **read_op;  /* Array of read_op's   */ 
     35 
     36    pj_turn_transport        tp;        /* Transport instance */ 
    3337}; 
    3438 
    3539 
    36 static pj_status_t udp_sendto(pj_turn_listener *listener, 
     40static pj_status_t udp_destroy(pj_turn_listener *udp); 
     41static void on_read_complete(pj_ioqueue_key_t *key,  
     42                             pj_ioqueue_op_key_t *op_key,  
     43                             pj_ssize_t bytes_read); 
     44 
     45static pj_status_t udp_sendto(pj_turn_transport *tp, 
    3746                              const void *packet, 
    3847                              pj_size_t size, 
     
    4049                              const pj_sockaddr_t *addr, 
    4150                              int addr_len); 
    42 static pj_status_t udp_destroy(pj_turn_listener *udp); 
    43 static void on_read_complete(pj_ioqueue_key_t *key,  
    44                              pj_ioqueue_op_key_t *op_key,  
    45                              pj_ssize_t bytes_read); 
     51static void udp_add_ref(pj_turn_transport *tp, 
     52                        pj_turn_allocation *alloc); 
     53static void udp_dec_ref(pj_turn_transport *tp, 
     54                        pj_turn_allocation *alloc); 
    4655 
    4756 
     
    7180    udp->base.tp_type = PJ_TURN_TP_UDP; 
    7281    udp->base.sock = PJ_INVALID_SOCKET; 
    73     udp->base.sendto = &udp_sendto; 
    7482    udp->base.destroy = &udp_destroy; 
    7583    udp->read_cnt = concurrency_cnt; 
    7684    udp->base.flags = flags; 
     85 
     86    udp->tp.obj_name = udp->base.obj_name; 
     87    udp->tp.info = udp->base.info; 
     88    udp->tp.listener = &udp->base; 
     89    udp->tp.sendto = &udp_sendto; 
     90    udp->tp.add_ref = &udp_add_ref; 
     91    udp->tp.dec_ref = &udp_dec_ref; 
    7792 
    7893    /* Create socket */ 
     
    173188 * Callback to send packet. 
    174189 */ 
    175 static pj_status_t udp_sendto(pj_turn_listener *listener, 
     190static pj_status_t udp_sendto(pj_turn_transport *tp, 
    176191                              const void *packet, 
    177192                              pj_size_t size, 
     
    181196{ 
    182197    pj_ssize_t len = size; 
    183     return pj_sock_sendto(listener->sock, packet, &len, flag, addr, addr_len); 
    184 } 
     198    return pj_sock_sendto(tp->listener->sock, packet, &len, flag, addr, addr_len); 
     199} 
     200 
     201 
     202static void udp_add_ref(pj_turn_transport *tp, 
     203                        pj_turn_allocation *alloc) 
     204{ 
     205    /* Do nothing */ 
     206    PJ_UNUSED_ARG(tp); 
     207    PJ_UNUSED_ARG(alloc); 
     208} 
     209 
     210static void udp_dec_ref(pj_turn_transport *tp, 
     211                        pj_turn_allocation *alloc) 
     212{ 
     213    /* Do nothing */ 
     214    PJ_UNUSED_ARG(tp); 
     215    PJ_UNUSED_ARG(alloc); 
     216} 
     217 
    185218 
    186219/* 
     
    212245        pj_pool_reset(rpool); 
    213246        read_op->pkt.pool = rpool; 
    214         read_op->pkt.listener = &udp->base; 
     247        read_op->pkt.transport = &udp->tp; 
    215248        read_op->pkt.src.tp_type = udp->base.tp_type; 
    216249 
     
    228261            bytes_read = -status; 
    229262 
    230     } while (status != PJ_EPENDING && status != PJ_ECANCELLED); 
    231 } 
    232  
     263    } while (status != PJ_EPENDING && status != PJ_ECANCELLED && 
     264             status != PJ_STATUS_FROM_OS(PJ_BLOCKING_ERROR_VAL)); 
     265} 
     266 
  • pjproject/trunk/pjnath/src/pjturn-srv/main.c

    r1882 r1913  
    141141                                         PJ_STUN_PORT, 1, 0, &listener); 
    142142    if (status != PJ_SUCCESS) 
     143        return err("Error creating UDP listener", status); 
     144 
     145    status = pj_turn_listener_create_tcp(srv, pj_AF_INET(), NULL,  
     146                                         PJ_STUN_PORT, 1, 0, &listener); 
     147    if (status != PJ_SUCCESS) 
    143148        return err("Error creating listener", status); 
    144149 
  • pjproject/trunk/pjnath/src/pjturn-srv/server.c

    r1879 r1913  
    2929#define MAX_LISTENERS           16 
    3030#define MAX_THREADS             2 
    31 #define MAX_NET_EVENTS          10 
     31#define MAX_NET_EVENTS          1000 
    3232 
    3333/* Prototypes */ 
    3434static int server_thread_proc(void *arg); 
    3535static pj_status_t on_tx_stun_msg( pj_stun_session *sess, 
     36                                   void *token, 
    3637                                   const void *pkt, 
    3738                                   pj_size_t pkt_size, 
     
    4243                                      unsigned pkt_len, 
    4344                                      const pj_stun_rx_data *rdata, 
     45                                      void *user_data, 
    4446                                      const pj_sockaddr_t *src_addr, 
    4547                                      unsigned src_addr_len); 
     
    7880{ 
    7981    pj_pool_t *pool; 
     82    pj_stun_session_cb sess_cb; 
    8083    pj_turn_srv *srv; 
    8184    unsigned i; 
     
    125128                                        sizeof(srv->core.listener[0])); 
    126129 
    127     /* Array of STUN sessions, one for each listener */ 
    128     srv->core.stun_sess = (pj_stun_session**) 
    129                           pj_pool_calloc(pool, MAX_LISTENERS, 
    130                                          (sizeof(srv->core.stun_sess[0]))); 
    131  
    132130    /* Create hash tables */ 
    133131    srv->tables.alloc = pj_hash_create(pool, MAX_CLIENTS); 
     
    150148    srv->core.cred.data.dyn_cred.get_password = &pj_turn_get_password; 
    151149    srv->core.cred.data.dyn_cred.verify_nonce = &pj_turn_verify_nonce; 
     150 
     151    /* Create STUN session to handle new allocation */ 
     152    pj_bzero(&sess_cb, sizeof(sess_cb)); 
     153    sess_cb.on_rx_request = &on_rx_stun_request; 
     154    sess_cb.on_send_msg = &on_tx_stun_msg; 
     155 
     156    status = pj_stun_session_create(&srv->core.stun_cfg, srv->obj_name, 
     157                                    &sess_cb, PJ_FALSE, &srv->core.stun_sess); 
     158    if (status != PJ_SUCCESS) { 
     159        goto on_error; 
     160    } 
     161 
     162    pj_stun_session_set_user_data(srv->core.stun_sess, srv); 
     163    pj_stun_session_set_credential(srv->core.stun_sess, PJ_STUN_AUTH_LONG_TERM, 
     164                                   &srv->core.cred); 
     165 
    152166 
    153167    /* Array of worker threads */ 
     
    241255 
    242256    while (!srv->core.quit) { 
    243         pj_time_val timeout_max = {0, 500}; 
     257        pj_time_val timeout_max = {0, 100}; 
    244258        srv_handle_events(srv, &timeout_max); 
    245259    } 
     
    278292    } 
    279293     
    280     /* Destroy all listeners and STUN sessions associated with them. */ 
     294    /* Destroy all listeners. */ 
    281295    for (i=0; i<srv->core.lis_cnt; ++i) { 
    282296        if (srv->core.listener[i]) { 
     
    284298            srv->core.listener[i] = NULL; 
    285299        } 
    286         if (srv->core.stun_sess[i]) { 
    287             pj_stun_session_destroy(srv->core.stun_sess[i]); 
    288             srv->core.stun_sess[i] = NULL; 
    289         } 
     300    } 
     301 
     302    /* Destroy STUN session */ 
     303    if (srv->core.stun_sess) { 
     304        pj_stun_session_destroy(srv->core.stun_sess); 
     305        srv->core.stun_sess = NULL; 
    290306    } 
    291307 
     
    342358                                             pj_turn_listener *lis) 
    343359{ 
    344     pj_stun_session_cb sess_cb; 
    345360    unsigned index; 
    346     pj_stun_session *sess; 
    347     pj_status_t status; 
    348361 
    349362    PJ_ASSERT_RETURN(srv && lis, PJ_EINVAL); 
     
    354367    srv->core.listener[index] = lis; 
    355368    lis->server = srv; 
    356  
    357     /* Create STUN session to handle new allocation */ 
    358     pj_bzero(&sess_cb, sizeof(sess_cb)); 
    359     sess_cb.on_rx_request = &on_rx_stun_request; 
    360     sess_cb.on_send_msg = &on_tx_stun_msg; 
    361  
    362     status = pj_stun_session_create(&srv->core.stun_cfg, lis->obj_name,  
    363                                     &sess_cb, PJ_FALSE, &sess); 
    364     if (status != PJ_SUCCESS) { 
    365         srv->core.listener[index] = NULL; 
    366         return status; 
    367     } 
    368  
    369     pj_stun_session_set_user_data(sess, lis); 
    370     pj_stun_session_set_credential(sess, PJ_STUN_AUTH_LONG_TERM,  
    371                                    &srv->core.cred); 
    372  
    373     srv->core.stun_sess[index] = sess; 
    374369    lis->id = index; 
    375370    srv->core.lis_cnt++; 
     
    379374 
    380375    return PJ_SUCCESS; 
    381 } 
    382  
    383  
    384 /* 
    385  * Send packet with this listener. 
    386  */ 
    387 PJ_DEF(pj_status_t) pj_turn_listener_sendto(pj_turn_listener *listener, 
    388                                             const void *packet, 
    389                                             pj_size_t size, 
    390                                             unsigned flag, 
    391                                             const pj_sockaddr_t *addr, 
    392                                             int addr_len) 
    393 { 
    394     pj_assert(listener->id != PJ_TURN_INVALID_LIS_ID); 
    395     return listener->sendto(listener, packet, size, flag, addr, addr_len); 
    396376} 
    397377 
     
    412392            srv->core.lis_cnt--; 
    413393            listener->id = PJ_TURN_INVALID_LIS_ID; 
    414             if (srv->core.stun_sess[i]) { 
    415                 pj_stun_session_destroy(srv->core.stun_sess[i]); 
    416                 srv->core.stun_sess[i] = NULL; 
    417             } 
    418394            break; 
    419395        } 
     
    423399    /* Destroy */ 
    424400    return listener->destroy(listener); 
     401} 
     402 
     403 
     404/** 
     405 * Add a reference to a transport. 
     406 */ 
     407PJ_DEF(void) pj_turn_transport_add_ref( pj_turn_transport *transport, 
     408                                        pj_turn_allocation *alloc) 
     409{ 
     410    transport->add_ref(transport, alloc); 
     411} 
     412 
     413 
     414/** 
     415 * Decrement transport reference counter. 
     416 */ 
     417PJ_DEF(void) pj_turn_transport_dec_ref( pj_turn_transport *transport, 
     418                                        pj_turn_allocation *alloc) 
     419{ 
     420    transport->dec_ref(transport, alloc); 
    425421} 
    426422 
     
    467463 */ 
    468464static pj_status_t on_tx_stun_msg( pj_stun_session *sess, 
    469                                    const void *pkt, 
    470                                    pj_size_t pkt_size, 
     465                                   void *token, 
     466                                   const void *pdu, 
     467                                   pj_size_t pdu_size, 
    471468                                   const pj_sockaddr_t *dst_addr, 
    472469                                   unsigned addr_len) 
    473470{ 
    474     pj_turn_listener *listener; 
     471    pj_turn_transport *transport = (pj_turn_transport*) token; 
    475472     
    476     listener = (pj_turn_listener*) pj_stun_session_get_user_data(sess); 
    477  
    478     PJ_ASSERT_RETURN(listener!=NULL, PJ_EINVALIDOP); 
    479  
    480     return pj_turn_listener_sendto(listener, pkt, pkt_size, 0,  
    481                                    dst_addr, addr_len); 
     473    PJ_ASSERT_RETURN(transport!=NULL, PJ_EINVALIDOP); 
     474 
     475    PJ_UNUSED_ARG(sess); 
     476 
     477    return transport->sendto(transport, pdu, pdu_size, 0,  
     478                             dst_addr, addr_len); 
    482479} 
    483480 
     
    485482/* Respond to STUN request */ 
    486483static pj_status_t stun_respond(pj_stun_session *sess,  
     484                                pj_turn_transport *transport, 
    487485                                const pj_stun_rx_data *rdata, 
    488486                                unsigned code,  
     
    504502 
    505503    /* Send the response */ 
    506     return pj_stun_session_send_msg(sess, cache, dst_addr,  addr_len, tdata); 
     504    return pj_stun_session_send_msg(sess, transport, cache, PJ_FALSE,  
     505                                    dst_addr,  addr_len, tdata); 
    507506} 
    508507 
     
    510509/* Callback from our own STUN session when incoming request arrives. 
    511510 * This function is triggered by pj_stun_session_on_rx_pkt() call in 
    512   * pj_turn_srv_on_rx_pkt() function below. 
     511 * pj_turn_srv_on_rx_pkt() function below. 
    513512 */ 
    514513static pj_status_t on_rx_stun_request(pj_stun_session *sess, 
    515                                       const pj_uint8_t *pkt, 
    516                                       unsigned pkt_len, 
     514                                      const pj_uint8_t *pdu, 
     515                                      unsigned pdu_len, 
    517516                                      const pj_stun_rx_data *rdata, 
     517                                      void *token, 
    518518                                      const pj_sockaddr_t *src_addr, 
    519519                                      unsigned src_addr_len) 
    520520{ 
    521     pj_turn_listener *listener; 
     521    pj_turn_transport *transport; 
    522522    const pj_stun_msg *msg = rdata->msg; 
    523523    pj_turn_srv *srv; 
     
    525525    pj_status_t status; 
    526526 
    527     PJ_UNUSED_ARG(pkt); 
    528     PJ_UNUSED_ARG(pkt_len); 
    529  
    530     listener = (pj_turn_listener*) pj_stun_session_get_user_data(sess); 
    531     srv = listener->server; 
     527    PJ_UNUSED_ARG(pdu); 
     528    PJ_UNUSED_ARG(pdu_len); 
     529 
     530    transport = (pj_turn_transport*) token; 
     531    srv = transport->listener->server; 
    532532 
    533533    /* Respond any requests other than ALLOCATE with 437 response */ 
    534534    if (msg->hdr.type != PJ_STUN_ALLOCATE_REQUEST) { 
    535         stun_respond(sess, rdata, PJ_STUN_SC_ALLOCATION_MISMATCH, 
     535        stun_respond(sess, transport, rdata, PJ_STUN_SC_ALLOCATION_MISMATCH, 
    536536                     NULL, PJ_FALSE, src_addr, src_addr_len); 
    537537        return PJ_SUCCESS; 
     
    541541     * in this function. 
    542542     */ 
    543     status = pj_turn_allocation_create(listener, src_addr, src_addr_len, 
     543    status = pj_turn_allocation_create(transport, src_addr, src_addr_len, 
    544544                                       rdata, sess, &alloc); 
    545545    if (status != PJ_SUCCESS) { 
     
    577577    } else { 
    578578        /* Otherwise this is a new client */ 
    579         unsigned options, lis_id; 
     579        unsigned options; 
     580        unsigned parsed_len; 
    580581        pj_status_t status; 
    581582 
    582583        /* Check that this is a STUN message */ 
    583584        options = PJ_STUN_CHECK_PACKET; 
    584         if (pkt->listener->tp_type == PJ_TURN_TP_UDP) 
     585        if (pkt->transport->listener->tp_type == PJ_TURN_TP_UDP) 
    585586            options |= PJ_STUN_IS_DATAGRAM; 
    586587 
    587588        status = pj_stun_msg_check(pkt->pkt, pkt->len, options); 
    588589        if (status != PJ_SUCCESS) { 
    589             char errmsg[PJ_ERR_MSG_SIZE]; 
    590             char ip[PJ_INET6_ADDRSTRLEN+10]; 
    591  
    592             pj_strerror(status, errmsg, sizeof(errmsg)); 
    593             PJ_LOG(5,(srv->obj_name,  
    594                       "Non STUN packet from %s is dropped: %s", 
    595                       pj_sockaddr_print(&pkt->src.clt_addr, ip, sizeof(ip), 3), 
    596                       errmsg)); 
     590            /* If the first byte are not STUN, drop the packet. First byte 
     591             * of STUN message is always 0x00 or 0x01. Otherwise wait for 
     592             * more data as the data might have come from TCP. 
     593             * 
     594             * Also drop packet if it's unreasonably too big, as this might 
     595             * indicate invalid data that's building up in the buffer. 
     596             * 
     597             * Or if packet is a datagram. 
     598             */ 
     599            if ((*pkt->pkt != 0x00 && *pkt->pkt != 0x01) || 
     600                pkt->len > 1600 || 
     601                (options & PJ_STUN_IS_DATAGRAM))  
     602            { 
     603                char errmsg[PJ_ERR_MSG_SIZE]; 
     604                char ip[PJ_INET6_ADDRSTRLEN+10]; 
     605 
     606                pkt->len = 0; 
     607 
     608                pj_strerror(status, errmsg, sizeof(errmsg)); 
     609                PJ_LOG(5,(srv->obj_name,  
     610                          "Non-STUN packet from %s is dropped: %s", 
     611                          pj_sockaddr_print(&pkt->src.clt_addr, ip, sizeof(ip), 3), 
     612                          errmsg)); 
     613            } 
    597614            return; 
    598615        } 
    599  
    600         lis_id = pkt->listener->id; 
    601616 
    602617        /* Hand over processing to STUN session. This will trigger 
     
    605620         */ 
    606621        options &= ~PJ_STUN_CHECK_PACKET; 
    607         status = pj_stun_session_on_rx_pkt(srv->core.stun_sess[lis_id],  
    608                                            pkt->pkt, pkt->len, options, NULL, 
    609                                            &pkt->src.clt_addr,  
     622        parsed_len = 0; 
     623        status = pj_stun_session_on_rx_pkt(srv->core.stun_sess, pkt->pkt,  
     624                                           pkt->len, options, pkt->transport, 
     625                                           &parsed_len, &pkt->src.clt_addr,  
    610626                                           pkt->src_addr_len); 
    611627        if (status != PJ_SUCCESS) { 
     
    618634                      pj_sockaddr_print(&pkt->src.clt_addr, ip, sizeof(ip), 3), 
    619635                      errmsg)); 
    620             return; 
    621         } 
    622     } 
    623 } 
    624  
    625  
     636        } 
     637 
     638        if (pkt->transport->listener->tp_type == PJ_TURN_TP_UDP) { 
     639            pkt->len = 0; 
     640        } else if (parsed_len > 0) { 
     641            if (parsed_len == pkt->len) { 
     642                pkt->len = 0; 
     643            } else { 
     644                pj_memmove(pkt->pkt, pkt->pkt+parsed_len, 
     645                           pkt->len - parsed_len); 
     646                pkt->len -= parsed_len; 
     647            } 
     648        } 
     649    } 
     650} 
     651 
     652 
  • pjproject/trunk/pjnath/src/pjturn-srv/turn.h

    r1879 r1913  
    2323#include <pjnath.h> 
    2424 
    25 typedef struct pj_turn_relay_res            pj_turn_relay_res; 
     25typedef struct pj_turn_relay_res    pj_turn_relay_res; 
    2626typedef struct pj_turn_listener     pj_turn_listener; 
    27 typedef struct pj_turn_permission    pj_turn_permission; 
    28 typedef struct pj_turn_allocation    pj_turn_allocation; 
     27typedef struct pj_turn_transport    pj_turn_transport; 
     28typedef struct pj_turn_permission   pj_turn_permission; 
     29typedef struct pj_turn_allocation   pj_turn_allocation; 
    2930typedef struct pj_turn_srv          pj_turn_srv; 
    3031typedef struct pj_turn_pkt          pj_turn_pkt; 
     
    133134    pj_lock_t           *lock; 
    134135 
    135     /** TURN listener. */ 
    136     pj_turn_listener    *listener; 
    137  
    138     /** Client socket, if connection to client is using TCP. */ 
    139     pj_sock_t           clt_sock; 
     136    /** Server instance. */ 
     137    pj_turn_srv         *server; 
     138 
     139    /** Transport to send/receive packets to/from client. */ 
     140    pj_turn_transport   *transport; 
    140141 
    141142    /** The relay resource for this allocation. */ 
     
    181182    /** Hash table key */ 
    182183    pj_turn_permission_key hkey; 
    183  
    184     /** Transport socket. If TCP is used, the value will be the actual 
    185      *  TCP socket. If UDP is used, the value will be the relay address 
    186      */ 
    187     pj_sock_t           sock; 
    188184 
    189185    /** TURN allocation that owns this permission/channel */ 
     
    202198 * Create new allocation. 
    203199 */ 
    204 PJ_DECL(pj_status_t) pj_turn_allocation_create(pj_turn_listener *listener, 
    205                                               const pj_sockaddr_t *src_addr, 
    206                                               unsigned src_addr_len, 
    207                                               const pj_stun_rx_data *rdata, 
    208                                               pj_stun_session *srv_sess, 
    209                                               pj_turn_allocation **p_alloc); 
     200PJ_DECL(pj_status_t) pj_turn_allocation_create(pj_turn_transport *transport, 
     201                                               const pj_sockaddr_t *src_addr, 
     202                                               unsigned src_addr_len, 
     203                                               const pj_stun_rx_data *rdata, 
     204                                               pj_stun_session *srv_sess, 
     205                                               pj_turn_allocation **p_alloc); 
    210206/** 
    211207 * Destroy allocation. 
     
    218214 */ 
    219215PJ_DECL(void) pj_turn_allocation_on_rx_client_pkt(pj_turn_allocation *alloc, 
    220                                                  pj_turn_pkt *pkt); 
     216                                                  pj_turn_pkt *pkt); 
     217 
     218/** 
     219 * Handle transport closure. 
     220 */ 
     221PJ_DECL(void) pj_turn_allocation_on_transport_closed(pj_turn_allocation *alloc, 
     222                                                     pj_turn_transport *tp); 
    221223 
    222224/****************************************************************************/ 
     
    258260    unsigned            flags; 
    259261 
     262    /** Destroy handler */ 
     263    pj_status_t         (*destroy)(pj_turn_listener*); 
     264}; 
     265 
     266 
     267/** 
     268 * This structure describes TURN transport socket which is used to send and 
     269 * receive packets towards client. 
     270 */ 
     271struct pj_turn_transport 
     272{ 
     273    /** Object name/identification */ 
     274    char                *obj_name; 
     275 
     276    /** Slightly longer info about this listener */ 
     277    char                *info; 
     278 
     279    /** Listener instance */ 
     280    pj_turn_listener    *listener; 
     281 
    260282    /** Sendto handler */ 
    261     pj_status_t         (*sendto)(pj_turn_listener *listener, 
     283    pj_status_t         (*sendto)(pj_turn_transport *tp, 
    262284                                  const void *packet, 
    263285                                  pj_size_t size, 
     
    266288                                  int addr_len); 
    267289 
    268     /** Destroy handler */ 
    269     pj_status_t         (*destroy)(pj_turn_listener*); 
     290    /** Addref handler */ 
     291    void                (*add_ref)(pj_turn_transport *tp, 
     292                                   pj_turn_allocation *alloc); 
     293 
     294    /** Decref handler */ 
     295    void                (*dec_ref)(pj_turn_transport *tp, 
     296                                   pj_turn_allocation *alloc); 
     297 
    270298}; 
    271299 
     
    279307    pj_pool_t               *pool; 
    280308 
    281     /** Listener that owns this. */ 
    282     pj_turn_listener        *listener; 
     309    /** Transport where the packet was received. */ 
     310    pj_turn_transport       *transport; 
    283311 
    284312    /** Packet buffer (must be 32bit aligned). */ 
     
    300328 
    301329/** 
    302  * Create a new listener on the specified port. 
     330 * Create a UDP listener on the specified port. 
    303331 */ 
    304332PJ_DECL(pj_status_t) pj_turn_listener_create_udp(pj_turn_srv *srv, 
    305                                                 int af, 
    306                                                 const pj_str_t *bound_addr, 
    307                                                 unsigned port, 
    308                                                 unsigned concurrency_cnt, 
    309                                                 unsigned flags, 
    310                                                 pj_turn_listener **p_listener); 
    311  
    312 /** 
    313  * Send packet with this listener. 
    314  */ 
    315 PJ_DECL(pj_status_t) pj_turn_listener_sendto(pj_turn_listener *listener, 
    316                                             const void *packet, 
    317                                             pj_size_t size, 
    318                                             unsigned flag, 
    319                                             const pj_sockaddr_t *addr, 
    320                                             int addr_len); 
     333                                                 int af, 
     334                                                 const pj_str_t *bound_addr, 
     335                                                 unsigned port, 
     336                                                 unsigned concurrency_cnt, 
     337                                                 unsigned flags, 
     338                                                 pj_turn_listener **p_lis); 
     339 
     340/** 
     341 * Create a TCP listener on the specified port. 
     342 */ 
     343PJ_DECL(pj_status_t) pj_turn_listener_create_tcp(pj_turn_srv *srv, 
     344                                                 int af, 
     345                                                 const pj_str_t *bound_addr, 
     346                                                 unsigned port, 
     347                                                 unsigned concurrency_cnt, 
     348                                                 unsigned flags, 
     349                                                 pj_turn_listener **p_lis); 
    321350 
    322351/** 
     
    324353 */ 
    325354PJ_DECL(pj_status_t) pj_turn_listener_destroy(pj_turn_listener *listener); 
     355 
     356 
     357/** 
     358 * Add a reference to a transport. 
     359 */ 
     360PJ_DECL(void) pj_turn_transport_add_ref(pj_turn_transport *transport, 
     361                                        pj_turn_allocation *alloc); 
     362 
     363 
     364/** 
     365 * Decrement transport reference counter. 
     366 */ 
     367PJ_DECL(void) pj_turn_transport_dec_ref(pj_turn_transport *transport, 
     368                                        pj_turn_allocation *alloc); 
     369 
    326370 
    327371 
     
    361405        pj_turn_listener **listener; 
    362406 
    363         /** Array of STUN sessions, one for each listeners. */ 
    364         pj_stun_session **stun_sess; 
     407        /** STUN session to handle initial Allocate request. */ 
     408        pj_stun_session *stun_sess; 
    365409 
    366410        /** Number of worker threads. */ 
     
    457501 */ 
    458502PJ_DECL(void) pj_turn_srv_on_rx_pkt(pj_turn_srv *srv,  
    459                                    pj_turn_pkt *pkt); 
     503                                    pj_turn_pkt *pkt); 
    460504 
    461505 
Note: See TracChangeset for help on using the changeset viewer.