1 --- ggz-grubby-0.0.14.1/grubby/src/netsilc.c 2013-01-31 15:56:42.079528848 +0100
2 +++ grubby/grubby/src/netsilc.c 2013-01-31 19:04:55.052626802 +0100
5 ********************************************************************/
7 +/* Definition to switch between 1.0 and 1.1 API of SILC */
8 +/*#define SILC_COMPAT 1*/
13 #include <silcincludes.h>
17 #include <silcclient.h>
21 static void silc_private_message(SilcClient client, SilcClientConnection conn, SilcClientEntry sender,
22 SilcMessagePayload payload, SilcMessageFlags flags, const unsigned char *message, SilcUInt32 message_len);
23 static void silc_notify(SilcClient client, SilcClientConnection conn, SilcNotifyType type, ...);
26 static void silc_connected(SilcClient client, SilcClientConnection conn, SilcClientConnectionStatus status);
27 static void silc_disconnected(SilcClient client, SilcClientConnection conn, SilcStatus status, const char *message);
28 static void silc_failure(SilcClient client, SilcClientConnection conn, SilcProtocol protocol, void *failure);
30 +static void silc_connected(SilcClient client, SilcClientConnection conn, SilcClientConnectionStatus status,
31 + SilcStatus error, const char *message, void *context);
32 +static void silc_running(SilcClient client, void *application);
35 /* Unused prototypes */
37 static void no_silc_command(SilcClient client, SilcClientConnection conn, SilcClientCommandContext cmd_context,
38 bool success, SilcCommand command, SilcStatus status);
39 static void no_silc_command_reply(SilcClient client, SilcClientConnection conn, SilcCommandPayload cmd_payload,
41 SilcGetAuthMeth completion, void *context);
42 static void no_silc_verify_public_key(SilcClient client, SilcClientConnection conn, SilcSocketType conn_type,
43 unsigned char *pk, SilcUInt32 pk_len, SilcSKEPKType pk_type, SilcVerifyPublicKey completion, void *context);
44 -static void no_silc_ask_passphrase(SilcClient client, SilcClientConnection conn, SilcAskPassphrase completion,
46 static bool no_silc_key_agreement(SilcClient client, SilcClientConnection conn, SilcClientEntry client_entry,
47 const char *hostname, SilcUInt16 port, SilcKeyAgreementCallback *completion, void **context);
49 +static void no_silc_command_reply(SilcClient client, SilcClientConnection conn, SilcCommand command,
50 + SilcStatus status, SilcStatus error, va_list ap);
51 +static void no_silc_command(SilcClient client, SilcClientConnection conn,
52 + bool success, SilcCommand command, SilcStatus status, SilcUInt32 argc, unsigned char **argv);
53 +static void no_silc_get_auth_method(SilcClient client, SilcClientConnection conn, char *hostname, SilcUInt16 port,
54 + SilcAuthMethod method, SilcGetAuthMeth completion, void *context);
55 +static void no_silc_verify_public_key(SilcClient client, SilcClientConnection conn, SilcConnectionType conn_type,
56 + SilcPublicKey public_key, SilcVerifyPublicKey completion, void *context);
57 +static void no_silc_key_agreement(SilcClient client, SilcClientConnection conn, SilcClientEntry client_entry,
58 + const char *hostname, SilcUInt16 protocol, SilcUInt16 port);
61 +static void no_silc_ask_passphrase(SilcClient client, SilcClientConnection conn, SilcAskPassphrase completion,
63 static void no_silc_ftp(SilcClient client, SilcClientConnection conn, SilcClientEntry client_entry,
64 SilcUInt32 session_id, const char *hostname, SilcUInt16 port);
67 static void no_silc_detach(SilcClient client, SilcClientConnection conn, const unsigned char *detach_data,
68 SilcUInt32 detach_data_len);
72 int status = NET_NOOP;
75 static SilcClient client;
76 static SilcClientConnection connection;
80 static SilcPublicKey pubkey;
81 static SilcPrivateKey privkey;
82 static SilcChannelEntry lastchannel;
86 no_silc_command_reply,
91 no_silc_get_auth_method,
92 no_silc_verify_public_key,
93 no_silc_ask_passphrase,
97 no_silc_key_agreement,
104 /* Set up the logfile or close it again */
106 /* Add dummy field on dummy messages */
107 if((message) && (type == GURU_PRIVMSG))
109 - sprintf(realmessage, "%s %s", guruname, message);
110 + snprintf(realmessage, sizeof(realmessage), "%s %s", guruname, message);
111 message = realmessage;
115 fprintf(stderr, "(SILC) >> silc_hmac_register_default returns %i\n", ret);
116 if(!ret) status = NET_ERROR;
119 ret = silc_create_key_pair(NULL, 0, NULL, NULL, NULL, NULL, &pkcs, &pubkey, &privkey, FALSE);
121 + ret = silc_create_key_pair(NULL, 0, NULL, NULL, NULL, NULL, &pubkey, &privkey, FALSE);
123 fprintf(stderr, "(SILC) >> silc_create_key_pair returns %i\n", ret);
124 if(!ret) status = NET_ERROR;
126 @@ -217,15 +261,31 @@
127 fprintf(stderr, "(SILC) >> silc_pkcs_alloc returns %i\n", ret);
128 if(!ret) status = NET_ERROR;*/
132 client->public_key = pubkey;
133 client->private_key = privkey;
137 ret = silc_client_init(client);
139 + ret = silc_client_init(client, client->username, client->hostname, client->realname, silc_running, NULL);
141 fprintf(stderr, "(SILC) >> silc_client_init returns %i\n", ret);
142 if(!ret) status = NET_ERROR;
145 silc_client_connect_to_server(client, NULL, 706, strdup(host), NULL);
147 + ret = silc_load_key_pair(NULL, NULL, NULL, &pubkey, &privkey);
148 + fprintf(stderr, "(SILC) >> silc_load_key_pair returns %i\n", ret);
149 + if(!ret) status = NET_ERROR;
151 + silc_client_run(client);
153 + silc_client_free(client);
156 /*status = NET_GOTREADY;*/
158 @@ -278,13 +338,23 @@
161 printf("> %s\n", token);
163 silc_client_send_channel_message(client, connection,
164 lastchannel, NULL, 0, (unsigned char*)token, strlen(token), TRUE);
166 + silc_client_send_channel_message(client, connection,
167 + lastchannel, NULL, 0, NULL, (unsigned char*)token, strlen(token));
171 printf("-> %s: %s\n", output->player, token);
173 silc_client_send_channel_message(client, connection,
174 lastchannel, NULL, 0, (unsigned char*)token, strlen(token), TRUE);
176 + silc_client_send_channel_message(client, connection,
177 + lastchannel, NULL, 0, NULL, (unsigned char*)token, strlen(token));
181 printf(">> %s\n", token);
187 static void silc_connected(SilcClient client, SilcClientConnection conn, SilcClientConnectionStatus status)
189 +static void silc_connected(SilcClient client, SilcClientConnection conn, SilcClientConnectionStatus status,
190 + SilcStatus error, const char *message, void *context)
196 /*status = NET_LOGIN;*/
200 static void silc_disconnected(SilcClient client, SilcClientConnection conn, SilcStatus status, const char *message)
202 fprintf(stderr, "(SILC) disconnected\n");
203 @@ -434,21 +510,37 @@
210 static void no_silc_command(SilcClient client, SilcClientConnection conn, SilcClientCommandContext cmd_context,
211 bool success, SilcCommand command, SilcStatus status)
213 +static void no_silc_command(SilcClient client, SilcClientConnection conn,
214 + bool success, SilcCommand command, SilcStatus status, SilcUInt32 argc, unsigned char **argv)
217 fprintf(stderr, "(SILC) (NO) command\n");
221 static void no_silc_command_reply(SilcClient client, SilcClientConnection conn, SilcCommandPayload cmd_payload,
222 bool success, SilcCommand command, SilcStatus status, ...)
224 +static void no_silc_command_reply(SilcClient client, SilcClientConnection conn, SilcCommand command,
225 + SilcStatus status, SilcStatus error, va_list ap)
228 fprintf(stderr, "(SILC) (NO) command reply\n");
232 static void no_silc_get_auth_method(SilcClient client, SilcClientConnection conn, char *hostname, SilcUInt16 port,
233 SilcGetAuthMeth completion, void *context)
235 +static void no_silc_get_auth_method(SilcClient client, SilcClientConnection conn, char *hostname, SilcUInt16 port,
236 + SilcAuthMethod method, SilcGetAuthMeth completion, void *context)
239 /*InternalGetAuthMethod internal;*/
241 @@ -463,12 +555,21 @@
243 silc_client_request_authentication_method(client, conn,
244 silc_get_auth_method_callback, internal);*/
248 (completion)(TRUE, SILC_AUTH_NONE, NULL, 0, context);
250 + (completion)(SILC_AUTH_NONE, NULL, 0, context);
255 static void no_silc_verify_public_key(SilcClient client, SilcClientConnection conn, SilcSocketType conn_type,
256 unsigned char *pk, SilcUInt32 pk_len, SilcSKEPKType pk_type, SilcVerifyPublicKey completion, void *context)
258 +static void no_silc_verify_public_key(SilcClient client, SilcClientConnection conn, SilcConnectionType conn_type,
259 + SilcPublicKey public_key, SilcVerifyPublicKey completion, void *context)
262 fprintf(stderr, "(SILC) (NO) verify public key\n");
264 @@ -481,12 +582,15 @@
265 fprintf(stderr, "(SILC) (NO) ask passphrase\n");
269 static bool no_silc_key_agreement(SilcClient client, SilcClientConnection conn, SilcClientEntry client_entry,
270 const char *hostname, SilcUInt16 port, SilcKeyAgreementCallback *completion, void **context)
272 +static void no_silc_key_agreement(SilcClient client, SilcClientConnection conn, SilcClientEntry client_entry,
273 + const char *hostname, SilcUInt16 protocol, SilcUInt16 port)
276 fprintf(stderr, "(SILC) (NO) key agreement\n");
281 static void no_silc_ftp(SilcClient client, SilcClientConnection conn, SilcClientEntry client_entry,
283 fprintf(stderr, "(SILC) (NO) ftp\n");
287 static void no_silc_detach(SilcClient client, SilcClientConnection conn, const unsigned char *detach_data,
288 SilcUInt32 detach_data_len)
290 fprintf(stderr, "(SILC) (NO) detach\n");
295 +static void silc_running(SilcClient client, void *application)
297 + silc_client_connect_to_server(client, NULL, pubkey, privkey,
298 + client->hostname, 706, silc_connected, NULL);
302 --- ggz-grubby-0.0.14.1/configure.ac.orig 2008-02-14 19:22:07.000000000 +0100
303 +++ ggz-grubby-0.0.14.1/configure.ac 2013-02-01 15:00:31.881131582 +0100
304 @@ -213,22 +213,18 @@
305 echo -n "Extra check: SILC... "
307 incs="/usr/include/silc"
310 AC_GGZ_FIND_FILE("silcclient.h", $incs, silc_incdir)
311 silc_includes="$silc_incdir"
313 - AC_GGZ_FIND_FILE("libsilcclient.so", $libs, silc_libdir)
314 - silc_libraries="$silc_libdir"
316 if test "x$silc_includes" = "xNO" || test "x$silc_libraries" = "xNO"; then
322 - SILC_INCLUDES="-I $silc_includes"
323 - SILC_LDFLAGS="-L $silc_libraries"
324 + SILC_INCLUDES="-I$silc_includes"
326 LIB_SILC="-lsilcclient -lsilc"
328 AC_SUBST(SILC_INCLUDES)