X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilccore%2Fsilcprotocol.h;fp=lib%2Fsilccore%2Fsilcprotocol.h;h=fd564fcbcd7d8db99941278bf1d8bb5441a5bdd7;hb=605a376f6abbd27bee3e0bcd15ba7cc3ceb41e6a;hp=f04ffd794f843a0ffd37fe4d9895df392ee5ac2c;hpb=ec1f7bb83904d50937de94083fc03819b426f6f4;p=silc.git diff --git a/lib/silccore/silcprotocol.h b/lib/silccore/silcprotocol.h index f04ffd79..fd564fcb 100644 --- a/lib/silccore/silcprotocol.h +++ b/lib/silccore/silcprotocol.h @@ -91,15 +91,17 @@ typedef unsigned char SilcProtocolState; */ typedef SilcTaskCallback SilcProtocolCallback; -typedef struct { +typedef struct SilcProtocolObjectStruct { SilcProtocolType type; SilcProtocolCallback callback; + + struct SilcProtocolObjectStruct *next; } SilcProtocolObject; typedef SilcTaskCallback SilcProtocolFinalCallback; typedef SilcTaskCallback SilcProtocolExecute; -typedef struct SilcProtocolObjectStruct { +typedef struct SilcProtocolStruct { SilcProtocolObject *protocol; SilcProtocolState state; void *context; @@ -110,12 +112,11 @@ typedef struct SilcProtocolObjectStruct { SilcProtocolFinalCallback final_callback; } *SilcProtocol; -/* Definition for SILC protocol list. This list includes all the - protocols in the SILC. SILC server and client defined own list of - protocols. */ -extern const SilcProtocolObject silc_protocol_list[]; - /* Prototypes */ +void silc_protocol_register(SilcProtocolType type, + SilcProtocolCallback callback); +void silc_protocol_unregister(SilcProtocolType type, + SilcProtocolCallback callback); void silc_protocol_alloc(SilcProtocolType type, SilcProtocol *new_protocol, void *context, SilcProtocolFinalCallback callback); void silc_protocol_free(SilcProtocol protocol);