Update network features.

Add carbide files in separate folder.
This commit is contained in:
bossiel 2010-01-11 02:02:29 +00:00
parent e6a6aefce6
commit d56c604116
54 changed files with 1387 additions and 445 deletions

View File

@ -2,7 +2,7 @@
<?fileVersion 4.0.0?>
<cproject>
<storageModule buildFromInf="true" buildingTestComps="true" cleanLevel="0" concurrentBuildJobs="4" defaultMMPChangedAction="0" infBuildComponents="" infFileLocation="group/bld.inf" macrosFile="" makeEngineToUse="make" manageDependencies="true" moduleId="com.nokia.carbide.cdt.builder.carbideCPPBuilder" overrideMakeEngine="false" overrideWorkspaceSettings="false" promptForMMPChangedAction="true" useConcurrentBuilding="true" useDebugMode="false" useIncrementalBuilder="false" useKeepGoing="false" useMMPMacros="true"/>
<storageModule buildFromInf="true" buildingTestComps="true" cleanLevel="0" concurrentBuildJobs="4" defaultMMPChangedAction="0" infBuildComponents="" infFileLocation="group/bld.inf" macrosFile="" makeEngineToUse="make" manageDependencies="true" moduleId="com.nokia.carbide.cdt.builder.carbideCPPBuilder" overrideMakeEngine="false" overrideWorkspaceSettings="false" promptForMMPChangedAction="false" useConcurrentBuilding="true" useDebugMode="false" useIncrementalBuilder="false" useKeepGoing="false" useMMPMacros="true"/>
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="Emulator Debug (WINSCW) [S60_5th_Edition_SDK_v1.0]">
<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Debug (WINSCW) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Debug (WINSCW) [S60_5th_Edition_SDK_v1.0]">
@ -26,9 +26,8 @@
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinySAK\test\group\bld.inf;C:\Projects\Doubango\tinySAK\test\group\test.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__S60_50__;__EXE__;__WINSCW__;__SUPPORT_CPP_EXCEPTIONS__;__SYMBIAN32__;__S60_3X__;_UNICODE;__S60_5X__;__SERIES60_3X__;_DEBUG;__WINS__;__CW32__;" moduleId="configDataCache" sourcesCache="" timestampCache="1261773755570" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\test_tinyNET\group\test_tinyNET.mmp;C:\Projects\Doubango\carbide\test_tinyNET\group\bld.inf;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/Projects/Doubango/tinyNET/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__S60_50__;__EXE__;__WINSCW__;__SUPPORT_CPP_EXCEPTIONS__;__SYMBIAN32__;__S60_3X__;_UNICODE;__S60_5X__;__SERIES60_3X__;_DEBUG;__WINS__;__CW32__;" moduleId="configDataCache" sourcesCache="/test_tinyNET/test;/tinyNET/src;/tinySAK/src;src;" timestampCache="1263170332673" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Debug (ARMV5) [S60_5th_Edition_SDK_v1.0]">
@ -53,9 +52,8 @@
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinySAK\test\group\bld.inf;C:\Projects\Doubango\tinySAK\test\group\test.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="" timestampCache="1261773755570" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\test_tinyNET\group\test_tinyNET.mmp;C:\Projects\Doubango\carbide\test_tinyNET\group\bld.inf;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/Projects/Doubango/tinyNET/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="/test_tinyNET/test;/tinyNET/src;/tinySAK/src;src;" timestampCache="1263170332688" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Release (ARMV5) [S60_5th_Edition_SDK_v1.0]">
@ -80,9 +78,8 @@
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinySAK\test\group\bld.inf;C:\Projects\Doubango\tinySAK\test\group\test.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;NDEBUG;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="" timestampCache="1261773755601" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\test_tinyNET\group\test_tinyNET.mmp;C:\Projects\Doubango\carbide\test_tinyNET\group\bld.inf;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/Projects/Doubango/tinyNET/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;NDEBUG;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="/test_tinyNET/test;/tinyNET/src;/tinySAK/src;src;" timestampCache="1263170332704" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]">
@ -106,9 +103,8 @@
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinySAK\test\group\bld.inf;C:\Projects\Doubango\tinySAK\test\group\test.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="" timestampCache="1261773755601" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\test_tinyNET\group\test_tinyNET.mmp;C:\Projects\Doubango\carbide\test_tinyNET\group\bld.inf;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/Projects/Doubango/tinyNET/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="/test_tinyNET/test;/tinyNET/src;/tinySAK/src;src;" timestampCache="1263170332719" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Release (GCCE) [S60_5th_Edition_SDK_v1.0]">
@ -132,9 +128,8 @@
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinySAK\test\group\bld.inf;C:\Projects\Doubango\tinySAK\test\group\test.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;NDEBUG;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="" timestampCache="1261773755617" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\test_tinyNET\group\test_tinyNET.mmp;C:\Projects\Doubango\carbide\test_tinyNET\group\bld.inf;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/Projects/Doubango/tinyNET/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;NDEBUG;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="/test_tinyNET/test;/tinyNET/src;/tinySAK/src;src;" timestampCache="1263170332735" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
</storageModule>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>testSAK</name>
<name>test_tinyNET</name>
<comment></comment>
<projects>
</projects>
@ -16,4 +16,11 @@
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>com.nokia.carbide.cdt.builder.carbideCPPBuilderNature</nature>
</natures>
<linkedResources>
<link>
<name>test</name>
<type>2</type>
<location>C:/Projects/Doubango/tinyNET/test</location>
</link>
</linkedResources>
</projectDescription>

View File

@ -0,0 +1,15 @@
@ECHO OFF
REM Bldmake-generated batch file - ABLD.BAT
REM ** DO NOT EDIT **
perl -S ABLD.PL "\Projects\Doubango\carbide\test_tinyNET\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel==1 goto CheckPerl
goto End
:CheckPerl
perl -v >NUL
if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
goto End
:End

View File

@ -0,0 +1,32 @@
/*
============================================================================
Name : bld.inf
Author : Mamadou Diop
Copyright : * Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
Description : This file provides the information required for building the
whole of a test_tinyNET.
============================================================================
*/
PRJ_PLATFORMS
DEFAULT
PRJ_MMPFILES
test_tinyNET.mmp

View File

@ -0,0 +1,48 @@
/*
============================================================================
Name : test_tinyNET.mmp
Author : Mamadou Diop
Copyright : * Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
Description : This is the project specification file for test_tinyNET.
============================================================================
*/
TARGET test_tinyNET.exe
TARGETTYPE exe
UID 0 0xEAE425AB
USERINCLUDE ..\..\..\tinySAK\src ..\..\..\tinyNET\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\stdapis \epoc32\include\stdapis\sys
// Using main() as entry point
STATICLIBRARY libcrt0.lib
LIBRARY euser.lib libc.lib tinySAK.lib tinyNET.lib
#ifdef ENABLE_ABIV2_MODE
DEBUGGABLE_UDEBONLY
#endif
SOURCEPATH ..\..\..\tinyNET\test
SOURCE stdafx.c test.c
CAPABILITY WriteDeviceData

View File

@ -0,0 +1,24 @@
; Installation file for Symbian OS 9.x for generic console application
; Installation file for test_tinyNET EXE
;
; This is an auto-generated PKG file by Carbide.
; This file uses variables specific to Carbide builds that will not work
; on command-line builds. If you want to use this generated PKG file from the
; command-line tools you will need to modify the variables with the appropriate
; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
;
;
; UID is the exe's UID
;
#{"test_tinyNET EXE"},(0xEAE425AB),1,0,0
;Localised Vendor name
%{"Vendor-EN"}
;Unique Vendor name
:"Vendor"
"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\test_tinyNET.exe" -"!:\sys\bin\test_tinyNET.exe"

View File

@ -22,15 +22,14 @@
</extensions>
</storageModule>
<storageModule moduleId="CarbideConfigurationDataProvider">
<ENV_VAR_DATA_ID/>
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinyNET\group\bld.inf;C:\Projects\Doubango\tinyNET\group\tinyNET.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;TINYNET_EXPORTS;__S60_50__;__WINSCW__;_UNICODE;__S60_3X__;__S60_5X__;_DEBUG;__SERIES60_3X__;__DLL__;__WINS__;" moduleId="configDataCache" sourcesCache="/tinyNET/src;/tinySAK/src;" timestampCache="1261732924220" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\test_tinySAK\group\test_tinySAK.mmp;C:\Projects\Doubango\carbide\test_tinySAK\group\bld.inf;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__S60_50__;__EXE__;__WINSCW__;__SUPPORT_CPP_EXCEPTIONS__;__SYMBIAN32__;__S60_3X__;_UNICODE;__S60_5X__;__SERIES60_3X__;_DEBUG;__WINS__;__CW32__;" moduleId="configDataCache" sourcesCache="/test_tinySAK/test;/tinySAK/src;" timestampCache="1263161617075" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Debug (ARMV5) [S60_5th_Edition_SDK_v1.0]">
<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (ARMV5) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (ARMV5) [S60_5th_Edition_SDK_v1.0]">
@ -50,15 +49,14 @@
</extensions>
</storageModule>
<storageModule moduleId="CarbideConfigurationDataProvider">
<ENV_VAR_DATA_ID/>
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinyNET\group\bld.inf;C:\Projects\Doubango\tinyNET\group\tinyNET.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;TINYNET_EXPORTS;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinyNET/src;/tinySAK/src;" timestampCache="1261732924236" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\test_tinySAK\group\test_tinySAK.mmp;C:\Projects\Doubango\carbide\test_tinySAK\group\bld.inf;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="/test_tinySAK/test;/tinySAK/src;;" timestampCache="1263161617090" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
</cconfiguration>
<cconfiguration id="Phone Release (ARMV5) [S60_5th_Edition_SDK_v1.0]">
<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (ARMV5) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (ARMV5) [S60_5th_Edition_SDK_v1.0]">
@ -78,15 +76,14 @@
</extensions>
</storageModule>
<storageModule moduleId="CarbideConfigurationDataProvider">
<ENV_VAR_DATA_ID/>
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinyNET\group\bld.inf;C:\Projects\Doubango\tinyNET\group\tinyNET.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;NDEBUG;TINYNET_EXPORTS;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinyNET/src;/tinySAK/src;" timestampCache="1261732924236" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\test_tinySAK\group\test_tinySAK.mmp;C:\Projects\Doubango\carbide\test_tinySAK\group\bld.inf;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;NDEBUG;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="/test_tinySAK/test;/tinySAK/src;;" timestampCache="1263161617106" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
</cconfiguration>
<cconfiguration id="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]">
<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]">
@ -105,15 +102,14 @@
</extensions>
</storageModule>
<storageModule moduleId="CarbideConfigurationDataProvider">
<ENV_VAR_DATA_ID/>
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinyNET\group\bld.inf;C:\Projects\Doubango\tinyNET\group\tinyNET.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;TINYNET_EXPORTS;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinyNET/src;/tinySAK/src;" timestampCache="1261732924251" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\test_tinySAK\group\test_tinySAK.mmp;C:\Projects\Doubango\carbide\test_tinySAK\group\bld.inf;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="/test_tinySAK/test;/tinySAK/src;;" timestampCache="1263161617122" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
</cconfiguration>
<cconfiguration id="Phone Release (GCCE) [S60_5th_Edition_SDK_v1.0]">
<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (GCCE) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (GCCE) [S60_5th_Edition_SDK_v1.0]">
@ -132,15 +128,14 @@
</extensions>
</storageModule>
<storageModule moduleId="CarbideConfigurationDataProvider">
<ENV_VAR_DATA_ID/>
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinyNET\group\bld.inf;C:\Projects\Doubango\tinyNET\group\tinyNET.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;NDEBUG;TINYNET_EXPORTS;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinyNET/src;/tinySAK/src;" timestampCache="1261732924267" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\test_tinySAK\group\test_tinySAK.mmp;C:\Projects\Doubango\carbide\test_tinySAK\group\bld.inf;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__EXE__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;NDEBUG;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;__SERIES60_3X__;__MARM_ARMV5__;" moduleId="configDataCache" sourcesCache="/test_tinySAK/test;/tinySAK/src;;" timestampCache="1263161617137" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
</cconfiguration>
</storageModule>
</cproject>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>test_tinySAK</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.nokia.carbide.cdt.builder.carbideCPPBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>com.nokia.carbide.cdt.builder.carbideCPPBuilderNature</nature>
</natures>
<linkedResources>
<link>
<name>test</name>
<type>2</type>
<location>C:/Projects/Doubango/tinySAK/test</location>
</link>
</linkedResources>
</projectDescription>

View File

@ -0,0 +1,15 @@
@ECHO OFF
REM Bldmake-generated batch file - ABLD.BAT
REM ** DO NOT EDIT **
perl -S ABLD.PL "\Projects\Doubango\carbide\test_tinySAK\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel==1 goto CheckPerl
goto End
:CheckPerl
perl -v >NUL
if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
goto End
:End

View File

@ -0,0 +1,32 @@
/*
============================================================================
Name : bld.inf
Author : Mamadou Diop
Copyright : * Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
Description : This file provides the information required for building the
whole of a test_tinySAK.
============================================================================
*/
PRJ_PLATFORMS
DEFAULT
PRJ_MMPFILES
test_tinySAK.mmp

View File

@ -0,0 +1,44 @@
/*
============================================================================
Name : test_tinySAK.mmp
Author : Mamadou Diop
Copyright : * Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
Description : This is the project specification file for test_tinySAK.
============================================================================
*/
TARGET test_tinySAK.exe
TARGETTYPE exe
UID 0 0xE61D970D
USERINCLUDE ..\..\..\tinySAK\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\stdapis \epoc32\include\stdapis\sys
// Using main() as entry point
STATICLIBRARY libcrt0.lib
LIBRARY euser.lib libc.lib tinySAK.lib
#ifdef ENABLE_ABIV2_MODE
DEBUGGABLE_UDEBONLY
#endif
SOURCEPATH ..\..\..\tinySAK\test
SOURCE stdafx.c test.c

