From 68f0f5b85dd7afe83b0982df73f471547c514453 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Tue, 23 Jan 2007 14:47:25 +0000 Subject: [PATCH] updates. --- CHANGES | 27 ++++++++++++++ TODO | 6 ++-- ...-riikonen-silc-multimedia-session-00.nroff | 12 +++---- includes/Makefile.ad | 4 +-- lib/configure.ad | 2 -- lib/doc/LIBINDEX | 4 +-- lib/doc/platforms.html | 25 ++++++++++++- lib/silcutil/tests/test_silcasync.c | 4 +-- lib/silcutil/tests/test_silcfdstream.c | 16 ++++----- lib/silcutil/tests/test_silcfsm.c | 36 +++++++++---------- lib/silcutil/tests/test_silcnet.c | 12 +++---- 11 files changed, 99 insertions(+), 49 deletions(-) diff --git a/CHANGES b/CHANGES index e46811d7..ef32bfc2 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,30 @@ +Tue Jan 23 16:05:27 EET 2007 Pekka Riikonen + + * The silc_schedule_set_listen_fd now returns boolean value. + Fixed FD task adding to check correctly for already added + FD tasks. Added stricter error checking for FD scheduling + with epoll(). Affected files are lib/silcutil/silcschedule.[ch] + and lib/silcutil/unix/silcunixschedule.c. + + * The silc_stream_set_notifier now returns boolean value. Changed + all streams to support and check for the error condition. + Affected files are in lib/silcutil/. + + * Fixed SKE library session aborting and deletion. Affected + file are lib/silcske/silcske.c. + +Tue Jan 16 18:22:08 EET 2007 Pekka Riikonen + + * Implemented PKCS #1 with appendix with hash OID in the + signature. Affected files are lib/silccrypt/silcpkcs1.[ch], + lib/silccrypt/silchash.[ch] and + lib/silcasn1/silcasn1[_encode|decode].[ch]. + +Sun Jan 14 23:12:41 EET 2007 Pekka Riikonen + + * Added support for Version (V) SILC public key identifier. + Affected files are lib/silccrypt/silcpk.[ch]. + Tue Jan 9 19:37:51 EET 2007 Pekka Riikonen * Rewrote connection auth request in client library. It is now diff --git a/TODO b/TODO index 9c7561bc..1d77eafb 100644 --- a/TODO +++ b/TODO @@ -85,6 +85,8 @@ lib/silcsftp ****DONE**** lib/silccore/silcpacket.[ch] ****PARTLY DONE**** ============================ + o Implement silc_packet_engine_stop and silc_packet_stream_destroy. + o Implement ACK packet and packet payload. o SilcPacketEngine. (***DONE) @@ -138,9 +140,9 @@ lib/silccrypt ****PARTLY DONE**** ============= o Implement SILC Public Key Version 2 handling in sign/verify. Implement - Version (V) identifier. + Version (V) identifier (***DONE) - o Implement PKCS #1 sign/verify with hash OID. + o Implement PKCS #1 sign/verify with hash OID. (***TESTING NEEDED) o Implement the defined SilcDH API. The definition is in lib/silccrypt/silcdh.h. diff --git a/doc/draft-riikonen-silc-multimedia-session-00.nroff b/doc/draft-riikonen-silc-multimedia-session-00.nroff index 97f4ad1d..9e21409e 100644 --- a/doc/draft-riikonen-silc-multimedia-session-00.nroff +++ b/doc/draft-riikonen-silc-multimedia-session-00.nroff @@ -169,8 +169,8 @@ The Origin (o=) field describes from where the session originates. The The Connection Data (c=) field describes the connection information for the multimedia session. When performing peer-to-peer multimedia session the is 'IN', indicating Internet connection. When -performing multimedia session inside SILC network it is 'SILC'. When the -'SILC' network type is used the
and +performing multimedia session inside SILC network it is 'SILC'. When +the 'SILC' network type is used the
and sub-fields are omitted. Examples: c=SILC @@ -179,8 +179,8 @@ sub-fields are omitted. Examples: The Media Announcements (m=) field describes the media information for the multimedia session. If the network type in c= field is 'SILC' the -sub-field MUST be set to 9 (discard). The for RTP over UDP is -'RTP/AVP', for RTP over TCP it is 'TCP/RTP/AVP', and for non-RTP protocol +sub-field MUST be set to 9 (discard). The for RTP over UDP +is 'RTP/AVP', for RTP over TCP it is 'TCP/RTP/AVP', and for non-RTP protocol over UDP it is 'udp' and over TCP it is 'tcp'. The sub-field includes the RTP media payload number when using RTP. When using non-RTP protocol it includes MIME subtype. Examples: @@ -209,8 +209,8 @@ attribute is omitted the session type is expected to be "direct". The following parameters are defined for attribute "silc". channel The name of the channel for group conferencing. - Can be used only with "group" session type. - More than one channel parameters may be defined. + Can be used only with "group" session type. + More than one channel parameters may be defined. The [RFC4145] specifies a "setup" attribute that defines which party of the diff --git a/includes/Makefile.ad b/includes/Makefile.ad index 4a016351..0a26283c 100644 --- a/includes/Makefile.ad +++ b/includes/Makefile.ad @@ -21,7 +21,7 @@ AUTOMAKE_OPTIONS = 1.0 no-dependencies foreign include_HEADERS = \ silc.h \ silcwin32.h \ - silcepoc.h \ + silcsymbian.h \ silcbeos.h \ silcos2.h \ silcversion.h @@ -30,7 +30,7 @@ include_HEADERS = \ EXTRA_DIST = \ silc.h \ silcwin32.h \ - silcepoc.h \ + silcsymbian.h \ silcbeos.h \ silcos2.h \ silcversion.h.in \ diff --git a/lib/configure.ad b/lib/configure.ad index 5f13377f..a3a7eea9 100644 --- a/lib/configure.ad +++ b/lib/configure.ad @@ -207,8 +207,6 @@ lib/silcske/Makefile lib/silcutil/Makefile lib/silcutil/unix/Makefile lib/silcutil/win32/Makefile -lib/silcutil/beos/Makefile -lib/silcutil/os2/Makefile lib/silcapputil/Makefile #ifdef SILC_DIST_SFTP lib/silcsftp/Makefile diff --git a/lib/doc/LIBINDEX b/lib/doc/LIBINDEX index b12935e1..ece0a0a7 100644 --- a/lib/doc/LIBINDEX +++ b/lib/doc/LIBINDEX @@ -7,7 +7,7 @@
Version: @VERSION@
-Copyright © 1997 - 2005 The SILC Project
+Copyright © 1997 - 2007 The SILC Project
Updated: @DATE@



