+Sat Nov 8 13:08:53 EET 2003 Pekka Riikonen <priikone@silcnet.org>
+
+ * Fixed GCC-3.3.2 related compilation warnings from the
+ source tree.
+
Fri Nov 7 23:01:47 EET 2003 Pekka Riikonen <priikone@silcnet.org>
* Removed RC6 from distributions.
/* Check if the ID is in the list already */
silc_hash_table_list(channel->invite_list, &htl);
- while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2)) {
+ while (silc_hash_table_get(&htl, (void *)&type, (void *)&tmp2)) {
if (type == 3 && !memcmp(tmp2->data, tmp, len)) {
tmp = NULL;
break;
channel->invite_list)),
SILC_STR_END);
silc_hash_table_list(channel->invite_list, &htl);
- while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2))
+ while (silc_hash_table_get(&htl, (void *)&type, (void *)&tmp2))
list = silc_argument_payload_encode_one(list, tmp2->data, tmp2->len,
type);
silc_hash_table_list_reset(&htl);
SILC_STR_END);
silc_hash_table_list(channel->invite_list, &htl);
- while (silc_hash_table_get(&htl, (void **)&tmp_len, (void **)&reply))
+ while (silc_hash_table_get(&htl, (void *)&tmp_len, (void *)&reply))
invite_list = silc_argument_payload_encode_one(invite_list,
reply->data,
reply->len, tmp_len);
SILC_STR_END);
silc_hash_table_list(channel->ban_list, &htl);
- while (silc_hash_table_get(&htl, (void **)&tmp_len, (void **)&reply))
+ while (silc_hash_table_get(&htl, (void *)&tmp_len, (void *)&reply))
ban_list = silc_argument_payload_encode_one(ban_list,
reply->data,
reply->len, tmp_len);
channel->founder_key = NULL;
goto out;
}
- has_founder:
}
} else {
if (chl->mode & SILC_CHANNEL_UMODE_CHANFO) {
}
}
}
+ has_founder:
if (mode_mask & SILC_CHANNEL_MODE_CHANNEL_AUTH) {
if (chl->mode & SILC_CHANNEL_UMODE_CHANFO) {
silc_server_command_send_status_reply(cmd, SILC_COMMAND_CMODE, st, 0);
goto out;
}
- has_pk_list:
}
} else {
if (chl->mode & SILC_CHANNEL_UMODE_CHANFO) {
}
}
}
+ has_pk_list:
/* Finally, set the mode */
old_mask = channel->mode = mode_mask;
/* Get the nickname from the watcher list and use the same key in
new entries as well. If key doesn't exist then create it. */
- if (!silc_hash_table_find(server->watcher_list, hash, (void **)&tmp, NULL))
+ if (!silc_hash_table_find(server->watcher_list, hash, (void *)&tmp, NULL))
tmp = silc_memdup(hash, CLIENTID_HASH_LEN);
/* Add the client to the watcher list with the specified nickname hash. */
/* Check that this client is watching for this nickname */
if (!silc_hash_table_find_by_context(server->watcher_list, hash,
- client, (void **)&tmp)) {
+ client, (void *)&tmp)) {
/* Nickname is alredy being watched for this client */
silc_server_command_send_status_data(cmd, SILC_COMMAND_WATCH,
SILC_STATUS_ERR_NO_SUCH_NICK, 0,
channel->ban_list)),
SILC_STR_END);
silc_hash_table_list(channel->ban_list, &htl);
- while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2))
+ while (silc_hash_table_get(&htl, (void *)&type, (void *)&tmp2))
list = silc_argument_payload_encode_one(list, tmp2->data, tmp2->len,
type);
silc_hash_table_list_reset(&htl);
/* Get the founder of the channel and if found then this client
cannot be the founder since there already is one. */
silc_hash_table_list(channel->user_list, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl2))
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl2))
if (chl2->mode & SILC_CHANNEL_UMODE_CHANFO) {
chl->mode = mode &= ~SILC_CHANNEL_UMODE_CHANFO;
silc_server_force_cumode_change(server, sock, channel,
haven't resolved user list yet. */
if (server->server_type == SILC_SERVER && !server->standalone) {
silc_hash_table_list(client->channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
channel = chl->channel;
SILC_LOG_DEBUG(("Resolving users for %s channel",
channel->channel_name));
/* Send all channel keys of channels the client has joined */
silc_hash_table_list(client->channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
bool created = FALSE;
channel = chl->channel;
/* Update channel information regarding global clients on channel. */
if (server->server_type != SILC_ROUTER) {
silc_hash_table_list(detached_client->channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl))
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl))
chl->channel->global_users =
silc_server_channel_has_global(chl->channel);
silc_hash_table_list_reset(&htl);
/* Send to all clients in table */
silc_hash_table_list(clients, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&client)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&client)) {
/* If client has router set it is not locally connected client and
we will route the message to the router set in the client. Though,
send locally connected server in all cases. */
/* Send the message to clients on the channel's client list. */
silc_hash_table_list(channel->user_list, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
client = chl->client;
if (!client)
continue;
/* Send the message to clients on the channel's client list. */
silc_hash_table_list(channel->user_list, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
client = chl->client;
if (!client || client == sender_entry)
continue;
/* Send the message to clients on the channel's client list. */
silc_hash_table_list(channel->user_list, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
if (chl->client && SILC_IS_LOCAL(chl->client)) {
sock = chl->client->connection;
packetdata.src_id_type = SILC_ID_SERVER;
silc_hash_table_list(client->channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
channel = chl->channel;
/* Send the message to all clients on the channel's client list. */
silc_hash_table_list(channel->user_list, &htl2);
- while (silc_hash_table_get(&htl2, NULL, (void **)&chl2)) {
+ while (silc_hash_table_get(&htl2, NULL, (void *)&chl2)) {
c = chl2->client;
if (sender && c == sender)
type = silc_hash_table_count(channel->invite_list);
SILC_PUT16_MSB(type, list->data);
silc_hash_table_list(channel->invite_list, &htl);
- while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2))
+ while (silc_hash_table_get(&htl, (void *)&type, (void *)&tmp2))
list = silc_argument_payload_encode_one(list, tmp2->data, tmp2->len,
type);
silc_hash_table_list_reset(&htl);
type = silc_hash_table_count(channel->ban_list);
SILC_PUT16_MSB(type, list->data);
silc_hash_table_list(channel->ban_list, &htl);
- while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2))
+ while (silc_hash_table_get(&htl, (void *)&type, (void *)&tmp2))
list = silc_argument_payload_encode_one(list, tmp2->data, tmp2->len,
type);
silc_hash_table_list_reset(&htl);
are no part of the list. */
if (ht) {
silc_hash_table_list(client->channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
if (!silc_hash_table_find(ht, chl->channel, NULL, NULL)) {
silc_hash_table_del(chl->channel->user_list, chl->client);
silc_hash_table_del(chl->client->channels, chl->channel);
silc_hash_table_free(ht);
} else {
silc_hash_table_list(client->channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
silc_hash_table_del(chl->channel->user_list, chl->client);
silc_hash_table_del(chl->client->channels, chl->channel);
silc_free(chl);
/* Remove the client from all channels. The client is removed from
the channels' user list. */
silc_hash_table_list(client->channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
channel = chl->channel;
/* Remove channel if this is last client leaving the channel, unless
/* Mark other local clients to the table of clients whom will receive
the SERVER_SIGNOFF notify. */
silc_hash_table_list(channel->user_list, &htl2);
- while (silc_hash_table_get(&htl2, NULL, (void **)&chl2)) {
+ while (silc_hash_table_get(&htl2, NULL, (void *)&chl2)) {
SilcClientEntry c = chl2->client;
if (!c)
continue;
this server's client(s) on the channel. As they left the channel we
must re-generate the channel key. */
silc_hash_table_list(channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&channel)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&channel)) {
if (!silc_server_create_channel_key(server, channel, 0)) {
silc_hash_table_list_reset(&htl);
silc_hash_table_free(channels);
SilcHashTableList htl;
silc_hash_table_list(channel->user_list, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
if (chl->client->router) {
silc_hash_table_list_reset(&htl);
return TRUE;
SilcHashTableList htl;
silc_hash_table_list(channel->user_list, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chl)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chl)) {
if (SILC_IS_LOCAL(chl->client)) {
silc_hash_table_list_reset(&htl);
return TRUE;
return FALSE;
return silc_hash_table_find(client->channels, channel, NULL,
- (void **)chl);
+ (void *)chl);
}
/* Checks string for bad characters and returns TRUE if they are found. */
silc_hash_table_count(local_public_keys)));
if (!silc_hash_table_find_ext(local_public_keys, remote_public_key,
- (void **)&cached_key, NULL,
+ (void *)&cached_key, NULL,
silc_hash_public_key, NULL,
silc_hash_public_key_compare, NULL)) {
SILC_LOG_ERROR(("Public key not found"));
assert(silc_hash_table_count(local_public_keys) < 2);
silc_hash_table_list(local_public_keys, &htl);
- if (!silc_hash_table_get(&htl, NULL, (void **)&cached_key)) {
+ if (!silc_hash_table_get(&htl, NULL, (void *)&cached_key)) {
silc_hash_table_list_reset(&htl);
return NULL;
}
bool found = FALSE;
silc_hash_table_list(server->watcher_list, &htl);
- while (silc_hash_table_get(&htl, &key, (void **)&entry)) {
+ while (silc_hash_table_get(&htl, &key, (void *)&entry)) {
if (entry == client) {
silc_hash_table_del_by_context(server->watcher_list, key, client);
/* Compare the list */
silc_hash_table_list(list, &htl);
- while (silc_hash_table_get(&htl, (void **)&t, (void **)&entry)) {
+ while (silc_hash_table_get(&htl, (void *)&t, (void *)&entry)) {
if (type == t) {
if (type == 1) {
if (silc_string_match(entry->data, tmp)) {
/* Check if the public key is in the list already */
silc_hash_table_list(list, &htl);
- while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2)) {
+ while (silc_hash_table_get(&htl, (void *)&type, (void *)&tmp2)) {
if (type == 2 && !memcmp(tmp2->data, tmp, len)) {
tmp = NULL;
break;
/* Check if the ID is in the list already */
silc_hash_table_list(list, &htl);
- while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2)) {
+ while (silc_hash_table_get(&htl, (void *)&type, (void *)&tmp2)) {
if (type == 3 && !memcmp(tmp2->data, tmp, len)) {
tmp = NULL;
break;
the requested string. */
char *string = NULL, *start, *end, *n;
- if (silc_hash_table_find(list, (void *)1, NULL, (void **)&tmp2)) {
+ if (silc_hash_table_find(list, (void *)1, NULL, (void *)&tmp2)) {
string = tmp2->head;
if (tmp2->truelen && !strncmp(string, tmp, tmp2->truelen - 1)) {
/* Delete entire string */
/* Delete from the invite list */
silc_hash_table_list(list, &htl);
- while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2)) {
+ while (silc_hash_table_get(&htl, (void *)&type, (void *)&tmp2)) {
if (type == 2 && !memcmp(tmp2->data, tmp, len)) {
silc_hash_table_del_by_context(list, (void *)2, tmp2);
break;
/* Delete from the invite list */
silc_hash_table_list(list, &htl);
- while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2)) {
+ while (silc_hash_table_get(&htl, (void *)&type, (void *)&tmp2)) {
if (type == 3 && !memcmp(tmp2->data, tmp, len)) {
silc_hash_table_del_by_context(list, (void *)3, tmp2);
break;
SILC_STR_END);
silc_hash_table_list(channel->channel_pubkeys, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&pk)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&pk)) {
pkp = silc_pkcs_public_key_payload_encode(pk);
list = silc_argument_payload_encode_one(list, pkp->data, pkp->len,
announce ? 0x03 :
/* Find the public key with the hash */
if (!silc_hash_table_find(channel->channel_pubkeys, pkhash,
- NULL, (void **)&chpk)) {
+ NULL, (void *)&chpk)) {
SILC_LOG_DEBUG(("Public key not found in channel public key list"));
goto out;
}
}
if (*auth_data &&
- silc_hash_table_find_ext(*auth_data, public_key, (void **)&cached_key,
+ silc_hash_table_find_ext(*auth_data, public_key, (void *)&cached_key,
NULL, silc_hash_public_key, NULL,
silc_hash_public_key_compare, NULL)) {
silc_pkcs_public_key_free(public_key);
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val,
- (void **)&tmp->passphrase,
+ (void *)&tmp->passphrase,
&tmp->passphrase_len)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
else if (!strcmp(name, "publickey")) {
if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
- (void **)&tmp->publickeys, NULL)) {
+ (void *)&tmp->publickeys, NULL)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
}
else if (!strcmp(name, "publickeydir")) {
- if (!my_parse_publickeydir((char *) val, (void **)&tmp->publickeys)) {
+ if (!my_parse_publickeydir((char *) val, (void *)&tmp->publickeys)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val,
- (void **)&tmp->passphrase,
+ (void *)&tmp->passphrase,
&tmp->passphrase_len)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
else if (!strcmp(name, "publickey")) {
if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
- (void **)&tmp->publickeys, NULL)) {
+ (void *)&tmp->publickeys, NULL)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
}
else if (!strcmp(name, "publickeydir")) {
- if (!my_parse_publickeydir((char *) val, (void **)&tmp->publickeys)) {
+ if (!my_parse_publickeydir((char *) val, (void *)&tmp->publickeys)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val,
- (void **)&tmp->passphrase,
+ (void *)&tmp->passphrase,
&tmp->passphrase_len)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
else if (!strcmp(name, "publickey")) {
CONFIG_IS_DOUBLE(tmp->publickeys);
if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
- (void **)&tmp->publickeys, NULL)) {
+ (void *)&tmp->publickeys, NULL)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
else if (!strcmp(name, "passphrase")) {
CONFIG_IS_DOUBLE(tmp->passphrase);
if (!my_parse_authdata(SILC_AUTH_PASSWORD, (char *) val,
- (void **)&tmp->passphrase,
+ (void *)&tmp->passphrase,
&tmp->passphrase_len)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
else if (!strcmp(name, "publickey")) {
CONFIG_IS_DOUBLE(tmp->publickeys);
if (!my_parse_authdata(SILC_AUTH_PUBLIC_KEY, (char *) val,
- (void **)&tmp->publickeys, NULL)) {
+ (void *)&tmp->publickeys, NULL)) {
got_errno = SILC_CONFIG_EPRINTLINE;
goto got_err;
}
fclose(fdd);
}
+#ifdef SILC_DEBUG
+
typedef struct {
int level;
const char *string;
break;
}
}
+#endif /* SILC_DEBUG */
/* This function should not be called directly but through the appropriate
wrapper macro defined in server.h */
SilcChannelUser chu;
silc_hash_table_list(client_entry->channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chu)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chu)) {
silc_hash_table_del(chu->client->channels, chu->channel);
silc_hash_table_del(chu->channel->user_list, chu->client);
silc_free(chu);
SilcChannelUser chu;
silc_hash_table_list(old->channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chu)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chu)) {
/* Replace client entry */
silc_hash_table_del(chu->client->channels, chu->channel);
silc_hash_table_del(chu->channel->user_list, chu->client);
/* Save all joined channels */
silc_hash_table_list(conn->local_entry->channels, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chu)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chu)) {
unsigned char *chid = silc_id_id2str(chu->channel->id, SILC_ID_CHANNEL);
SilcUInt16 chid_len = silc_id_get_len(chu->channel->id, SILC_ID_CHANNEL);
clients = silc_calloc(silc_hash_table_count(channel->user_list),
sizeof(*clients));
silc_hash_table_list(channel->user_list, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chu))
+ while (silc_hash_table_get(&htl, NULL, (void *)&chu))
clients[clients_count++] = chu->client;
silc_hash_table_list_reset(&htl);
found = TRUE;
}
silc_hash_table_list(channel->user_list, &htl);
- while (silc_hash_table_get(&htl, NULL, (void **)&chu)) {
+ while (silc_hash_table_get(&htl, NULL, (void *)&chu)) {
entry = chu->client;
/* If the entry has incomplete info, then resolve it from the server. */
/*
- sftp_client.c
+ sftp_client.c
Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 2001 Pekka Riikonen
+ Copyright (C) 2001 2003 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
/* Returns the handle data of the `handle' to the `data' pointer. */
-static void silc_sftp_handle_get(SilcSFTPHandle handle,
+static void silc_sftp_handle_get(SilcSFTPHandle handle,
const unsigned char **data,
SilcUInt32 *data_len)
{
/* General routine to send SFTP packet to the SFTP server. */
static void silc_sftp_send_packet(SilcSFTPClient sftp,
- SilcSFTPPacket type,
+ SilcSFTPPacket type,
SilcUInt32 len, ...)
{
SilcBuffer tmp;
return;
sftp->packet = tmp;
- SILC_LOG_HEXDUMP(("SFTP packet to server"), sftp->packet->data,
+ SILC_LOG_HEXDUMP(("SFTP packet to server"), sftp->packet->data,
sftp->packet->len);
/* Send the packet */
operation. The variable argument list includes the status and req->type
specific data. */
-static void silc_sftp_call_request(SilcSFTPClient sftp,
- SilcSFTPRequest req,
+static void silc_sftp_call_request(SilcSFTPClient sftp,
+ SilcSFTPRequest req,
SilcSFTPPacket type,
SilcSFTPStatus status, ...)
{
data_len = (SilcUInt32)va_arg(vp, SilcUInt32);
if (req->data)
- (*req->data)((SilcSFTP)sftp, status, (const unsigned char *)data,
+ (*req->data)((SilcSFTP)sftp, status, (const unsigned char *)data,
data_len, req->context);
- }
+ }
break;
case SILC_SFTP_OPEN:
language_tag = (char *)va_arg(vp, char *);
if (req->status)
- (*req->status)((SilcSFTP)sftp, status, (const char *)message,
+ (*req->status)((SilcSFTP)sftp, status, (const char *)message,
(const char *)language_tag, req->context);
}
break;
attr = (SilcSFTPAttributes)va_arg(vp, SilcSFTPAttributes);
if (req->attr)
- (*req->attr)((SilcSFTP)sftp, status, (const SilcSFTPAttributes)attr,
+ (*req->attr)((SilcSFTP)sftp, status, (const SilcSFTPAttributes)attr,
req->context);
}
break;
data_len = (SilcUInt32)va_arg(vp, SilcUInt32);
if (req->extended)
- (*req->extended)((SilcSFTP)sftp, status, (const unsigned char *)data,
+ (*req->extended)((SilcSFTP)sftp, status, (const unsigned char *)data,
data_len, req->context);
}
break;
/* Starts SFTP client and returns context for it. The version callback
indicated by the `callback' will be called after the SFTP session has
been started and server has returned the version of the protocol. The
- SFTP client context is returned in the callback too. This returns
+ SFTP client context is returned in the callback too. This returns
allocated SFTP client context or NULL on error. */
SilcSFTP silc_sftp_client_start(SilcSFTPSendPacketCallback send_packet,
silc_list_init(sftp->requests, struct SilcSFTPRequestStruct, next);
/* Send the SFTP session initialization to the server */
- silc_sftp_send_packet(sftp, SILC_SFTP_INIT, 4,
+ silc_sftp_send_packet(sftp, SILC_SFTP_INIT, 4,
SILC_STR_UI_INT(SILC_SFTP_PROTOCOL_VERSION),
SILC_STR_END);
SILC_LOG_DEBUG(("Start"));
/* Parse the packet */
- type = silc_sftp_packet_decode(packet->buffer, (unsigned char **)&payload,
+ type = silc_sftp_packet_decode(packet->buffer, (unsigned char **)&payload,
&payload_len);
if (!type)
return;
SILC_STR_UI_INT(&version),
SILC_STR_END);
if (ret < 0) {
- (*sftp->version)((SilcSFTP)sftp, SILC_SFTP_STATUS_FAILURE, 0,
+ (*sftp->version)((SilcSFTP)sftp, SILC_SFTP_STATUS_FAILURE, 0,
sftp->version_context);
break;
}
/* Call the callback */
- (*sftp->version)((SilcSFTP)sftp, SILC_SFTP_STATUS_OK, version,
+ (*sftp->version)((SilcSFTP)sftp, SILC_SFTP_STATUS_OK, version,
sftp->version_context);
}
break;
SILC_LOG_DEBUG(("Status packet"));
- ret = silc_buffer_unformat(&buf,
+ ret = silc_buffer_unformat(&buf,
SILC_STR_UI_INT(&id),
SILC_STR_UI_INT(&status),
SILC_STR_END);
SILC_LOG_DEBUG(("Handle packet"));
- ret = silc_buffer_unformat(&buf,
+ ret = silc_buffer_unformat(&buf,
SILC_STR_UI_INT(&id),
- SILC_STR_UI32_NSTRING(&handle,
+ SILC_STR_UI32_NSTRING(&handle,
&handle_len),
SILC_STR_END);
if (ret < 0)
break;
/* Call the callback */
- silc_sftp_call_request(sftp, req, type, SILC_SFTP_STATUS_OK,
+ silc_sftp_call_request(sftp, req, type, SILC_SFTP_STATUS_OK,
handle, handle_len);
}
break;
SILC_LOG_DEBUG(("Data packet"));
- ret = silc_buffer_unformat(&buf,
+ ret = silc_buffer_unformat(&buf,
SILC_STR_UI_INT(&id),
SILC_STR_UI32_NSTRING(&data, &data_len),
SILC_STR_END);
break;
/* Call the callback */
- silc_sftp_call_request(sftp, req, type, SILC_SFTP_STATUS_OK,
+ silc_sftp_call_request(sftp, req, type, SILC_SFTP_STATUS_OK,
data, data_len);
}
break;
SILC_LOG_DEBUG(("Name packet"));
- ret = silc_buffer_unformat(&buf,
+ ret = silc_buffer_unformat(&buf,
SILC_STR_UI_INT(&id),
SILC_STR_UI_INT(&count),
SILC_STR_END);
SILC_LOG_DEBUG(("Attributes packet"));
- ret = silc_buffer_unformat(&buf,
+ ret = silc_buffer_unformat(&buf,
SILC_STR_UI_INT(&id),
SILC_STR_UI_XNSTRING(&data, buf.len - 4),
SILC_STR_END);
SILC_LOG_DEBUG(("Extended reply packet"));
- ret = silc_buffer_unformat(&buf,
+ ret = silc_buffer_unformat(&buf,
SILC_STR_UI_INT(&id),
SILC_STR_UI_XNSTRING(&data, buf.len - 4),
SILC_STR_END);
break;
/* Call the callback */
- silc_sftp_call_request(sftp, req, type, SILC_SFTP_STATUS_OK,
+ silc_sftp_call_request(sftp, req, type, SILC_SFTP_STATUS_OK,
data, buf.len - 4);
}
break;
}
}
-void silc_sftp_open(SilcSFTP sftp,
+void silc_sftp_open(SilcSFTP sftp,
const char *filename,
SilcSFTPFileOperation pflags,
SilcSFTPAttributes attrs,
return;
len = 4 + 4 + strlen(filename) + 4 + attrs_buf->len;
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(filename)),
SILC_STR_UI32_STRING(filename),
SILC_STR_UI_INT(pflags),
- SILC_STR_UI_XNSTRING(attrs_buf->data,
+ SILC_STR_UI_XNSTRING(attrs_buf->data,
attrs_buf->len),
SILC_STR_END);
silc_sftp_handle_get(handle, &hdata, &hdata_len);
len = 4 + 4 + hdata_len;
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(hdata_len),
SILC_STR_UI_XNSTRING(hdata, hdata_len),
SILC_STR_END);
+ silc_sftp_handle_delete(handle);
}
void silc_sftp_read(SilcSFTP sftp,
SilcSFTPHandle handle,
- SilcUInt64 offset,
+ SilcUInt64 offset,
SilcUInt32 len,
SilcSFTPDataCallback callback,
void *context)
silc_sftp_handle_get(handle, &hdata, &hdata_len);
len2 = 4 + 4 + hdata_len + 8 + 4;
- silc_sftp_send_packet(client, req->type, len2,
+ silc_sftp_send_packet(client, req->type, len2,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(hdata_len),
SILC_STR_UI_XNSTRING(hdata, hdata_len),
silc_sftp_handle_get(handle, &hdata, &hdata_len);
len = 4 + 4 + hdata_len + 8 + 4 + data_len;
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(hdata_len),
SILC_STR_UI_XNSTRING(hdata, hdata_len),
len = 4 + 4 + strlen(filename);
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(filename)),
SILC_STR_UI32_STRING(filename),
len = 4 + 4 + strlen(oldname) + 4 + strlen(newname);
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(oldname)),
SILC_STR_UI32_STRING(oldname),
return;
len = 4 + 4 + strlen(path) + attrs_buf->len;
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(path)),
SILC_STR_UI32_STRING(path),
len = 4 + 4 + strlen(path);
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(path)),
SILC_STR_UI32_STRING(path),
len = 4 + 4 + strlen(path);
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(path)),
SILC_STR_UI32_STRING(path),
silc_sftp_handle_get(handle, &hdata, &hdata_len);
len = 4 + 4 + hdata_len;
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(hdata_len),
SILC_STR_UI_XNSTRING(hdata, hdata_len),
len = 4 + 4 + strlen(path);
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(path)),
SILC_STR_UI32_STRING(path),
len = 4 + 4 + strlen(path);
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(path)),
SILC_STR_UI32_STRING(path),
silc_sftp_handle_get(handle, &hdata, &hdata_len);
len = 4 + 4 + hdata_len;
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(hdata_len),
SILC_STR_UI_XNSTRING(hdata, hdata_len),
return;
len = 4 + 4 + strlen(path) + attrs_buf->len;
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(path)),
SILC_STR_UI32_STRING(path),
return;
len = 4 + 4 + hdata_len + attrs_buf->len;
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(hdata_len),
SILC_STR_UI_XNSTRING(hdata, hdata_len),
len = 4 + 4 + strlen(path);
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(path)),
SILC_STR_UI32_STRING(path),
len = 4 + 4 + strlen(linkpath) + 4 + strlen(targetpath);
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(linkpath)),
SILC_STR_UI32_STRING(linkpath),
len = 4 + 4 + strlen(path);
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(path)),
SILC_STR_UI32_STRING(path),
len = 4 + 4 + strlen(request) + data_len;
- silc_sftp_send_packet(client, req->type, len,
+ silc_sftp_send_packet(client, req->type, len,
SILC_STR_UI_INT(req->id),
SILC_STR_UI_INT(strlen(request)),
SILC_STR_UI32_STRING(request),