View File

@ -0,0 +1,24 @@
; Installation file for Symbian OS 9.x for generic console application
; Installation file for test_tinySAK EXE
;
; This is an auto-generated PKG file by Carbide.
; This file uses variables specific to Carbide builds that will not work
; on command-line builds. If you want to use this generated PKG file from the
; command-line tools you will need to modify the variables with the appropriate
; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
;
;
; UID is the exe's UID
;
#{"test_tinySAK EXE"},(0xE61D970D),1,0,0
;Localised Vendor name
%{"Vendor-EN"}
;Unique Vendor name
:"Vendor"
"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\test_tinySAK.exe" -"!:\sys\bin\test_tinySAK.exe"

View File

@ -0,0 +1,136 @@
<?xml version="1.0" encoding="UTF-8"?>
<?fileVersion 4.0.0?>
<cproject>
<storageModule buildFromInf="true" buildingTestComps="true" cleanLevel="0" concurrentBuildJobs="4" defaultMMPChangedAction="0" infBuildComponents="" infFileLocation="group/bld.inf" macrosFile="" makeEngineToUse="make" manageDependencies="true" moduleId="com.nokia.carbide.cdt.builder.carbideCPPBuilder" overrideMakeEngine="false" overrideWorkspaceSettings="false" promptForMMPChangedAction="false" useConcurrentBuilding="true" useDebugMode="false" useIncrementalBuilder="false" useKeepGoing="false" useMMPMacros="true"/>
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="Emulator Debug (WINSCW) [S60_5th_Edition_SDK_v1.0]">
<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Debug (WINSCW) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Debug (WINSCW) [S60_5th_Edition_SDK_v1.0]">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.MWLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.MWCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="CarbideConfigurationDataProvider">
<ENV_VAR_DATA_ID/>
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\carbide\tinyNET\group\bld.inf;C:\Projects\Doubango\carbide\tinyNET\group\tinyNET.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;TINYNET_EXPORTS;__S60_50__;__WINSCW__;_UNICODE;__S60_3X__;__S60_5X__;_DEBUG;__SERIES60_3X__;__DLL__;__WINS__;" moduleId="configDataCache" sourcesCache="/tinyNET/src;/tinySAK/src;src;" timestampCache="1263170322689" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Debug (ARMV5) [S60_5th_Edition_SDK_v1.0]">
<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (ARMV5) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (ARMV5) [S60_5th_Edition_SDK_v1.0]">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="CarbideConfigurationDataProvider">
<ENV_VAR_DATA_ID/>
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\carbide\tinyNET\group\bld.inf;C:\Projects\Doubango\carbide\tinyNET\group\tinyNET.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;TINYNET_EXPORTS;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinyNET/src;/tinySAK/src;src;" timestampCache="1263170322704" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Release (ARMV5) [S60_5th_Edition_SDK_v1.0]">
<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (ARMV5) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (ARMV5) [S60_5th_Edition_SDK_v1.0]">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.nokia.carbide.cdt.builder.RVCTCompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.RVCTLinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="CarbideConfigurationDataProvider">
<ENV_VAR_DATA_ID/>
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\carbide\tinyNET\group\bld.inf;C:\Projects\Doubango\carbide\tinyNET\group\tinyNET.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;NDEBUG;TINYNET_EXPORTS;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinyNET/src;/tinySAK/src;src;" timestampCache="1263170322720" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]">
<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.GCCEErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="CarbideConfigurationDataProvider">
<ENV_VAR_DATA_ID/>
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\carbide\tinyNET\group\bld.inf;C:\Projects\Doubango\carbide\tinyNET\group\tinyNET.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;TINYNET_EXPORTS;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinyNET/src;/tinySAK/src;src;" timestampCache="1263170322735" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Release (GCCE) [S60_5th_Edition_SDK_v1.0]">
<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Release (GCCE) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Phone Release (GCCE) [S60_5th_Edition_SDK_v1.0]">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.GCCEErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="CarbideConfigurationDataProvider">
<ENV_VAR_DATA_ID/>
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\carbide\tinyNET\group\bld.inf;C:\Projects\Doubango\carbide\tinyNET\group\tinyNET.mmp;" includesCache="C:/Projects/Doubango/tinySAK/src[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;NDEBUG;TINYNET_EXPORTS;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinyNET/src;/tinySAK/src;src;" timestampCache="1263170322751" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
</storageModule>
</cproject>

View File

@ -16,4 +16,11 @@
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>com.nokia.carbide.cdt.builder.carbideCPPBuilderNature</nature>
</natures>
<linkedResources>
<link>
<name>src</name>
<type>2</type>
<location>C:/Projects/Doubango/tinyNET/src</location>
</link>
</linkedResources>
</projectDescription>

View File

@ -0,0 +1,34 @@
EXPORTS
tnet_cleanup @ 1 NONAME
tnet_freeaddrinfo @ 2 NONAME
tnet_get_ip_n_port @ 3 NONAME
tnet_getaddrinfo @ 4 NONAME
tnet_geterrno @ 5 NONAME
tnet_gethostname @ 6 NONAME
tnet_getlasterror @ 7 NONAME
tnet_getnameinfo @ 8 NONAME
tnet_sockaddr_init @ 9 NONAME
tnet_sockaddrinfo_init @ 10 NONAME
tnet_socket_def_t @ 11 NONAME
tnet_socket_dgram_sendto @ 12 NONAME
tnet_socket_stream_connectto @ 13 NONAME
tnet_sockfd_close @ 14 NONAME
tnet_sockfd_init @ 15 NONAME
tnet_sockfd_set_nonblocking @ 16 NONAME
tnet_startup @ 17 NONAME
tnet_transport_add_socket @ 18 NONAME
tnet_transport_connectto @ 19 NONAME
tnet_transport_def_t @ 20 NONAME
tnet_transport_get_description @ 21 NONAME
tnet_transport_get_ip_n_port @ 22 NONAME
tnet_transport_get_socket_type @ 23 NONAME
tnet_transport_has_socket @ 24 NONAME
tnet_transport_isconnected @ 25 NONAME
tnet_transport_isready @ 26 NONAME
tnet_transport_issecure @ 27 NONAME
tnet_transport_send @ 28 NONAME
tnet_transport_sendto @ 29 NONAME
tnet_transport_set_callback @ 30 NONAME
tnet_transport_shutdown @ 31 NONAME
tnet_transport_start @ 32 NONAME

View File

@ -0,0 +1,15 @@
@ECHO OFF
REM Bldmake-generated batch file - ABLD.BAT
REM ** DO NOT EDIT **
perl -S ABLD.PL "\Projects\Doubango\carbide\tinyNET\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel==1 goto CheckPerl
goto End
:CheckPerl
perl -v >NUL
if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
goto End
:End

View File

@ -0,0 +1,34 @@
/*
============================================================================
Name : bld.inf
Author : Mamadou Diop
Copyright : * Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
Description : This file provides the information required for building the
whole of a tinyNET.
============================================================================
*/
PRJ_PLATFORMS
DEFAULT
PRJ_EXPORTS
PRJ_MMPFILES
tinyNET.mmp

View File

@ -0,0 +1,74 @@
/*
============================================================================
Name : tinyNET.mmp
Author : Mamadou Diop
Copyright : * Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
Description : This is the project specification file for tinyNET.
============================================================================
*/
TARGET tinyNET.dll
TARGETTYPE dll
UID 0x1000008d 0xE6E8E096
USERINCLUDE ..\..\..\tinySAK\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\stdapis \epoc32\include\stdapis\sys
// In order to use .def files to freeze code you must use one or more DEFFILE lines;
// see the ones commented out below for examples.
// By default, the build tools look for the WINSCW def file in a BWINS directory
// (at the same level as the directory containing the mmp file),
// the GCC ARM def file in a BMARM directory, and the ARMV5 def file in a EABI directory.
// If your .def files are stored in these default locations, you can simply specify the
// .def filename(s) with no path. If you want to store .def files in non-default
// locations, you will need to specify the paths in the DEFFILE statement(s).
//The following commented out code shows how the build system uses the implicit
// location for defiles. To create the DEF files Choose Project > Freeze Exports from Carbide
// or run 'abld freeze' from the command-line
//#if defined (WINS)
// DEFFILE ..\bwins\tinyNET.def
//#elif defined (GCC32)
// DEFFILE ..\bmarm\tinyNET.def
//#else
// DEFFILE ..\eabi\tinyNET.def
//#endif
nostrictdef
LIBRARY euser.lib libc.lib tinySAK.lib
#ifdef ENABLE_ABIV2_MODE
DEBUGGABLE_UDEBONLY
#endif
MACRO TINYNET_EXPORTS
EPOCALLOWDLLDATA
SOURCEPATH ..\..\..\tinyNET\src
SOURCE tnet.c tnet_auth.c tnet_poll.c tnet_socket.c tnet_transport.c tnet_transport_poll.c tnet_transport_win32.c tnet_utils.c
EXPORTUNFROZEN
CAPABILITY WriteDeviceData

View File

@ -0,0 +1,21 @@
; Installation file for tinyNET dll
;
; This is an auto-generated PKG file by Carbide.
; This file uses variables specific to Carbide builds that will not work
; on command-line builds. If you want to use this generated PKG file from the
; command-line tools you will need to modify the variables with the appropriate
; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
;
; UID is the dll's UID
;
#{"tinyNET DLL"},(0xE6E8E096),1,0,0
;Localised Vendor name
%{"Vendor-EN"}
;Unique Vendor name
:"Vendor"
"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\tinyNET.dll" -"!:\sys\bin\tinyNET.dll"

View File

@ -26,9 +26,8 @@
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinySAK\group\bld.inf;C:\Projects\Doubango\tinySAK\group\tinySAK.mmp;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;__S60_50__;__WINSCW__;_UNICODE;__S60_3X__;__S60_5X__;_DEBUG;__SERIES60_3X__;TINYSAK_EXPORTS;__DLL__;__WINS__;" moduleId="configDataCache" sourcesCache="/tinySAK/src;src;" timestampCache="1261708366332" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\tinySAK\group\tinySAK.mmp;C:\Projects\Doubango\carbide\tinySAK\group\bld.inf;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__CW32__;__S60_50__;__WINSCW__;_UNICODE;__S60_3X__;__S60_5X__;TINYSAK_EXPORTS;_DEBUG;__SERIES60_3X__;DEBUG_LEVEL=DEBUG_LEVEL_INFO;__DLL__;__WINS__;" moduleId="configDataCache" sourcesCache="/tinySAK/src;src;" timestampCache="1263161127947" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Debug (ARMV5) [S60_5th_Edition_SDK_v1.0]">
@ -53,9 +52,8 @@
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinySAK\group\bld.inf;C:\Projects\Doubango\tinySAK\group\tinySAK.mmp;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;TINYSAK_EXPORTS;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinySAK/src;src;" timestampCache="1261708366347" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\tinySAK\group\tinySAK.mmp;C:\Projects\Doubango\carbide\tinySAK\group\bld.inf;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;TINYSAK_EXPORTS;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinySAK/src;src;" timestampCache="1263161127963" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Release (ARMV5) [S60_5th_Edition_SDK_v1.0]">
@ -80,9 +78,8 @@
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinySAK\group\bld.inf;C:\Projects\Doubango\tinySAK\group\tinySAK.mmp;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;NDEBUG;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;TINYSAK_EXPORTS;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinySAK/src;src;" timestampCache="1261708366363" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\tinySAK\group\tinySAK.mmp;C:\Projects\Doubango\carbide\tinySAK\group\bld.inf;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__ARMCC_2__;NDEBUG;__ARMCC__;__MARM__;__S60_50__;__S60_3X__;__ARMCC_2_2__;_UNICODE;__S60_5X__;TINYSAK_EXPORTS;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinySAK/src;src;" timestampCache="1263161127978" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]">
@ -106,9 +103,8 @@
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinySAK\group\bld.inf;C:\Projects\Doubango\tinySAK\group\tinySAK.mmp;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;TINYSAK_EXPORTS;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinySAK/src;src;" timestampCache="1261708366379" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\tinySAK\group\tinySAK.mmp;C:\Projects\Doubango\carbide\tinySAK\group\bld.inf;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;TINYSAK_EXPORTS;_DEBUG;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinySAK/src;src;" timestampCache="1263161127994" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
<cconfiguration id="Phone Release (GCCE) [S60_5th_Edition_SDK_v1.0]">
@ -132,9 +128,8 @@
<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\"/>
</storageModule>
<storageModule filesCache="C:\Projects\Doubango\tinySAK\group\bld.inf;C:\Projects\Doubango\tinySAK\group\tinySAK.mmp;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;NDEBUG;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;TINYSAK_EXPORTS;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinySAK/src;src;" timestampCache="1261708366394" useMmpMacrosCache="true"/>
<storageModule filesCache="C:\Projects\Doubango\carbide\tinySAK\group\tinySAK.mmp;C:\Projects\Doubango\carbide\tinySAK\group\bld.inf;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/stdapis/sys;" macrosCache="__GENERIC_MARM__;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__EPOC32__;__EABI__;__GCCE__;NDEBUG;__MARM__;__S60_50__;_UNICODE;__S60_3X__;__S60_5X__;TINYSAK_EXPORTS;__SERIES60_3X__;__MARM_ARMV5__;__DLL__;" moduleId="configDataCache" sourcesCache="/tinySAK/src;src;" timestampCache="1263161127994" useMmpMacrosCache="true"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cconfiguration>
</storageModule>