@@ -45,7 +45,7 @@ of the Toolkit always delivers the latest version of this reference manual.

Resource Links

-Please refer to these outside links for more information about the SILC +Please refer to these outside links for more information about the SILC project and SILC Protocol.

diff --git a/lib/doc/platforms.html b/lib/doc/platforms.html index fa873d93..7fd26cd7 100644 --- a/lib/doc/platforms.html +++ b/lib/doc/platforms.html @@ -11,12 +11,13 @@ differences between platforms.
  • Unix & Linux Implementation
  • Windows Implementation
  • Mac OS X Implementation +
  • Symbian Implementation
     
     
    Supported Platforms
     
    -SILC Toolkit supports by default all Unix and Linux platforms, Windows +SILC Toolkit supports by default all Unix and Linux platforms, Windows platforms from Windows 98 and newer, and Mac OS X. In the future there is also plans to add support for other platforms such as Symbian OS (EPOC). @@ -58,3 +59,25 @@ All features and components delivered with the SILC Toolkit work on Mac OS X platform. There are no special Mac OS X platform related implementation issues with current version of SILC Toolkit. + +
     
     
    +Symbian Implementation + +
     
    +Symbian support in SILC Toolkit is still experimental. By default all +feature and components delivered with SILC Toolkit are supported on +Symbian. However, there are some certain issues with the Symbian version +of the SILC Toolkit + +
     
    +
  • The function silc_schedule on Symbian will return immediately, +instead of blocking the calling thread/process as on other platforms. On +symbian the function is equivalent to silc_schedule_one, and that +function should be used instead. The design of SilcSchedule on Symbian +enables efficient data I/O even when silc_schedule_one is called +from a timer task. The data I/O is scheduled separately by the Symbian +Active Scheduler and the SilcSchedule will merely schedule timeouts. + +
  • The function silc_client_run on Symbian will return immediately. +On symbian the silc_client_run_one should be used instead. It can +used from a timer or from an idle task. diff --git a/lib/silcutil/tests/test_silcasync.c b/lib/silcutil/tests/test_silcasync.c index 96210e08..ca68c7d0 100644 --- a/lib/silcutil/tests/test_silcasync.c +++ b/lib/silcutil/tests/test_silcasync.c @@ -94,7 +94,7 @@ SILC_FSM_STATE(test_st_second) /** Finish */ silc_fsm_next_later(fsm, test_st_finish, 2, 0); - SILC_FSM_WAIT; + return SILC_FSM_WAIT; } SILC_FSM_STATE(test_st_finish) @@ -102,7 +102,7 @@ SILC_FSM_STATE(test_st_finish) SILC_LOG_DEBUG(("test_st_finish")); SILC_LOG_DEBUG(("Finish machine")); - SILC_FSM_FINISH; + return SILC_FSM_FINISH; } static void destructor(SilcFSM fsm, void *fsm_context, diff --git a/lib/silcutil/tests/test_silcfdstream.c b/lib/silcutil/tests/test_silcfdstream.c index c0039b1c..e4d53a59 100644 --- a/lib/silcutil/tests/test_silcfdstream.c +++ b/lib/silcutil/tests/test_silcfdstream.c @@ -32,7 +32,7 @@ SILC_FSM_STATE(st_end) { unlink("/tmp/test_silcfdstream"); unlink("/tmp/test_silcfdstream_copy"); - SILC_FSM_FINISH; + return SILC_FSM_FINISH; } SILC_FSM_STATE(st_readwrite) @@ -83,7 +83,7 @@ SILC_FSM_STATE(st_readwrite) if (i == -1) { SILC_LOG_DEBUG(("Would block, write later")); silc_fsm_next(fsm, st_end); - SILC_FSM_WAIT; + return SILC_FSM_WAIT; } if (i == -2) { @@ -99,7 +99,7 @@ SILC_FSM_STATE(st_readwrite) if (ret == -1) { SILC_LOG_DEBUG(("Would block, read later")); silc_fsm_next(fsm, st_end); - SILC_FSM_WAIT; + return SILC_FSM_WAIT; } if (ret == -2) { @@ -117,11 +117,11 @@ SILC_FSM_STATE(st_readwrite) } silc_fsm_next(fsm, st_end); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; err: silc_fsm_next(fsm, st_end); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } SILC_FSM_STATE(st_write) @@ -159,7 +159,7 @@ SILC_FSM_STATE(st_write) if (ret == -1) { SILC_LOG_DEBUG(("Would block, write later")); silc_fsm_next(fsm, st_readwrite); - SILC_FSM_WAIT; + return SILC_FSM_WAIT; } if (ret == -2) { @@ -179,11 +179,11 @@ SILC_FSM_STATE(st_write) SILC_LOG_DEBUG(("Continue to next state")); silc_fsm_next(fsm, st_readwrite); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; err: silc_fsm_next(fsm, st_end); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } static void fsm_dest(SilcFSM fsm, void *fsm_context, void *context) diff --git a/lib/silcutil/tests/test_silcfsm.c b/lib/silcutil/tests/test_silcfsm.c index 5432d418..b0464393 100644 --- a/lib/silcutil/tests/test_silcfsm.c +++ b/lib/silcutil/tests/test_silcfsm.c @@ -75,7 +75,7 @@ SILC_FSM_STATE(test_st_start) /** Move to second state */ SILC_LOG_DEBUG(("Move to next state")); silc_fsm_next(fsm, test_st_second); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_second) @@ -85,7 +85,7 @@ SILC_FSM_STATE(test_st_second) /** Move to second timeout state, timeout */ SILC_LOG_DEBUG(("Move to next state with 2 second timeout")); silc_fsm_next_later(fsm, test_st_second_timeout, 2, 0); - SILC_FSM_WAIT; + return SILC_FSM_WAIT; } SILC_TASK_CALLBACK(test_second_timeout) @@ -111,7 +111,7 @@ SILC_FSM_STATE(test_st_second_timeout) silc_fsm_next_later(fsm, test_st_third, 3, 0); silc_schedule_task_add_timeout(silc_fsm_get_schedule(fsm), test_second_timeout, f, 2, 500000); - SILC_FSM_WAIT; + return SILC_FSM_WAIT; } static void async_call_cb(void *context) @@ -167,7 +167,7 @@ SILC_FSM_STATE(test_thread_st_start) /** Move to final state, timeout */ SILC_LOG_DEBUG(("Move to final state with %d second timeout", f->timeout)); silc_fsm_next_later(fsm, test_thread_st_finish, f->timeout, 0); - SILC_FSM_WAIT; + return SILC_FSM_WAIT; } SILC_FSM_STATE(test_thread_st_finish) @@ -175,7 +175,7 @@ SILC_FSM_STATE(test_thread_st_finish) SILC_LOG_DEBUG(("test_thread_st_finish")); SILC_LOG_DEBUG(("Finishing the thread")); - SILC_FSM_FINISH; + return SILC_FSM_FINISH; } SILC_FSM_STATE(test_st_fifth) @@ -199,7 +199,7 @@ SILC_FSM_STATE(test_st_fifth) SILC_LOG_DEBUG(("Waiting for thread to terminate for 5 seconds")); silc_fsm_next(fsm, test_st_sixth); SILC_FSM_EVENT_TIMEDWAIT(&f->sema, 5, 0, NULL); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_thread2_st_start) @@ -211,7 +211,7 @@ SILC_FSM_STATE(test_thread2_st_start) /** Move to final state, timeout */ SILC_LOG_DEBUG(("Move to final state with %d second timeout", f->timeout)); silc_fsm_next_later(fsm, test_thread2_st_finish, f->timeout, 0); - SILC_FSM_WAIT; + return SILC_FSM_WAIT; } SILC_FSM_STATE(test_thread2_st_finish) @@ -223,7 +223,7 @@ SILC_FSM_STATE(test_thread2_st_finish) SILC_FSM_EVENT_SIGNAL(&f->sema); SILC_LOG_DEBUG(("Finishing the thread")); - SILC_FSM_FINISH; + return SILC_FSM_FINISH; } SILC_FSM_STATE(test_st_sixth) @@ -235,7 +235,7 @@ SILC_FSM_STATE(test_st_sixth) /** Move to next state, timeout */ SILC_LOG_DEBUG(("Continue to next state with 4 second timeout")); silc_fsm_next_later(fsm, test_st_seventh, 4, 0); - SILC_FSM_WAIT; + return SILC_FSM_WAIT; } SILC_FSM_STATE(test_thread3_st_start) @@ -244,14 +244,14 @@ SILC_FSM_STATE(test_thread3_st_start) if (t->rounds == 0) { SILC_FSM_EVENT_SIGNAL(&t->sema); - SILC_FSM_FINISH; + return SILC_FSM_FINISH; } t->rounds--; /** Call in recursive */ silc_fsm_next(fsm, test_thread3_st_start); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_seventh) @@ -274,7 +274,7 @@ SILC_FSM_STATE(test_st_seventh) /** Move to wait threads */ silc_fsm_next(fsm, test_st_eighth); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_eighth) @@ -293,7 +293,7 @@ SILC_FSM_STATE(test_st_eighth) /** Move to next thread */ silc_fsm_next(fsm, test_st_ninth); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_thread4_st_start) @@ -302,14 +302,14 @@ SILC_FSM_STATE(test_thread4_st_start) if (t->rounds == 0) { SILC_FSM_EVENT_SIGNAL(&t->sema); - SILC_FSM_FINISH; + return SILC_FSM_FINISH; } t->rounds--; /** Call in recursive */ silc_fsm_next(fsm, test_thread4_st_start); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_ninth) @@ -334,7 +334,7 @@ SILC_FSM_STATE(test_st_ninth) /** Move to wait threads */ silc_fsm_next(fsm, test_st_tenth); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_tenth) @@ -352,7 +352,7 @@ SILC_FSM_STATE(test_st_tenth) /** Finished successfully */ silc_fsm_next_later(fsm, test_st_finish, 2, 0); - SILC_FSM_WAIT; + return SILC_FSM_WAIT; } SILC_FSM_STATE(test_st_finish) @@ -360,7 +360,7 @@ SILC_FSM_STATE(test_st_finish) SILC_LOG_DEBUG(("test_st_finish")); SILC_LOG_DEBUG(("Finish machine")); - SILC_FSM_FINISH; + return SILC_FSM_FINISH; } static void destructor(SilcFSM fsm, void *fsm_context, diff --git a/lib/silcutil/tests/test_silcnet.c b/lib/silcutil/tests/test_silcnet.c index 246d56bf..2931bd74 100644 --- a/lib/silcutil/tests/test_silcnet.c +++ b/lib/silcutil/tests/test_silcnet.c @@ -66,13 +66,13 @@ SILC_FSM_STATE(test_st_connected) if (f->server_status != SILC_NET_OK) { SILC_LOG_DEBUG(("Creating connection failed")); - SILC_FSM_FINISH; + return SILC_FSM_FINISH; } silc_socket_stream_get_info(f->server_stream, NULL, &host, &ip, &port); SILC_LOG_DEBUG(("Connected to server %s, %s:%d", host, ip, port)); - SILC_FSM_FINISH; + return SILC_FSM_FINISH; } SILC_FSM_STATE(test_st_start) @@ -89,7 +89,7 @@ SILC_FSM_STATE(test_st_start) /** Creating network listener failed */ SILC_LOG_DEBUG(("Listener creation failed")); silc_fsm_next(fsm, test_st_finish); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } /* Create thread to connect to the listener */ @@ -100,7 +100,7 @@ SILC_FSM_STATE(test_st_start) SILC_LOG_DEBUG(("Start waiting for incoming connections")); silc_fsm_event_init(&f->sema, fsm); silc_fsm_next(fsm, test_st_second); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_second) @@ -117,7 +117,7 @@ SILC_FSM_STATE(test_st_second) /** Accepting new connection failed */ SILC_LOG_DEBUG(("Accepting failed %d", f->client_status)); silc_fsm_next(fsm, test_st_finish); - SILC_FSM_CONTINUE; + return SILC_FSM_CONTINUE; } silc_socket_stream_get_info(f->client_stream, NULL, &host, &ip, &port); @@ -148,7 +148,7 @@ SILC_FSM_STATE(test_st_finish) silc_net_close_listener(f->server); SILC_LOG_DEBUG(("Finish machine")); - SILC_FSM_FINISH; + return SILC_FSM_FINISH; } static void destructor(SilcFSM fsm, void *fsm_context, -- 2.24.0