View File

@ -16,4 +16,11 @@
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>com.nokia.carbide.cdt.builder.carbideCPPBuilderNature</nature>
</natures>
<linkedResources>
<link>
<name>src</name>
<type>2</type>
<location>C:/Projects/Doubango/tinySAK/src</location>
</link>
</linkedResources>
</projectDescription>

View File

@ -0,0 +1,109 @@
EXPORTS
hmac_md5_compute @ 1 NONAME
hmac_md5digest_compute @ 2 NONAME
hmac_sha1_compute @ 3 NONAME
hmac_sha1digest_compute @ 4 NONAME
tsk_b10tob16 @ 5 NONAME
tsk_b16tob10 @ 6 NONAME
tsk_base64_decode @ 7 NONAME
tsk_base64_encode @ 8 NONAME
tsk_buffer_append @ 9 NONAME
tsk_buffer_appendEx @ 10 NONAME
tsk_buffer_cleanup @ 11 NONAME
tsk_buffer_def_t @ 12 NONAME
tsk_calloc @ 13 NONAME
tsk_condwait_broadcast @ 14 NONAME
tsk_condwait_create @ 15 NONAME
tsk_condwait_destroy @ 16 NONAME
tsk_condwait_signal @ 17 NONAME
tsk_condwait_timedwait @ 18 NONAME
tsk_condwait_wait @ 19 NONAME
tsk_free @ 20 NONAME
tsk_gettimeofday @ 21 NONAME
tsk_itoa @ 22 NONAME
tsk_list_clear_items @ 23 NONAME
tsk_list_def_t @ 24 NONAME
tsk_list_find_item_by_data @ 25 NONAME
tsk_list_find_item_by_pred @ 26 NONAME
tsk_list_item_def_t @ 27 NONAME
tsk_list_pop_first_item @ 28 NONAME
tsk_list_push_data @ 29 NONAME
tsk_list_push_filtered_data @ 30 NONAME
tsk_list_push_filtered_item @ 31 NONAME
tsk_list_push_item @ 32 NONAME
tsk_list_push_list @ 33 NONAME
tsk_list_remove_item @ 34 NONAME
tsk_list_remove_item_by_data @ 35 NONAME
tsk_list_remove_item_by_pred @ 36 NONAME
tsk_malloc @ 37 NONAME
tsk_md5compute @ 38 NONAME
tsk_md5final @ 39 NONAME
tsk_md5init @ 40 NONAME
tsk_md5transform @ 41 NONAME
tsk_md5update @ 42 NONAME
tsk_mutex_create @ 43 NONAME
tsk_mutex_destroy @ 44 NONAME
tsk_mutex_lock @ 45 NONAME
tsk_mutex_unlock @ 46 NONAME
tsk_object_cmp @ 47 NONAME
tsk_object_delete @ 48 NONAME
tsk_object_new @ 49 NONAME
tsk_object_new2 @ 50 NONAME
tsk_object_ref @ 51 NONAME
tsk_object_sizeof @ 52 NONAME
tsk_object_unref @ 53 NONAME
tsk_param_def_t @ 54 NONAME
tsk_params_add_param @ 55 NONAME
tsk_params_get_param_by_name @ 56 NONAME
tsk_params_get_param_value @ 57 NONAME
tsk_params_get_param_value_as_int @ 58 NONAME
tsk_params_has_param @ 59 NONAME
tsk_params_param_tostring @ 60 NONAME
tsk_params_parse_param @ 61 NONAME
tsk_params_remove_param @ 62 NONAME
tsk_params_tostring @ 63 NONAME
tsk_pppfcs16 @ 64 NONAME
tsk_realloc @ 65 NONAME
tsk_runnable_start @ 66 NONAME
tsk_runnable_stop @ 67 NONAME
tsk_semaphore_create @ 68 NONAME
tsk_semaphore_decrement @ 69 NONAME
tsk_semaphore_destroy @ 70 NONAME
tsk_semaphore_increment @ 71 NONAME
tsk_sha1compute @ 72 NONAME
tsk_sha1final @ 73 NONAME
tsk_sha1input @ 74 NONAME
tsk_sha1reset @ 75 NONAME
tsk_sha1result @ 76 NONAME
tsk_sprintf @ 77 NONAME
tsk_str_from_hex @ 78 NONAME
tsk_str_to_hex @ 79 NONAME
tsk_strcat @ 80 NONAME
tsk_strcmp @ 81 NONAME
tsk_strcontains @ 82 NONAME
tsk_strdup @ 83 NONAME
tsk_stricmp @ 84 NONAME
tsk_string_def_t @ 85 NONAME
tsk_strncmp @ 86 NONAME
tsk_strnicmp @ 87 NONAME
tsk_strquote @ 88 NONAME
tsk_strrandom @ 89 NONAME
tsk_strtrim_left @ 90 NONAME
tsk_strtrim_right @ 91 NONAME
tsk_strunquote @ 92 NONAME
tsk_strupdate @ 93 NONAME
tsk_thread_create @ 94 NONAME
tsk_thread_join @ 95 NONAME
tsk_thread_sleep @ 96 NONAME
tsk_time_epoch @ 97 NONAME
tsk_timer_def_t @ 98 NONAME
tsk_timer_manager_cancel @ 99 NONAME
tsk_timer_manager_debug @ 100 NONAME
tsk_timer_manager_def_t @ 101 NONAME
tsk_timer_manager_isready @ 102 NONAME
tsk_timer_manager_schedule @ 103 NONAME
tsk_timer_manager_start @ 104 NONAME
tsk_timer_manager_stop @ 105 NONAME
tsk_url_decode @ 106 NONAME
tsk_url_encode @ 107 NONAME

View File

@ -0,0 +1,15 @@
@ECHO OFF
REM Bldmake-generated batch file - ABLD.BAT
REM ** DO NOT EDIT **
perl -S ABLD.PL "\Projects\Doubango\carbide\tinySAK\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel==1 goto CheckPerl
goto End
:CheckPerl
perl -v >NUL
if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
goto End
:End

View File

@ -0,0 +1,34 @@
/*
============================================================================
Name : bld.inf
Author : Mamadou Diop
Copyright : * Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
Description : This file provides the information required for building the
whole of a tinySAK.
============================================================================
*/
PRJ_PLATFORMS
DEFAULT
PRJ_EXPORTS
PRJ_MMPFILES
tinySAK.mmp

View File

@ -0,0 +1,74 @@
/*
============================================================================
Name : tinySAK.mmp
Author : Mamadou Diop
Copyright : * Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
Description : This is the project specification file for tinySAK.
============================================================================
*/
TARGET tinySAK.dll
TARGETTYPE dll
UID 0x1000008d 0xEC7A68FB
//USERINCLUDE ..\..\..\tinySAK\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\stdapis \epoc32\include\stdapis\sys
// In order to use .def files to freeze code you must use one or more DEFFILE lines;
// see the ones commented out below for examples.
// By default, the build tools look for the WINSCW def file in a BWINS directory
// (at the same level as the directory containing the mmp file),
// the GCC ARM def file in a BMARM directory, and the ARMV5 def file in a EABI directory.
// If your .def files are stored in these default locations, you can simply specify the
// .def filename(s) with no path. If you want to store .def files in non-default
// locations, you will need to specify the paths in the DEFFILE statement(s).
//The following commented out code shows how the build system uses the implicit
// location for defiles. To create the DEF files Choose Project > Freeze Exports from Carbide
// or run 'abld freeze' from the command-line
//#if defined (WINS)
// DEFFILE ..\bwins\tinySAK.def
//#elif defined (GCC32)
// DEFFILE ..\bmarm\tinySAK.def
//#else
// DEFFILE ..\eabi\tinySAK.def
//#endif
#if defined(WINS)
MACRO DEBUG_LEVEL=DEBUG_LEVEL_INFO
#endif
nostrictdef
LIBRARY euser.lib libc.lib libpthread.lib
#ifdef ENABLE_ABIV2_MODE
DEBUGGABLE_UDEBONLY
#endif
MACRO TINYSAK_EXPORTS
EPOCALLOWDLLDATA
SOURCEPATH ..\..\..\tinySAK\src
SOURCE tsk.c tsk_base64.c tsk_binaryutils.c tsk_buffer.c tsk_condwait.c tsk_debug.c tsk_heap.c tsk_hmac.c tsk_list.c tsk_md5.c tsk_memory.c tsk_mutex.c tsk_object.c tsk_params.c tsk_ppfcs16.c tsk_runnable.c tsk_safeobj.c tsk_semaphore.c tsk_sha1.c tsk_string.c tsk_thread.c tsk_time.c tsk_timer.c tsk_xml.c tsk_url.c

View File

@ -0,0 +1,21 @@
; Installation file for tinySAK dll
;
; This is an auto-generated PKG file by Carbide.
; This file uses variables specific to Carbide builds that will not work
; on command-line builds. If you want to use this generated PKG file from the
; command-line tools you will need to modify the variables with the appropriate
; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
;
; UID is the dll's UID
;
#{"tinySAK DLL"},(0xEC7A68FB),1,0,0
;Localised Vendor name
%{"Vendor-EN"}
;Unique Vendor name
:"Vendor"
"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\tinySAK.dll" -"!:\sys\bin\tinySAK.dll"

View File

@ -91,7 +91,7 @@
# define TNET_USE_POLL 1
#endif
#if defined(__APPLE__)
#if defined(__APPLE__) /*|| defined(__SYMBIAN32__)*/
# define TNET_HAVE_SS_LEN 1
#else
# define TNET_HAVE_SS_LEN 0

View File

@ -38,8 +38,6 @@
#include "tnet_poll.h"
#include <unistd.h>
#define TNET_MAX_FDS 64
/*== Socket description ==*/

View File

@ -319,7 +319,7 @@ static void transport_socket_add(tnet_fd_t fd, transport_context_t *context)
/*== Remove socket ==*/
static void transport_socket_remove(int index, transport_context_t *context)
{
int i;
size_t i;
if(index < (int)context->count)
{

View File

@ -130,54 +130,56 @@ int tnet_get_ip_n_port(tnet_fd_t fd, tnet_ip_t *ip, tnet_port_t *port)
int status;
struct sockaddr_storage ss;
socklen_t namelen = sizeof(ss);
if(status = getsockname(fd, (struct sockaddr*)&ss, &namelen))
if((status = getsockname(fd, (struct sockaddr*)&ss, &namelen)))
{
TSK_DEBUG_ERROR("GETSOCKNAME has failed with status code: %d", status);
return -1;
}
switch(ss.ss_family)
#if /*defined(__SYMBIAN32__)*/0 /* FIXME */
if(1)
#else
if(ss.ss_family == AF_INET)
#endif
{
case AF_INET:
struct sockaddr_in *sin = ((struct sockaddr_in*)&ss);
if(port)
{
struct sockaddr_in *sin = ((struct sockaddr_in*)&ss);
if(port)
{
*port = ntohs(sin->sin_port);
}
if(ip)
{
if(status = tnet_getnameinfo((struct sockaddr*)sin, sizeof(*sin), *ip, sizeof(*ip), 0, 0, NI_NUMERICHOST))
{
return status;
}
}
break;
*port = ntohs(sin->sin_port);
}
case AF_INET6:
if(ip)
{
struct sockaddr_in6 *sin6 = ((struct sockaddr_in6*)&ss);
if(port)
if((status = tnet_getnameinfo((struct sockaddr*)sin, sizeof(*sin), *ip, sizeof(*ip), 0, 0, NI_NUMERICHOST)))
{
*port = ntohs(sin6->sin6_port);
return status;
}
if(ip)
{
if(status = tnet_getnameinfo((struct sockaddr*)sin6, sizeof(*sin6), *ip, sizeof(*ip), 0, 0, NI_NUMERICHOST))
{
return status;
}
}
break;
}
default:
{
TSK_DEBUG_ERROR("Unsupported address family.");
return -1;
}
}
#if /*defined(__SYMBIAN32__)*/0 /* FIXME */
else if(2)
#else
else if(ss.ss_family == AF_INET6)
#endif
{
struct sockaddr_in6 *sin6 = ((struct sockaddr_in6*)&ss);
if(port)
{
*port = ntohs(sin6->sin6_port);
}
if(ip)
{
if((status = tnet_getnameinfo((struct sockaddr*)sin6, sizeof(*sin6), *ip, sizeof(*ip), 0, 0, NI_NUMERICHOST)))
{
return status;
}
}
}
else
{
TSK_DEBUG_ERROR("Unsupported address family.");
return -1;
}
return 0;
}
TSK_DEBUG_ERROR("Could not use an invalid socket description.");
@ -212,7 +214,7 @@ int tnet_sockaddrinfo_init(const char *host, tnet_port_t port, enum tnet_socket_
hints.ai_flags = AI_PASSIVE; /* Bind to the local machine. */
/* Performs getaddrinfo */
if(status = tnet_getaddrinfo(host, p, &hints, &result))
if((status = tnet_getaddrinfo(host, p, &hints, &result)))
{
TNET_PRINT_LAST_ERROR();
goto bail;
@ -252,7 +254,7 @@ int tnet_sockaddr_init(const char *host, tnet_port_t port, tnet_socket_type_t ty
int status;
struct sockaddr_storage ai_addr;
if(status = tnet_sockaddrinfo_init(host, port, type, &ai_addr, 0, 0, 0))
if((status = tnet_sockaddrinfo_init(host, port, type, &ai_addr, 0, 0, 0)))
{
return status;
}
@ -269,7 +271,7 @@ int tnet_sockfd_init(const char *host, tnet_port_t port, enum tnet_socket_type_e
int ai_family, ai_socktype, ai_protocol;
*fd = TNET_INVALID_SOCKET;
if(status = tnet_sockaddrinfo_init(host, port, type, &ai_addr, &ai_family, &ai_socktype, &ai_protocol))
if((status = tnet_sockaddrinfo_init(host, port, type, &ai_addr, &ai_family, &ai_socktype, &ai_protocol)))
{
goto bail;
}
@ -281,16 +283,16 @@ int tnet_sockfd_init(const char *host, tnet_port_t port, enum tnet_socket_type_e
}
#if TNET_USE_POLL
if(status = tnet_sockfd_set_nonblocking(*fd))
if((status = tnet_sockfd_set_nonblocking(*fd)))
{
goto bail;
}
#endif
#if TNET_HAVE_SS_LEN
if(status = bind(*fd, (const struct sockaddr*)&ai_addr, ai_addr.ss_len))
if((status = bind(*fd, (const struct sockaddr*)&ai_addr, ai_addr.ss_len)))
#else
if(status = bind(*fd, (const struct sockaddr*)&ai_addr, sizeof(ai_addr)))
if((status = bind(*fd, (const struct sockaddr*)&ai_addr, sizeof(ai_addr))))
#endif
{
TNET_PRINT_LAST_ERROR();

View File

@ -21,7 +21,8 @@
*/
#ifndef TNET_TEST_TRANSPORT_H
#define TNET_TEST_TRANSPORT_H
#define REMOTE_IPV4 "192.168.0.15"
#define REMOTE_IP "2a01:e35:8b32:7050:6122:2706:2124:32cb"
#define SIP_MESSAGE \
"REGISTER sip:micromethod.com SIP/2.0\r\n" \
"Via: SIP/2.0/%s %s:%d;rport;branch=z9hG4bK1245420841406%d\r\n" \
@ -68,7 +69,7 @@ void test_transport_tcp_ipv4(tnet_transport_handle_t *transport)
//tsk_thread_sleep(500);
/* Connect to the SIP Registrar */
if((fd = tnet_transport_connectto(transport, REMOTE_IPV4, 5060)) == TNET_INVALID_FD)
if((fd = tnet_transport_connectto(transport, REMOTE_IP, 5060)) == TNET_INVALID_FD)
{
TSK_DEBUG_ERROR("Failed to connect TCP/IPv4 transport.");
return;
@ -120,7 +121,7 @@ int test_transport_udp_ipv4(tnet_transport_handle_t *transport)
}
/* Connect to our SIP REGISTRAR */
if((fd = tnet_transport_connectto(transport, REMOTE_IPV4, 5060)) == TNET_INVALID_FD)
if((fd = tnet_transport_connectto(transport, REMOTE_IP, 5060)) == TNET_INVALID_FD)
{
TSK_DEBUG_ERROR("Failed to connect UDP/IPv4 transport.");
//tnet_transport_shutdown(transport);
@ -156,8 +157,9 @@ void test_transport()
#define TEST_TCP 0
#define TEST_UDP 1
#if TEST_UDP
tnet_transport_handle_t *udp = TNET_TRANSPORT_CREATE(TNET_SOCKET_HOST_ANY, TNET_SOCKET_PORT_ANY, tnet_socket_type_udp_ipv4, "UDP/IPV4 TRANSPORT");
tnet_transport_handle_t *udp = TNET_TRANSPORT_CREATE(TNET_SOCKET_HOST_ANY, TNET_SOCKET_PORT_ANY, tnet_socket_type_udp_ipv6/*get_family*/, "UDP/IPV4 TRANSPORT");
test_transport_udp_ipv4(udp);
#endif
@ -176,7 +178,8 @@ void test_transport()
#if TEST_TCP
tnet_transport_shutdown(tcp);
#endif
}
#endif /* TNET_TEST_TRANSPORT_H*/
#endif /* TNET_TEST_TRANSPORT_H*/

View File

@ -86,6 +86,11 @@
# define HAVE_GETTIMEOFDAY 1
#endif
#if defined(__SYMBIAN32__)
# define USE_GNUC_VA_ARGS 1
#else
# define USE_GNUC_VA_ARGS 0
#endif
#ifndef TSK_MIN
#define TSK_MIN(a,b) (((a) < (b)) ? (a) : (b))

View File

@ -49,9 +49,17 @@ TSK_BEGIN_DECLS
*/
#if (DEBUG_LEVEL >= DEBUG_LEVEL_INFO)
# define TSK_DEBUG_INFO(FMT, ...) fprintf(stderr, "*INFO: " FMT "\n", ##__VA_ARGS__);
# if USE_GNUC_VA_ARGS
# define TSK_DEBUG_INFO(...) fprintf(stderr, __VA_ARGS__);
# else
# define TSK_DEBUG_INFO(FMT, ...) fprintf(stderr, "*INFO: " FMT "\n", ##__VA_ARGS__);
# endif
#else
# define TSK_DEBUG_INFO(FMT, ...) ((void)0)
# if USE_GNUC_VA_ARGS
# define TSK_DEBUG_INFO( ...) ((void)0)
# else
# define TSK_DEBUG_INFO(FMT, ...) ((void)0)
# endif
#endif
@ -59,18 +67,34 @@ TSK_BEGIN_DECLS
* Level >= @ref DEBUG_LEVEL_WARN: Take care.
*/
#if (DEBUG_LEVEL >= DEBUG_LEVEL_WARN)
# define TSK_DEBUG_WARN(FMT, ...) fprintf(stderr, "**WARN: function: \"%s()\" \nfile: \"%s\" \nline: \"%u\" \nMSG: " FMT "\n", __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__);
# if USE_GNUC_VA_ARGS
# define TSK_DEBUG_WARN(...) fprintf(stderr, __VA_ARGS__);
# else
# define TSK_DEBUG_WARN(FMT, ...) fprintf(stderr, "**WARN: function: \"%s()\" \nfile: \"%s\" \nline: \"%u\" \nMSG: " FMT "\n", __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__);
# endif
#else
# define TSK_DEBUG_WARN(FMT, ...) ((void)0)
# if USE_GNUC_VA_ARGS
# define TSK_DEBUG_WARN(...) ((void)0)
# else
# define TSK_DEBUG_WARN(FMT, ...) ((void)0)
# endif
#endif
/**@ref TSK_ERROR_WARN
* Level >= @ref DEBUG_LEVEL_ERROR: Could cause crash or instability.
*/
#if (DEBUG_LEVEL >= DEBUG_LEVEL_ERROR)
# define TSK_DEBUG_ERROR(FMT, ...) fprintf(stderr, "***ERROR: function: \"%s()\" \nfile: \"%s\" \nline: \"%u\" \nMSG: " FMT "\n", __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__);
# if USE_GNUC_VA_ARGS
# define TSK_DEBUG_ERROR(...) fprintf(stderr, __VA_ARGS__);
# else
# define TSK_DEBUG_ERROR(FMT, ...) fprintf(stderr, "***ERROR: function: \"%s()\" \nfile: \"%s\" \nline: \"%u\" \nMSG: " FMT "\n", __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__);
# endif
#else
# define TSK_DEBUG_ERROR(FMT, ...) ((void)0)
# if USE_GNUC_VA_ARGS
# define TSK_DEBUG_ERROR(...) ((void)0)
# else
# define TSK_DEBUG_ERROR(FMT, ...) ((void)0)
# endif
#endif
@ -78,9 +102,17 @@ TSK_BEGIN_DECLS
* Level >= @ref DEBUG_LEVEL_FATAL: The application should abort or behave unexpectedly.
*/
#if (DEBUG_LEVEL >= DEBUG_LEVEL_FATAL)
# define TSK_DEBUG_FATAL(FMT, ...) fprintf(stderr, "****FATAL ERROR***: function: \"%s()\" \nfile: \"%s\" \nline: \"%u\" \nMSG: " FMT "\n", __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__);
# if USE_GNUC_VA_ARGS
# define TSK_DEBUG_FATAL(...) fprintf(stderr, __VA_ARGS__);
# else
# define TSK_DEBUG_FATAL(FMT, ...) fprintf(stderr, "****FATAL ERROR***: function: \"%s()\" \nfile: \"%s\" \nline: \"%u\" \nMSG: " FMT "\n", __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__);
# endif
#else
# define TSK_DEBUG_FATAL(FMT, ...) ((void)0)
# if USE_GNUC_VA_ARGS
# define TSK_DEBUG_FATAL(...) ((void)0)
# else
# define TSK_DEBUG_FATAL(FMT, ...) ((void)0)
# endif
#endif

View File

@ -62,11 +62,11 @@ int tsk_hmac_xxxcompute(const uint8_t* input, size_t input_size, const char* key
{
if(type == md5)
{
TSK_MD5_DIGEST_CALC(key, key_size, hkey);
TSK_MD5_DIGEST_CALC(key, key_size, (uint8_t*)hkey);
}
else if(type == sha1)
{
TSK_SHA1_DIGEST_CALC(key, key_size, hkey);
TSK_SHA1_DIGEST_CALC((uint8_t*)key, key_size, hkey);
}
else return -3;
@ -103,7 +103,7 @@ digest_compute:
}
else
{
TSK_SHA1_DIGEST_CALC(TSK_BUFFER_TO_U8(passx), TSK_BUFFER_SIZE(passx), digest);
TSK_SHA1_DIGEST_CALC(TSK_BUFFER_TO_U8(passx), TSK_BUFFER_SIZE(passx), (char*)digest);
}
if(pass1_done)
@ -236,4 +236,4 @@ int hmac_sha1_compute(const uint8_t* input, size_t input_size, const char* key,
int hmac_sha1digest_compute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_sha1digest_t result)
{
return tsk_hmac_xxxcompute(input, input_size, key, key_size, sha1, (uint8_t*)result);
}
}

View File

@ -67,4 +67,4 @@ TINYSAK_API int tsk_md5compute(const char* input, size_t size, tsk_md5string_t *
TSK_END_DECLS
#endif /* _TINYSAK_MD5_H_ */
#endif /* _TINYSAK_MD5_H_ */

View File

@ -100,10 +100,7 @@ tsk_semaphore_handle_t* tsk_semaphore_create()
{
TSK_FREE(nsem->name);
#else
int ret, pshared;
pshared = 0;
if((ret = sem_init((SEMAPHORE_T)handle, pshared, 0)))
if(sem_init((SEMAPHORE_T)handle, 0, 0))
{
#endif
TSK_FREE(handle);

View File

@ -33,7 +33,7 @@
#define LOOP 1
#define RUN_TEST_ALL 1
#define RUN_TEST_ALL 0
#define RUN_TEST_LISTS 0
#define RUN_TEST_HEAP 0
#define RUN_TEST_STRINGS 0
@ -45,7 +45,7 @@
#define RUN_TEST_OBJECT 0
#define RUN_TEST_PARAMS 0
#define RUN_TEST_TIMER 0
#define RUN_TEST_RUNNABLE 0
#define RUN_TEST_RUNNABLE 1
#define RUN_TEST_BUFFER 0
#define RUN_TEST_MD5 0
#define RUN_TEST_SHA1 0

View File

@ -88,7 +88,7 @@ void test_base64()
/*===========
* Encoding
*/
size = tsk_base64_encode(b64_msgs[i].ascii, strlen(b64_msgs[i].ascii), &output_e);
size = tsk_base64_encode((const uint8_t*)b64_msgs[i].ascii, strlen(b64_msgs[i].ascii), &output_e);
if(tsk_striequals(b64_msgs[i].base64, output_e))
{
TSK_DEBUG_INFO("[BASE64-%d encoding] ==> OK", i);
@ -102,7 +102,7 @@ void test_base64()
/*===========
* Decoding
*/
size = tsk_base64_decode(b64_msgs[i].base64, strlen(b64_msgs[i].base64), &output_d);
size = tsk_base64_decode((const uint8_t*)b64_msgs[i].base64, strlen(b64_msgs[i].base64), &output_d);
if(tsk_striequals(b64_msgs[i].ascii, output_d))
{
TSK_DEBUG_INFO("[BASE64-%d decoding] ==> OK", i);
@ -115,4 +115,4 @@ void test_base64()
}
}
#endif /* _TEST_BASE64_H_ */
#endif /* _TEST_BASE64_H_ */

View File

@ -84,7 +84,7 @@ void test_hmac_md5()
for(i=0; i< sizeof(msgs_hmac_md5)/sizeof(struct hmac_md5_result); i++)
{
hmac_md5_compute(msgs_hmac_md5[i].msg, strlen(msgs_hmac_md5[i].msg), msgs_hmac_md5[i].key, strlen(msgs_hmac_md5[i].key), &md5result);
hmac_md5_compute((const uint8_t*)msgs_hmac_md5[i].msg, strlen(msgs_hmac_md5[i].msg), msgs_hmac_md5[i].key, strlen(msgs_hmac_md5[i].key), &md5result);
if(tsk_striequals(msgs_hmac_md5[i].xres, md5result))
{
TSK_DEBUG_INFO("[HMAC-MD5-%d] ==> OK", i);
@ -97,4 +97,4 @@ void test_hmac_md5()
}
#endif /* _TEST_MD5_H_ */
#endif /* _TEST_MD5_H_ */

View File

@ -80,7 +80,7 @@ void test_hmac_sha1()
for(i=0; i< sizeof(hmac_sha1_msgs)/sizeof(struct hmac_sha1_result); i++)
{
hmac_sha1_compute(hmac_sha1_msgs[i].msg, strlen(hmac_sha1_msgs[i].msg), hmac_sha1_msgs[i].key, strlen(hmac_sha1_msgs[i].key), &sha1result);
hmac_sha1_compute((const uint8_t*)hmac_sha1_msgs[i].msg, strlen(hmac_sha1_msgs[i].msg), hmac_sha1_msgs[i].key, strlen(hmac_sha1_msgs[i].key), &sha1result);
if(tsk_striequals(hmac_sha1_msgs[i].xres, sha1result))
{
TSK_DEBUG_INFO("[SHA1-%d] ==> OK", i);
@ -93,4 +93,4 @@ void test_hmac_sha1()
}
#endif /* _TEST_SHA1_H_ */
#endif /* _TEST_SHA1_H_ */

View File

@ -80,11 +80,11 @@ TSIP_BEGIN_DECLS
#define TSIP_RESPONSE_SAFE_FREE(self) TSIP_MESSAGE_SAFE_FREE(self)
#define TSIP_RESPONSE_CODE(self) ((self)->line_status.status_code)
#define TSIP_RESPONSE_PHRASE(self) ((self)->line_status.reason_phrase)
#define TSIP_RESPONSE_CODE(self) ((self)->status_code)
#define TSIP_RESPONSE_PHRASE(self) ((self)->reason_phrase)
#define TSIP_REQUEST_METHOD(self) ((self)->line_request.method)
#define TSIP_REQUEST_URI(self) ((self)->line_request.uri)
#define TSIP_REQUEST_METHOD(self) ((self)->method)
#define TSIP_REQUEST_URI(self) ((self)->uri)
#define TSIP_MESSAGE_CONTENT_LENGTH(message) (uint32_t)(((message) && (message)->Content_Length) ? (message)->Content_Length->length : 0)
#define TSIP_MESSAGE_CONTENT(message) (TSIP_MESSAGE_HAS_CONTENT(message) ? (message)->Content : 0)
@ -113,43 +113,43 @@ typedef enum tsip_message_type_e
}
tsip_message_type_t;
/**
* @struct tsip_request_line_t
*
* @brief Defines SIP request header line.
* ABNF: Request-Line = Method SP Request-URI SP SIP-Version CRLF
* Ref: RFC 3261 subclause 7.1.
* @sa tsip_status_line_t.
*
* @author Mamadou
* @date 12/3/2009
**/
typedef struct tsip_request_line_s
{
char *method; /**< SIP method name. e.g REGISTER, ACK or INVITE.*/
tsip_uri_t *uri; /**< The Request-URI is a SIP or SIPS URI as described in Section 19.1 or a general URI (RFC 2396 [5]). It indicates
the user or service to which this request is being addressed. The Request-URI MUST NOT contain unescaped spaces or control
characters and MUST NOT be enclosed in "<>". */
}
tsip_request_line_t;
/**
* @struct tsip_status_line_t
*
* @brief Defines SIP response status line.
* ABNF: Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF
* Ref: RFC 3261 subclause 7.2.
* @sa tsip_request_line_t.
*
* @author Mamadou
* @date 12/3/2009
**/
typedef struct tsip_status_line_s
{
short status_code; /**< 3-digit integer result code that indicates the outcome of an attempt to understand and satisfy a request. */
char *reason_phrase; /**< Textual description related to the status code. */
}
tsip_status_line_t;
///**
// * @struct tsip_request_line_t
// *
// * @brief Defines SIP request header line.
// * ABNF: Request-Line = Method SP Request-URI SP SIP-Version CRLF
// * Ref: RFC 3261 subclause 7.1.
// * @sa tsip_status_line_t.
// *
// * @author Mamadou
// * @date 12/3/2009
//**/
//typedef struct tsip_request_line_s
//{
// char *method; /**< SIP method name. e.g REGISTER, ACK or INVITE.*/
// tsip_uri_t *uri; /**< The Request-URI is a SIP or SIPS URI as described in Section 19.1 or a general URI (RFC 2396 [5]). It indicates
// the user or service to which this request is being addressed. The Request-URI MUST NOT contain unescaped spaces or control
// characters and MUST NOT be enclosed in "<>". */
//}
//tsip_request_line_t;
//
///**
// * @struct tsip_status_line_t
// *
// * @brief Defines SIP response status line.
// * ABNF: Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF
// * Ref: RFC 3261 subclause 7.2.
// * @sa tsip_request_line_t.
// *
// * @author Mamadou
// * @date 12/3/2009
//**/
//typedef struct tsip_status_line_s
//{
// short status_code; /**< 3-digit integer result code that indicates the outcome of an attempt to understand and satisfy a request. */
// char *reason_phrase; /**< Textual description related to the status code. */
//}
//tsip_status_line_t;
/**
* @struct tsip_message_t
@ -168,16 +168,21 @@ typedef struct tsip_message_s
char *sip_version; /**< The SIP version. Only 'SIP/2.0' is supported. */
tsip_message_type_t type; /**< The type of this SIP message. */
// FIXME: http://docs.google.com/viewer?a=v&q=cache%3AE5v90Lcl5TkJ%3Awww.open-std.org%2FJTC1%2FSC22%2FWG14%2Fwww%2Fdocs%2Fn1406.pdf+anonymous+union+has+no+member&hl=en&sig=AHIEtbTdnPDnQLKpWQB9-nBYQg_BB4jIHQ&pli=1
#if !defined(__GNUC__)
union
{
#endif
tsip_request_line_t line_request; /**< Request status line. Only if message type is @ref tsip_request. */
tsip_status_line_t line_status; /**< Status line. Only if message type is @ref tsip_response. */
#if !defined(__GNUC__)
struct
{
char *method; /**< SIP method name. e.g REGISTER, ACK or INVITE.*/
tsip_uri_t *uri; /**< The Request-URI is a SIP or SIPS URI as described in Section 19.1 or a general URI (RFC 2396 [5]). It indicates
the user or service to which this request is being addressed. The Request-URI MUST NOT contain unescaped spaces or control
characters and MUST NOT be enclosed in "<>". */
};
struct
{
short status_code; /**< 3-digit integer result code that indicates the outcome of an attempt to understand and satisfy a request. */
char *reason_phrase; /**< Textual description related to the status code. */
};
};
#endif
/*== MOST COMMON HEADERS. */
tsip_header_Via_t *firstVia; /**< First Via header. */

View File

@ -61,10 +61,10 @@ static void tsip_message_parser_eoh(tsip_ragel_state_t *state, tsip_message_t *m
if(message->type == tsip_unknown)
{
message->type = tsip_request;
if(!message->line_request.method)
if(!message->method)
{
message->line_request.method = tsk_calloc(1, len+1);
memcpy(message->line_request.method, state->tag_start, len);
message->method = tsk_calloc(1, len+1);
memcpy(message->method, state->tag_start, len);
}
}
else
@ -80,9 +80,9 @@ static void tsip_message_parser_eoh(tsip_ragel_state_t *state, tsip_message_t *m
state->tag_end = p;
len = (int)(state->tag_end - state->tag_start);
if(!message->line_request.uri)
if(!message->uri)
{
message->line_request.uri = tsip_uri_parse(state->tag_start, (size_t)len);
message->uri = tsip_uri_parse(state->tag_start, (size_t)len);
}
}
@ -110,7 +110,7 @@ static void tsip_message_parser_eoh(tsip_ragel_state_t *state, tsip_message_t *m
if(message->type == tsip_unknown)
{
message->type = tsip_response;
message->line_status.status_code = atoi(state->tag_start);
message->status_code = atoi(state->tag_start);
}
else
{
@ -125,10 +125,10 @@ static void tsip_message_parser_eoh(tsip_ragel_state_t *state, tsip_message_t *m
state->tag_end = p;
len = (int)(state->tag_end - state->tag_start);
if(!message->line_status.reason_phrase)
if(!message->reason_phrase)
{
message->line_status.reason_phrase = tsk_calloc(1, len+1);
memcpy(message->line_status.reason_phrase, state->tag_start, len);
message->reason_phrase = tsk_calloc(1, len+1);
memcpy(message->reason_phrase, state->tag_start, len);
}
}

View File

@ -84,13 +84,13 @@ Trying
sm_2xx(unregistering: int, msg: const tsip_message_t*) [unregistering]
Terminated
{
Trying_2_Connected_X_2xx(msg);
Trying_2_Terminated_X_2xx(msg);
}
sm_2xx(unregistering: int, msg: const tsip_message_t*) [!unregistering]
Connected
{
Trying_2_Terminated_X_2xx(msg);
Trying_2_Connected_X_2xx(msg);
}
sm_401_407_421_494(msg: const tsip_message_t*)

View File

@ -298,22 +298,22 @@ tsip_header_t *tsip_challenge_create_header_authorization(tsip_challenge_t *self
{
tsk_istr_t port;
if(request->line_request.uri->port) tsk_itoa(request->line_request.uri->port, &port);
if(request->uri->port) tsk_itoa(request->uri->port, &port);
tsk_sprintf(&uristring, "%s%s%s%s%s%s%s%s%s",
request->line_request.uri->scheme ? request->line_request.uri->scheme : "",
request->line_request.uri->scheme ? ":" : "",
request->uri->scheme ? request->uri->scheme : "",
request->uri->scheme ? ":" : "",
request->line_request.uri->user_name ? request->line_request.uri->user_name : "",
request->uri->user_name ? request->uri->user_name : "",
request->line_request.uri->password ? ":" : "",
request->line_request.uri->password ? request->line_request.uri->password : "",
request->uri->password ? ":" : "",
request->uri->password ? request->uri->password : "",
request->line_request.uri->host ? (request->line_request.uri->user_name ? "@" : "") : "",
request->line_request.uri->host ? request->line_request.uri->host : "",
request->uri->host ? (request->uri->user_name ? "@" : "") : "",
request->uri->host ? request->uri->host : "",
request->line_request.uri->port ? ":" : "",
request->line_request.uri->port ? port : ""
request->uri->port ? ":" : "",
request->uri->port ? port : ""
);
}
@ -321,7 +321,7 @@ tsip_header_t *tsip_challenge_create_header_authorization(tsip_challenge_t *self
THTTP_NCOUNT_2_STRING(self->nc, nc);
// FIXME: entity_body ==> request-content
if(tsip_challenge_get_response(self, request->line_request.method, uristring, 0/*FIXME*/, &response))
if(tsip_challenge_get_response(self, request->method, uristring, 0/*FIXME*/, &response))
{
goto bail;
}

View File

@ -223,7 +223,7 @@ tsip_request_t *tsip_dialog_request_new(const tsip_dialog_t *self, const char* m
}
/* Update CSeq */
if(!tsk_striequals(request->line_request.method, "ACK") && !tsk_striequals(request->line_request.method, "CANCEL"))
if(!tsk_striequals(request->method, "ACK") && !tsk_striequals(request->method, "CANCEL"))
{
request->CSeq->seq = ++(TSIP_DIALOG(self)->cseq_value);
}
@ -399,7 +399,7 @@ int tsip_dialog_update(tsip_dialog_t *self, const tsip_response_t* response)
{
if(self && TSIP_MESSAGE_IS_RESPONSE(response) && response->To)
{
short code = response->line_status.status_code;
short code = response->status_code;
const char *tag = response->To->tag;
int isRegister = response->CSeq ? tsk_striequals(response->CSeq->method, "REGISTER") : 0;

View File

@ -211,10 +211,10 @@ tr3:
if(message->type == tsip_unknown)
{
message->type = tsip_request;
if(!message->line_request.method)
if(!message->method)
{
message->line_request.method = tsk_calloc(1, len+1);
memcpy(message->line_request.method, state->tag_start, len);
message->method = tsk_calloc(1, len+1);
memcpy(message->method, state->tag_start, len);
}
}
else
@ -292,9 +292,9 @@ tr10:
state->tag_end = p;
len = (int)(state->tag_end - state->tag_start);
if(!message->line_request.uri)
if(!message->uri)
{
message->line_request.uri = tsip_uri_parse(state->tag_start, (size_t)len);
message->uri = tsip_uri_parse(state->tag_start, (size_t)len);
}
}
goto st8;
@ -397,10 +397,10 @@ tr45:
state->tag_end = p;
len = (int)(state->tag_end - state->tag_start);
if(!message->line_status.reason_phrase)
if(!message->reason_phrase)
{
message->line_status.reason_phrase = tsk_calloc(1, len+1);
memcpy(message->line_status.reason_phrase, state->tag_start, len);
message->reason_phrase = tsk_calloc(1, len+1);
memcpy(message->reason_phrase, state->tag_start, len);
}
}
goto st16;
@ -411,10 +411,10 @@ tr53:
state->tag_end = p;
len = (int)(state->tag_end - state->tag_start);
if(!message->line_status.reason_phrase)
if(!message->reason_phrase)
{
message->line_status.reason_phrase = tsk_calloc(1, len+1);
memcpy(message->line_status.reason_phrase, state->tag_start, len);
message->reason_phrase = tsk_calloc(1, len+1);
memcpy(message->reason_phrase, state->tag_start, len);
}
}
goto st16;
@ -708,7 +708,7 @@ tr38:
if(message->type == tsip_unknown)
{
message->type = tsip_response;
message->line_status.status_code = atoi(state->tag_start);
message->status_code = atoi(state->tag_start);
}
else
{

View File

@ -5,45 +5,45 @@
* from file : tsip_dialog_register.sm
*/
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file tsip_dialog_register.sm.
* @brief SIP dialog REGISTER.
*
* @author Mamadou Diop <diopmamadou(at)yahoo.fr>
*
* @date Created: Sat Nov 8 16:54:58 2009 mdiop
*/
//#define tsip_dialog_register_TSIP_DIALOG_BEGIN_TRANSIT(self) TSIP_DIALOG_BEGIN_TRANSIT(self)
//#define tsip_dialog_register_TSIP_DIALOG_END_TRANSIT(self) TSIP_DIALOG_END_TRANSIT(self)
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file tsip_dialog_register.sm.
* @brief SIP dialog REGISTER.
*
* @author Mamadou Diop <diopmamadou(at)yahoo.fr>
*
* @date Created: Sat Nov 8 16:54:58 2009 mdiop
*/
//#define tsip_dialog_register_TSIP_DIALOG_BEGIN_TRANSIT(self) TSIP_DIALOG_BEGIN_TRANSIT(self)
//#define tsip_dialog_register_TSIP_DIALOG_END_TRANSIT(self) TSIP_DIALOG_END_TRANSIT(self)
#include <assert.h>
#include "tinysip/dialogs/tsip_dialog_register.h"
#include "tsk_debug.h"
#include "tinysip/smc/tsip_dialog_register_sm.h"
#include "C:\Projects\Doubango\tinySIP\include\tinysip\smc\tsip_dialog_register_sm.h"
#define getOwner(fsm) \
(fsm)->_owner
@ -57,6 +57,7 @@
state##_sm_423, \
state##_sm_cancel, \
state##_sm_error, \
state##_sm_hangup, \
state##_sm_refresh, \
state##_sm_send, \
state##_sm_transportError, \
@ -75,7 +76,7 @@ static void tsip_dialog_registerState_sm_1xx(struct tsip_dialog_registerContext
getState(fsm)->Default(fsm);
}
static void tsip_dialog_registerState_sm_2xx(struct tsip_dialog_registerContext *fsm, int registering, const tsip_message_t* msg)
static void tsip_dialog_registerState_sm_2xx(struct tsip_dialog_registerContext *fsm, int unregistering, const tsip_message_t* msg)
{
getState(fsm)->Default(fsm);
}
@ -105,6 +106,11 @@ static void tsip_dialog_registerState_sm_error(struct tsip_dialog_registerContex
getState(fsm)->Default(fsm);
}
static void tsip_dialog_registerState_sm_hangup(struct tsip_dialog_registerContext *fsm)
{
getState(fsm)->Default(fsm);
}
static void tsip_dialog_registerState_sm_refresh(struct tsip_dialog_registerContext *fsm)
{
getState(fsm)->Default(fsm);
@ -137,6 +143,7 @@ static void tsip_dialog_registerState_Default(struct tsip_dialog_registerContext
#define tsip_dialog_register_Started_sm_423 tsip_dialog_registerState_sm_423
#define tsip_dialog_register_Started_sm_cancel tsip_dialog_registerState_sm_cancel
#define tsip_dialog_register_Started_sm_error tsip_dialog_registerState_sm_error
#define tsip_dialog_register_Started_sm_hangup tsip_dialog_registerState_sm_hangup
#define tsip_dialog_register_Started_sm_refresh tsip_dialog_registerState_sm_refresh
#define tsip_dialog_register_Started_sm_send tsip_dialog_registerState_sm_send
#define tsip_dialog_register_Started_sm_transportError tsip_dialog_registerState_sm_transportError
@ -151,6 +158,7 @@ static void tsip_dialog_registerState_Default(struct tsip_dialog_registerContext
#define tsip_dialog_register_Trying_sm_423 tsip_dialog_registerState_sm_423
#define tsip_dialog_register_Trying_sm_cancel tsip_dialog_registerState_sm_cancel
#define tsip_dialog_register_Trying_sm_error tsip_dialog_registerState_sm_error
#define tsip_dialog_register_Trying_sm_hangup tsip_dialog_registerState_sm_hangup
#define tsip_dialog_register_Trying_sm_refresh tsip_dialog_registerState_sm_refresh
#define tsip_dialog_register_Trying_sm_send tsip_dialog_registerState_sm_send
#define tsip_dialog_register_Trying_sm_transportError tsip_dialog_registerState_sm_transportError
@ -165,6 +173,7 @@ static void tsip_dialog_registerState_Default(struct tsip_dialog_registerContext
#define tsip_dialog_register_Connected_sm_423 tsip_dialog_registerState_sm_423
#define tsip_dialog_register_Connected_sm_cancel tsip_dialog_registerState_sm_cancel
#define tsip_dialog_register_Connected_sm_error tsip_dialog_registerState_sm_error
#define tsip_dialog_register_Connected_sm_hangup tsip_dialog_registerState_sm_hangup
#define tsip_dialog_register_Connected_sm_refresh tsip_dialog_registerState_sm_refresh
#define tsip_dialog_register_Connected_sm_send tsip_dialog_registerState_sm_send
#define tsip_dialog_register_Connected_sm_transportError tsip_dialog_registerState_sm_transportError
@ -179,6 +188,7 @@ static void tsip_dialog_registerState_Default(struct tsip_dialog_registerContext
#define tsip_dialog_register_Terminated_sm_423 tsip_dialog_registerState_sm_423
#define tsip_dialog_register_Terminated_sm_cancel tsip_dialog_registerState_sm_cancel
#define tsip_dialog_register_Terminated_sm_error tsip_dialog_registerState_sm_error
#define tsip_dialog_register_Terminated_sm_hangup tsip_dialog_registerState_sm_hangup
#define tsip_dialog_register_Terminated_sm_refresh tsip_dialog_registerState_sm_refresh
#define tsip_dialog_register_Terminated_sm_send tsip_dialog_registerState_sm_send
#define tsip_dialog_register_Terminated_sm_transportError tsip_dialog_registerState_sm_transportError
@ -193,11 +203,32 @@ static void tsip_dialog_registerState_Default(struct tsip_dialog_registerContext
#define tsip_dialog_register_DefaultState_sm_423 tsip_dialog_registerState_sm_423
#define tsip_dialog_register_DefaultState_sm_cancel tsip_dialog_registerState_sm_cancel
#define tsip_dialog_register_DefaultState_sm_error tsip_dialog_registerState_sm_error
#define tsip_dialog_register_DefaultState_sm_hangup tsip_dialog_registerState_sm_hangup
#define tsip_dialog_register_DefaultState_sm_refresh tsip_dialog_registerState_sm_refresh
#define tsip_dialog_register_DefaultState_sm_send tsip_dialog_registerState_sm_send
#define tsip_dialog_register_DefaultState_sm_transportError tsip_dialog_registerState_sm_transportError
#define tsip_dialog_register_DefaultState_sm_unregister tsip_dialog_registerState_sm_unregister
#undef tsip_dialog_register_Started_sm_hangup
#define tsip_dialog_register_Started_sm_hangup tsip_dialog_register_DefaultState_sm_hangup
#undef tsip_dialog_register_Trying_sm_hangup
#define tsip_dialog_register_Trying_sm_hangup tsip_dialog_register_DefaultState_sm_hangup
#undef tsip_dialog_register_Connected_sm_hangup
#define tsip_dialog_register_Connected_sm_hangup tsip_dialog_register_DefaultState_sm_hangup
#undef tsip_dialog_register_Terminated_sm_hangup
#define tsip_dialog_register_Terminated_sm_hangup tsip_dialog_register_DefaultState_sm_hangup
#undef tsip_dialog_register_DefaultState_sm_hangup
static void tsip_dialog_register_DefaultState_sm_hangup(struct tsip_dialog_registerContext *fsm)
{
struct tsip_dialog_register* ctxt = getOwner(fsm);
EXIT_STATE(getState(fsm));
clearState(fsm);
tsip_dialog_register_Any_2_Trying_X_hangup(ctxt);
setState(fsm, &tsip_dialog_register_Trying);
ENTRY_STATE(getState(fsm));
}
#undef tsip_dialog_register_Started_sm_transportError
#define tsip_dialog_register_Started_sm_transportError tsip_dialog_register_DefaultState_sm_transportError
#undef tsip_dialog_register_Trying_sm_transportError
@ -287,25 +318,25 @@ static void tsip_dialog_register_Trying_sm_1xx(struct tsip_dialog_registerContex
}
#undef tsip_dialog_register_Trying_sm_2xx
static void tsip_dialog_register_Trying_sm_2xx(struct tsip_dialog_registerContext *fsm, int registering, const tsip_message_t* msg)
static void tsip_dialog_register_Trying_sm_2xx(struct tsip_dialog_registerContext *fsm, int unregistering, const tsip_message_t* msg)
{
struct tsip_dialog_register* ctxt = getOwner(fsm);
if (registering) {
if (unregistering) {
EXIT_STATE(getState(fsm));
clearState(fsm);
tsip_dialog_register_Trying_2_Connected_X_2xx(ctxt, msg);
setState(fsm, &tsip_dialog_register_Connected);
setState(fsm, &tsip_dialog_register_Terminated);
ENTRY_STATE(getState(fsm));
}
else if (!registering) {
else if (!unregistering) {
EXIT_STATE(getState(fsm));
clearState(fsm);
tsip_dialog_register_Trying_2_Terminated_X_2xx(ctxt, msg);
setState(fsm, &tsip_dialog_register_Terminated);
setState(fsm, &tsip_dialog_register_Connected);
ENTRY_STATE(getState(fsm));
} else {
tsip_dialog_register_DefaultState_sm_2xx(fsm, registering, msg);
tsip_dialog_register_DefaultState_sm_2xx(fsm, unregistering, msg);
}
}
@ -426,13 +457,13 @@ void tsip_dialog_registerContext_sm_1xx(struct tsip_dialog_registerContext* fsm,
setTransition(fsm, NULL);
}
void tsip_dialog_registerContext_sm_2xx(struct tsip_dialog_registerContext* fsm, int registering, const tsip_message_t* msg)
void tsip_dialog_registerContext_sm_2xx(struct tsip_dialog_registerContext* fsm, int unregistering, const tsip_message_t* msg)
{
const struct tsip_dialog_registerState* state = getState(fsm);
assert(state != NULL);
setTransition(fsm, "sm_2xx");
state->sm_2xx(fsm, registering, msg);
state->sm_2xx(fsm, unregistering, msg);
setTransition(fsm, NULL);
}
@ -486,6 +517,16 @@ void tsip_dialog_registerContext_sm_error(struct tsip_dialog_registerContext* fs
setTransition(fsm, NULL);
}
void tsip_dialog_registerContext_sm_hangup(struct tsip_dialog_registerContext* fsm)
{
const struct tsip_dialog_registerState* state = getState(fsm);
assert(state != NULL);
setTransition(fsm, "sm_hangup");
state->sm_hangup(fsm);
setTransition(fsm, NULL);
}
void tsip_dialog_registerContext_sm_refresh(struct tsip_dialog_registerContext* fsm)
{
const struct tsip_dialog_registerState* state = getState(fsm);

View File

@ -5,41 +5,41 @@
* from file : tsip_transac_ict.sm
*/
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file tsip_transac_ict.c
* @brief SIP INVITE Client Transaction as per RFC 3261 subclause 17.1.1.
*
* @author Mamadou Diop <diopmamadou(at)yahoo.fr>
*
* @date Created: Sat Nov 8 16:54:58 2009 mdiop
*/
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file tsip_transac_ict.c
* @brief SIP INVITE Client Transaction as per RFC 3261 subclause 17.1.1.
*
* @author Mamadou Diop <diopmamadou(at)yahoo.fr>
*
* @date Created: Sat Nov 8 16:54:58 2009 mdiop
*/
#include <assert.h>
#include "tinysip/transactions/tsip_transac_ict.h"
#include "tinysip/smc/tsip_transac_ict_sm.h"
#include "C:\Projects\Doubango\tinySIP\include\tinysip\smc\tsip_transac_ict_sm.h"
#define getOwner(fsm) \
(fsm)->_owner

View File

@ -5,41 +5,41 @@
* from file : tsip_transac_ist.sm
*/
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file tsip_transac_ist.sm
* @brief SIP INVITE Server Transaction as per RFC 3261 subclause 17.2.1.
*
* @author Mamadou Diop <diopmamadou(at)yahoo.fr>
*
* @date Created: Sat Nov 8 16:54:58 2009 mdiop
*/
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file tsip_transac_ist.sm
* @brief SIP INVITE Server Transaction as per RFC 3261 subclause 17.2.1.
*
* @author Mamadou Diop <diopmamadou(at)yahoo.fr>
*
* @date Created: Sat Nov 8 16:54:58 2009 mdiop
*/
#include <assert.h>
#include "tinysip/transactions/tsip_transac_ist.h"
#include "tinysip/smc/tsip_transac_ist_sm.h"
#include "C:\Projects\Doubango\tinySIP\include\tinysip\smc\tsip_transac_ist_sm.h"
#define getOwner(fsm) \
(fsm)->_owner

View File

@ -5,41 +5,41 @@
* from file : tsip_transac_nict.sm
*/
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file tsip_transac_nict.sm
* @brief SIP Non-INVITE Client Transaction as per RFC 3261 subcaluse 17.1.2.
*
* @author Mamadou Diop <diopmamadou(at)yahoo.fr>
*
* @date Created: Sat Nov 8 16:54:58 2009 mdiop
*/
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file tsip_transac_nict.sm
* @brief SIP Non-INVITE Client Transaction as per RFC 3261 subcaluse 17.1.2.
*
* @author Mamadou Diop <diopmamadou(at)yahoo.fr>
*
* @date Created: Sat Nov 8 16:54:58 2009 mdiop
*/
#include <assert.h>
#include "tinysip/transactions/tsip_transac_nict.h"
#include "tinysip/smc/tsip_transac_nict_sm.h"
#include "C:\Projects\Doubango\tinySIP\include\tinysip\smc\tsip_transac_nict_sm.h"
#define getOwner(fsm) \
(fsm)->_owner
@ -77,17 +77,17 @@ static void tsip_transac_nictState_sm_send(struct tsip_transac_nictContext *fsm)
getState(fsm)->Default(fsm);
}
static void tsip_transac_nictState_sm_timerE(struct tsip_transac_nictContext *fsm, tsk_timer_id_t timer_id)
static void tsip_transac_nictState_sm_timerE(struct tsip_transac_nictContext *fsm)
{
getState(fsm)->Default(fsm);
}
static void tsip_transac_nictState_sm_timerF(struct tsip_transac_nictContext *fsm, tsk_timer_id_t timer_id)
static void tsip_transac_nictState_sm_timerF(struct tsip_transac_nictContext *fsm)
{
getState(fsm)->Default(fsm);
}
static void tsip_transac_nictState_sm_timerK(struct tsip_transac_nictContext *fsm, tsk_timer_id_t timer_id)
static void tsip_transac_nictState_sm_timerK(struct tsip_transac_nictContext *fsm)
{
getState(fsm)->Default(fsm);
}
@ -237,7 +237,7 @@ static void tsip_transac_nict_Trying_sm_200_to_699(struct tsip_transac_nictConte
}
#undef tsip_transac_nict_Trying_sm_timerE
static void tsip_transac_nict_Trying_sm_timerE(struct tsip_transac_nictContext *fsm, tsk_timer_id_t timer_id)
static void tsip_transac_nict_Trying_sm_timerE(struct tsip_transac_nictContext *fsm)
{
struct tsip_transac_nict* ctxt = getOwner(fsm);
const struct tsip_transac_nictState* EndStateName = getState(fsm);
@ -248,7 +248,7 @@ static void tsip_transac_nict_Trying_sm_timerE(struct tsip_transac_nictContext *
}
#undef tsip_transac_nict_Trying_sm_timerF
static void tsip_transac_nict_Trying_sm_timerF(struct tsip_transac_nictContext *fsm, tsk_timer_id_t timer_id)
static void tsip_transac_nict_Trying_sm_timerF(struct tsip_transac_nictContext *fsm)
{
struct tsip_transac_nict* ctxt = getOwner(fsm);
@ -297,7 +297,7 @@ static void tsip_transac_nict_Proceeding_sm_200_to_699(struct tsip_transac_nictC
}
#undef tsip_transac_nict_Proceeding_sm_timerE
static void tsip_transac_nict_Proceeding_sm_timerE(struct tsip_transac_nictContext *fsm, tsk_timer_id_t timer_id)
static void tsip_transac_nict_Proceeding_sm_timerE(struct tsip_transac_nictContext *fsm)
{
struct tsip_transac_nict* ctxt = getOwner(fsm);
const struct tsip_transac_nictState* EndStateName = getState(fsm);
@ -308,7 +308,7 @@ static void tsip_transac_nict_Proceeding_sm_timerE(struct tsip_transac_nictConte
}
#undef tsip_transac_nict_Proceeding_sm_timerF
static void tsip_transac_nict_Proceeding_sm_timerF(struct tsip_transac_nictContext *fsm, tsk_timer_id_t timer_id)
static void tsip_transac_nict_Proceeding_sm_timerF(struct tsip_transac_nictContext *fsm)
{
struct tsip_transac_nict* ctxt = getOwner(fsm);
@ -334,7 +334,7 @@ static void tsip_transac_nict_Proceeding_sm_transportError(struct tsip_transac_n
const struct tsip_transac_nictState tsip_transac_nict_Proceeding = { POPULATE_STATE(tsip_transac_nict_Proceeding), "tsip_transac_nict_Proceeding", 2 };
#undef tsip_transac_nict_Completed_sm_timerK
static void tsip_transac_nict_Completed_sm_timerK(struct tsip_transac_nictContext *fsm, tsk_timer_id_t timer_id)
static void tsip_transac_nict_Completed_sm_timerK(struct tsip_transac_nictContext *fsm)
{
struct tsip_transac_nict* ctxt = getOwner(fsm);
@ -398,33 +398,33 @@ void tsip_transac_nictContext_sm_send(struct tsip_transac_nictContext* fsm)
setTransition(fsm, NULL);
}
void tsip_transac_nictContext_sm_timerE(struct tsip_transac_nictContext* fsm, tsk_timer_id_t timer_id)
void tsip_transac_nictContext_sm_timerE(struct tsip_transac_nictContext* fsm)
{
const struct tsip_transac_nictState* state = getState(fsm);
assert(state != NULL);
setTransition(fsm, "sm_timerE");
state->sm_timerE(fsm, timer_id);
state->sm_timerE(fsm);
setTransition(fsm, NULL);
}
void tsip_transac_nictContext_sm_timerF(struct tsip_transac_nictContext* fsm, tsk_timer_id_t timer_id)
void tsip_transac_nictContext_sm_timerF(struct tsip_transac_nictContext* fsm)
{
const struct tsip_transac_nictState* state = getState(fsm);
assert(state != NULL);
setTransition(fsm, "sm_timerF");
state->sm_timerF(fsm, timer_id);
state->sm_timerF(fsm);
setTransition(fsm, NULL);
}
void tsip_transac_nictContext_sm_timerK(struct tsip_transac_nictContext* fsm, tsk_timer_id_t timer_id)
void tsip_transac_nictContext_sm_timerK(struct tsip_transac_nictContext* fsm)
{
const struct tsip_transac_nictState* state = getState(fsm);
assert(state != NULL);
setTransition(fsm, "sm_timerK");
state->sm_timerK(fsm, timer_id);
state->sm_timerK(fsm);
setTransition(fsm, NULL);
}

View File

@ -5,50 +5,50 @@
* from file : tsip_transac_nist.sm
*/
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file tsip_transac_nist.sm
* @brief SIP Non-INVITE Server Transaction as per RFC 3261 subclause 17.2.2.
*
* @author Mamadou Diop <diopmamadou(at)yahoo.fr>
*
* @date Created: Sat Nov 8 16:54:58 2009 mdiop
*/
/*
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou@yahoo.fr>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file tsip_transac_nist.sm
* @brief SIP Non-INVITE Server Transaction as per RFC 3261 subclause 17.2.2.
*
* @author Mamadou Diop <diopmamadou(at)yahoo.fr>
*
* @date Created: Sat Nov 8 16:54:58 2009 mdiop
*/
#include <assert.h>
#include "tinysip/transactions/tsip_transac_nist.h"
#include "tinysip/smc/tsip_transac_nist_sm.h"
#include "C:\Projects\Doubango\tinySIP\include\tinysip\smc\tsip_transac_nist_sm.h"
#define getOwner(fsm) \
(fsm)->_owner
#define POPULATE_STATE(state) \
state##_Entry, \
state##_sm_request, \
state##_sm_send_1xx, \
state##_sm_send_200_to_699, \
state##_sm_send_response, \
state##_sm_timerJ, \
state##_sm_transportError, \
state##_Default
@ -60,17 +60,17 @@
#define EXIT_STATE(state)
static void tsip_transac_nistState_sm_send_1xx(struct tsip_transac_nistContext *fsm, const tsip_message_t* msg)
static void tsip_transac_nistState_sm_request(struct tsip_transac_nistContext *fsm, const tsip_request_t* request)
{
getState(fsm)->Default(fsm);
}
static void tsip_transac_nistState_sm_send_200_to_699(struct tsip_transac_nistContext *fsm, const tsip_message_t* msg)
static void tsip_transac_nistState_sm_send_1xx(struct tsip_transac_nistContext *fsm, const tsip_response_t* response)
{
getState(fsm)->Default(fsm);
}
static void tsip_transac_nistState_sm_send_response(struct tsip_transac_nistContext *fsm, const tsip_message_t* msg)
static void tsip_transac_nistState_sm_send_200_to_699(struct tsip_transac_nistContext *fsm, const tsip_response_t* response)
{
getState(fsm)->Default(fsm);
}
@ -90,44 +90,54 @@ static void tsip_transac_nistState_Default(struct tsip_transac_nistContext *fsm)
State_Default(fsm);
}
#define tsip_transac_nist_Started_sm_request tsip_transac_nistState_sm_request
#define tsip_transac_nist_Started_sm_send_1xx tsip_transac_nistState_sm_send_1xx
#define tsip_transac_nist_Started_sm_send_200_to_699 tsip_transac_nistState_sm_send_200_to_699
#define tsip_transac_nist_Started_sm_timerJ tsip_transac_nistState_sm_timerJ
#define tsip_transac_nist_Started_sm_transportError tsip_transac_nistState_sm_transportError
#define tsip_transac_nist_Started_Default tsip_transac_nistState_Default
#define tsip_transac_nist_Started_Entry NULL
#define tsip_transac_nist_Started_Exit NULL
#define tsip_transac_nist_Trying_sm_request tsip_transac_nistState_sm_request
#define tsip_transac_nist_Trying_sm_send_1xx tsip_transac_nistState_sm_send_1xx
#define tsip_transac_nist_Trying_sm_send_200_to_699 tsip_transac_nistState_sm_send_200_to_699
#define tsip_transac_nist_Trying_sm_send_response tsip_transac_nistState_sm_send_response
#define tsip_transac_nist_Trying_sm_timerJ tsip_transac_nistState_sm_timerJ
#define tsip_transac_nist_Trying_sm_transportError tsip_transac_nistState_sm_transportError
#define tsip_transac_nist_Trying_Default tsip_transac_nistState_Default
#define tsip_transac_nist_Trying_Entry NULL
#define tsip_transac_nist_Trying_Exit NULL
#define tsip_transac_nist_Proceeding_sm_request tsip_transac_nistState_sm_request
#define tsip_transac_nist_Proceeding_sm_send_1xx tsip_transac_nistState_sm_send_1xx
#define tsip_transac_nist_Proceeding_sm_send_200_to_699 tsip_transac_nistState_sm_send_200_to_699
#define tsip_transac_nist_Proceeding_sm_send_response tsip_transac_nistState_sm_send_response
#define tsip_transac_nist_Proceeding_sm_timerJ tsip_transac_nistState_sm_timerJ
#define tsip_transac_nist_Proceeding_sm_transportError tsip_transac_nistState_sm_transportError
#define tsip_transac_nist_Proceeding_Default tsip_transac_nistState_Default
#define tsip_transac_nist_Proceeding_Entry NULL
#define tsip_transac_nist_Proceeding_Exit NULL
#define tsip_transac_nist_Completed_sm_request tsip_transac_nistState_sm_request
#define tsip_transac_nist_Completed_sm_send_1xx tsip_transac_nistState_sm_send_1xx
#define tsip_transac_nist_Completed_sm_send_200_to_699 tsip_transac_nistState_sm_send_200_to_699
#define tsip_transac_nist_Completed_sm_send_response tsip_transac_nistState_sm_send_response
#define tsip_transac_nist_Completed_sm_timerJ tsip_transac_nistState_sm_timerJ
#define tsip_transac_nist_Completed_sm_transportError tsip_transac_nistState_sm_transportError
#define tsip_transac_nist_Completed_Default tsip_transac_nistState_Default
#define tsip_transac_nist_Completed_Entry NULL
#define tsip_transac_nist_Completed_Exit NULL
#define tsip_transac_nist_Terminated_sm_request tsip_transac_nistState_sm_request
#define tsip_transac_nist_Terminated_sm_send_1xx tsip_transac_nistState_sm_send_1xx
#define tsip_transac_nist_Terminated_sm_send_200_to_699 tsip_transac_nistState_sm_send_200_to_699
#define tsip_transac_nist_Terminated_sm_send_response tsip_transac_nistState_sm_send_response
#define tsip_transac_nist_Terminated_sm_timerJ tsip_transac_nistState_sm_timerJ
#define tsip_transac_nist_Terminated_sm_transportError tsip_transac_nistState_sm_transportError
#define tsip_transac_nist_Terminated_Default tsip_transac_nistState_Default
#define tsip_transac_nist_Terminated_Entry NULL
#define tsip_transac_nist_Terminated_Exit NULL
#define tsip_transac_nist_DefaultState_sm_request tsip_transac_nistState_sm_request
#define tsip_transac_nist_DefaultState_sm_send_1xx tsip_transac_nistState_sm_send_1xx
#define tsip_transac_nist_DefaultState_sm_send_200_to_699 tsip_transac_nistState_sm_send_200_to_699
#define tsip_transac_nist_DefaultState_sm_send_response tsip_transac_nistState_sm_send_response
#define tsip_transac_nist_DefaultState_sm_timerJ tsip_transac_nistState_sm_timerJ
#define tsip_transac_nist_DefaultState_sm_transportError tsip_transac_nistState_sm_transportError
#undef tsip_transac_nist_Started_sm_transportError
#define tsip_transac_nist_Started_sm_transportError tsip_transac_nist_DefaultState_sm_transportError
#undef tsip_transac_nist_Trying_sm_transportError
#define tsip_transac_nist_Trying_sm_transportError tsip_transac_nist_DefaultState_sm_transportError
#undef tsip_transac_nist_Proceeding_sm_transportError
@ -148,6 +158,8 @@ static void tsip_transac_nist_DefaultState_sm_transportError(struct tsip_transac
ENTRY_STATE(getState(fsm));
}
#undef tsip_transac_nist_Started_Default
#define tsip_transac_nist_Started_Default tsip_transac_nist_DefaultState_Default
#undef tsip_transac_nist_Trying_Default
#define tsip_transac_nist_Trying_Default tsip_transac_nist_DefaultState_Default
#undef tsip_transac_nist_Proceeding_Default
@ -162,76 +174,90 @@ static void tsip_transac_nist_DefaultState_Default(struct tsip_transac_nistConte
}
#undef tsip_transac_nist_Trying_sm_send_1xx
static void tsip_transac_nist_Trying_sm_send_1xx(struct tsip_transac_nistContext *fsm, const tsip_message_t* msg)
#undef tsip_transac_nist_Started_sm_request
static void tsip_transac_nist_Started_sm_request(struct tsip_transac_nistContext *fsm, const tsip_request_t* request)
{
struct tsip_transac_nist* ctxt = getOwner(fsm);
EXIT_STATE(getState(fsm));
clearState(fsm);
tsip_transac_nist_Trying_2_Proceeding_X_send_1xx(ctxt, msg);
tsip_transac_nist_Started_2_Trying_X_request(ctxt, request);
setState(fsm, &tsip_transac_nist_Trying);
ENTRY_STATE(getState(fsm));
}
const struct tsip_transac_nistState tsip_transac_nist_Started = { POPULATE_STATE(tsip_transac_nist_Started), "tsip_transac_nist_Started", 0 };
#undef tsip_transac_nist_Trying_sm_send_1xx
static void tsip_transac_nist_Trying_sm_send_1xx(struct tsip_transac_nistContext *fsm, const tsip_response_t* response)
{
struct tsip_transac_nist* ctxt = getOwner(fsm);
EXIT_STATE(getState(fsm));
clearState(fsm);
tsip_transac_nist_Trying_2_Proceeding_X_send_1xx(ctxt, response);
setState(fsm, &tsip_transac_nist_Proceeding);
ENTRY_STATE(getState(fsm));
}
#undef tsip_transac_nist_Trying_sm_send_200_to_699
static void tsip_transac_nist_Trying_sm_send_200_to_699(struct tsip_transac_nistContext *fsm, const tsip_message_t* msg)
static void tsip_transac_nist_Trying_sm_send_200_to_699(struct tsip_transac_nistContext *fsm, const tsip_response_t* response)
{
struct tsip_transac_nist* ctxt = getOwner(fsm);
EXIT_STATE(getState(fsm));
clearState(fsm);
tsip_transac_nist_Trying_2_Completed_X_send_200_to_699(ctxt, msg);
tsip_transac_nist_Trying_2_Completed_X_send_200_to_699(ctxt, response);
setState(fsm, &tsip_transac_nist_Completed);
ENTRY_STATE(getState(fsm));
}
const struct tsip_transac_nistState tsip_transac_nist_Trying = { POPULATE_STATE(tsip_transac_nist_Trying), "tsip_transac_nist_Trying", 0 };
const struct tsip_transac_nistState tsip_transac_nist_Trying = { POPULATE_STATE(tsip_transac_nist_Trying), "tsip_transac_nist_Trying", 1 };
#undef tsip_transac_nist_Proceeding_sm_send_1xx
static void tsip_transac_nist_Proceeding_sm_send_1xx(struct tsip_transac_nistContext *fsm, const tsip_message_t* msg)
#undef tsip_transac_nist_Proceeding_sm_request
static void tsip_transac_nist_Proceeding_sm_request(struct tsip_transac_nistContext *fsm, const tsip_request_t* request)
{
struct tsip_transac_nist* ctxt = getOwner(fsm);
const struct tsip_transac_nistState* EndStateName = getState(fsm);
clearState(fsm);
tsip_transac_nist_Proceeding_2_Proceeding_X_send_1xx(ctxt, msg);
tsip_transac_nist_Proceeding_2_Proceeding_X_request(ctxt, request);
setState(fsm, EndStateName);
}
#undef tsip_transac_nist_Proceeding_sm_send_1xx
static void tsip_transac_nist_Proceeding_sm_send_1xx(struct tsip_transac_nistContext *fsm, const tsip_response_t* response)
{
struct tsip_transac_nist* ctxt = getOwner(fsm);
const struct tsip_transac_nistState* EndStateName = getState(fsm);
clearState(fsm);
tsip_transac_nist_Proceeding_2_Proceeding_X_send_1xx(ctxt, response);
setState(fsm, EndStateName);
}
#undef tsip_transac_nist_Proceeding_sm_send_200_to_699
static void tsip_transac_nist_Proceeding_sm_send_200_to_699(struct tsip_transac_nistContext *fsm, const tsip_message_t* msg)
static void tsip_transac_nist_Proceeding_sm_send_200_to_699(struct tsip_transac_nistContext *fsm, const tsip_response_t* response)
{
struct tsip_transac_nist* ctxt = getOwner(fsm);
EXIT_STATE(getState(fsm));
clearState(fsm);
tsip_transac_nist_Proceeding_2_Completed_X_send_200_to_699(ctxt, msg);
tsip_transac_nist_Proceeding_2_Completed_X_send_200_to_699(ctxt, response);
setState(fsm, &tsip_transac_nist_Completed);
ENTRY_STATE(getState(fsm));
}
#undef tsip_transac_nist_Proceeding_sm_send_response
static void tsip_transac_nist_Proceeding_sm_send_response(struct tsip_transac_nistContext *fsm, const tsip_message_t* msg)
const struct tsip_transac_nistState tsip_transac_nist_Proceeding = { POPULATE_STATE(tsip_transac_nist_Proceeding), "tsip_transac_nist_Proceeding", 2 };
#undef tsip_transac_nist_Completed_sm_request
static void tsip_transac_nist_Completed_sm_request(struct tsip_transac_nistContext *fsm, const tsip_request_t* request)
{
struct tsip_transac_nist* ctxt = getOwner(fsm);
const struct tsip_transac_nistState* EndStateName = getState(fsm);
clearState(fsm);
tsip_transac_nist_Proceeding_2_Proceeding_X_send_response(ctxt, msg);
setState(fsm, EndStateName);
}
const struct tsip_transac_nistState tsip_transac_nist_Proceeding = { POPULATE_STATE(tsip_transac_nist_Proceeding), "tsip_transac_nist_Proceeding", 1 };
#undef tsip_transac_nist_Completed_sm_send_response
static void tsip_transac_nist_Completed_sm_send_response(struct tsip_transac_nistContext *fsm, const tsip_message_t* msg)
{
struct tsip_transac_nist* ctxt = getOwner(fsm);
const struct tsip_transac_nistState* EndStateName = getState(fsm);
clearState(fsm);
tsip_transac_nist_Completed_2_Completed_X_send_response(ctxt, msg);
tsip_transac_nist_Completed_2_Completed_X_request(ctxt, request);
setState(fsm, EndStateName);
}
@ -247,7 +273,7 @@ static void tsip_transac_nist_Completed_sm_timerJ(struct tsip_transac_nistContex
ENTRY_STATE(getState(fsm));
}
const struct tsip_transac_nistState tsip_transac_nist_Completed = { POPULATE_STATE(tsip_transac_nist_Completed), "tsip_transac_nist_Completed", 2 };
const struct tsip_transac_nistState tsip_transac_nist_Completed = { POPULATE_STATE(tsip_transac_nist_Completed), "tsip_transac_nist_Completed", 3 };
#undef tsip_transac_nist_Terminated_Entry
void tsip_transac_nist_Terminated_Entry(struct tsip_transac_nistContext *fsm)
@ -257,11 +283,11 @@ void tsip_transac_nist_Terminated_Entry(struct tsip_transac_nistContext *fsm)
tsip_transac_nist_OnTerminated(ctxt);
}
const struct tsip_transac_nistState tsip_transac_nist_Terminated = { POPULATE_STATE(tsip_transac_nist_Terminated), "tsip_transac_nist_Terminated", 3 };
const struct tsip_transac_nistState tsip_transac_nist_Terminated = { POPULATE_STATE(tsip_transac_nist_Terminated), "tsip_transac_nist_Terminated", 4 };
void tsip_transac_nistContext_Init(struct tsip_transac_nistContext* fsm, struct tsip_transac_nist* owner)
{
FSM_INIT(fsm, &tsip_transac_nist_Trying);
FSM_INIT(fsm, &tsip_transac_nist_Started);
fsm->_owner = owner;
}
@ -270,33 +296,33 @@ void tsip_transac_nistContext_EnterStartState(struct tsip_transac_nistContext* f
ENTRY_STATE(getState(fsm));
}
void tsip_transac_nistContext_sm_send_1xx(struct tsip_transac_nistContext* fsm, const tsip_message_t* msg)
void tsip_transac_nistContext_sm_request(struct tsip_transac_nistContext* fsm, const tsip_request_t* request)
{
const struct tsip_transac_nistState* state = getState(fsm);
assert(state != NULL);
setTransition(fsm, "sm_request");
state->sm_request(fsm, request);
setTransition(fsm, NULL);
}
void tsip_transac_nistContext_sm_send_1xx(struct tsip_transac_nistContext* fsm, const tsip_response_t* response)
{
const struct tsip_transac_nistState* state = getState(fsm);
assert(state != NULL);
setTransition(fsm, "sm_send_1xx");
state->sm_send_1xx(fsm, msg);
state->sm_send_1xx(fsm, response);
setTransition(fsm, NULL);
}
void tsip_transac_nistContext_sm_send_200_to_699(struct tsip_transac_nistContext* fsm, const tsip_message_t* msg)
void tsip_transac_nistContext_sm_send_200_to_699(struct tsip_transac_nistContext* fsm, const tsip_response_t* response)
{
const struct tsip_transac_nistState* state = getState(fsm);
assert(state != NULL);
setTransition(fsm, "sm_send_200_to_699");
state->sm_send_200_to_699(fsm, msg);
setTransition(fsm, NULL);
}
void tsip_transac_nistContext_sm_send_response(struct tsip_transac_nistContext* fsm, const tsip_message_t* msg)
{
const struct tsip_transac_nistState* state = getState(fsm);
assert(state != NULL);
setTransition(fsm, "sm_send_response");
state->sm_send_response(fsm, msg);
state->sm_send_200_to_699(fsm, response);
setTransition(fsm, NULL);
}

View File

@ -49,7 +49,7 @@ tsip_transac_t* tsip_transac_layer_new(const tsip_transac_layer_t *self, TSIP_BO
{
if(isCT)
{
if(tsk_striequals(TSIP_MESSAGE_AS_REQUEST(msg)->line_request.method, "INVITE"))
if(tsk_striequals(TSIP_MESSAGE_AS_REQUEST(msg)->method, "INVITE"))
{
// INVITE Client transaction (ICT)
}
@ -64,7 +64,7 @@ tsip_transac_t* tsip_transac_layer_new(const tsip_transac_layer_t *self, TSIP_BO
}
else
{
if(tsk_striequals(TSIP_MESSAGE_AS_REQUEST(msg)->line_request.method, "INVITE"))
if(tsk_striequals(TSIP_MESSAGE_AS_REQUEST(msg)->method, "INVITE"))
{
// INVITE Server transaction (IST)
}

View File

@ -124,7 +124,7 @@ size_t tsip_transport_send(const tsip_transport_t* self, const char *branch, tsi
tsk_buffer_t *buffer = 0;
/* Add Via */
if(TSIP_MESSAGE_IS_REQUEST(msg) && !tsk_striequals(msg->line_request.method, "CANCEL"))
if(TSIP_MESSAGE_IS_REQUEST(msg) && !tsk_striequals(msg->method, "CANCEL"))
{
tsip_transport_addvia(self, branch, msg);
tsip_transport_msg_update(self, msg);

View File

@ -249,9 +249,9 @@ int tsip_message_tostring(const tsip_message_t *self, tsk_buffer_t *output)
{
/*Method SP Request_URI SP SIP_Version CRLF*/
/* Method */
tsk_buffer_appendEx(output, "%s ", self->line_request.method);
tsk_buffer_appendEx(output, "%s ", self->method);
/* Request URI */
tsip_uri_tostring(self->line_request.uri, 0, 0, output);
tsip_uri_tostring(self->uri, 0, 0, output);
/* SIP VERSION */
tsk_buffer_appendEx(output, " %s\r\n", TSIP_MESSAGE_VERSION_DEFAULT);
}
@ -388,8 +388,8 @@ static void* tsip_message_create(void *self, va_list * app)
case tsip_request:
{
message->line_request.method = tsk_strdup(va_arg(*app, const char*));
message->line_request.uri = tsk_object_ref((void*)va_arg(*app, const tsip_uri_t*));
message->method = tsk_strdup(va_arg(*app, const char*));
message->uri = tsk_object_ref((void*)va_arg(*app, const tsip_uri_t*));
break;
}
@ -397,11 +397,11 @@ static void* tsip_message_create(void *self, va_list * app)
{
const tsip_request_t* request = va_arg(*app, const tsip_request_t*);
#if defined(__GNUC__)
message->line_status.status_code = (short)va_arg(*app, int);
message->status_code = (short)va_arg(*app, int);
#else
message->line_status.status_code = va_arg(*app, short);
message->status_code = va_arg(*app, short);
#endif
message->line_status.reason_phrase = tsk_strdup(va_arg(*app, const char*));
message->reason_phrase = tsk_strdup(va_arg(*app, const char*));
/* Copy sockfd */
message->sockfd = request->sockfd;
@ -473,12 +473,12 @@ static void* tsip_message_destroy(void *self)
{
if(TSIP_MESSAGE_IS_REQUEST(message))
{
TSK_FREE(message->line_request.method);
TSIP_URI_SAFE_FREE(message->line_request.uri);
TSK_FREE(message->method);
TSIP_URI_SAFE_FREE(message->uri);
}
else if(TSIP_MESSAGE_IS_RESPONSE(message))
{
TSK_FREE(message->line_status.reason_phrase);
TSK_FREE(message->reason_phrase);
}
TSK_FREE(message->sip_version);