* inability to structure GUI programs properly. Looking at it too
* closely may cause ocular hemorrhaging. */
+#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
-#include <malloc.h>
#include <stdarg.h>
#include <gtk/gtk.h>
#include <sys/socket.h>
}
}
addtobuf(users, NULL);
- ksquerytag = dc_queuecmd(NULL, NULL, L"filtercmd", L"userspeeda", L"%%a", users, NULL);
+ ksquerytag = dc_queuecmd(NULL, NULL, L"filtercmd", L"userspeeda", L"%a", users, NULL);
dc_freewcsarr(users);
}
return(TRUE);
{
if(!wcscmp(resp->cmdname, L".connect"))
{
- if(resp->code == 200)
+ if(resp->code != 201)
{
+ msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("The server refused the connection"));
+ dc_disconnect();
+ dcdisconnected();
+ } else if(dc_checkprotocol(resp, DC_LATEST)) {
+ msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Server protocol revision mismatch"));
+ dc_disconnect();
+ dcdisconnected();
+ } else {
tosbuf = 0x10; /* Minimum cost */
setsockopt(dcfd, SOL_IP, IP_TOS, &tosbuf, sizeof(tosbuf));
updatesbar(_("Connected"));
dc_loginasync(connectas, 1, loginconv, logincallback, NULL);
- } else {
- msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("The server refused the connection"));
- dc_disconnect();
- dcdisconnected();
}
} else if(!wcscmp(resp->cmdname, L".notify")) {
dc_uimisc_handlenotify(resp);
if(ires->argv[0].val.num == nextsrch)
{
if(cursrch != -1)
- dc_queuecmd(NULL, NULL, L"cansrch", L"%%i", cursrch, NULL);
+ dc_queuecmd(NULL, NULL, L"cansrch", L"%i", cursrch, NULL);
cursrch = nextsrch;
nextsrch = -1;
gtk_widget_set_sensitive(main_realsrch, TRUE);
void dcconnect(char *host)
{
- dcfd = dc_connect(host, -1);
+ dcfd = dc_connect(host);
if(dcfd < 0)
{
msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Could not connect:\n\n%s"), strerror(errno));
toks[0] = srealloc(toks[0], (wcslen(toks[0]) + 5) * sizeof(wchar_t));
wcscat(toks[0], L":411");
}
- tag = dc_queuecmd(NULL, NULL, L"cnct", L"dc", L"%%a", toks, NULL);
+ tag = dc_queuecmd(NULL, NULL, L"cnct", L"dc", L"%a", toks, NULL);
dc_freewcsarr(toks);
if((resp = dc_gettaggedrespsync(tag)) != NULL)
{
return;
}
gtk_tree_model_get(GTK_TREE_MODEL(fnmodel), &iter, 0, &id, -1);
- tag = dc_queuecmd(NULL, NULL, L"dcnct", L"%%i", id, NULL);
+ tag = dc_queuecmd(NULL, NULL, L"dcnct", L"%i", id, NULL);
if((resp = dc_gettaggedrespsync(tag)) != NULL)
{
if(resp->code == 502)
buf = g_realloc(buf, strlen(buf) + 5);
strcat(buf, ":411");
}
- tag = dc_queuecmd(NULL, NULL, L"cnct", L"dc", L"%%s", buf, NULL);
+ tag = dc_queuecmd(NULL, NULL, L"cnct", L"dc", L"%s", buf, NULL);
g_free(buf);
gtk_entry_set_text(GTK_ENTRY(main_fnaddr), "");
if((resp = dc_gettaggedrespsync(tag)) != NULL)
return;
}
buf = gtk_entry_get_text(GTK_ENTRY(main_chatstr));
- tag = dc_queuecmd(NULL, NULL, L"sendchat", L"%%i", curchat, L"1", L"", L"%%s", buf, NULL);
+ tag = dc_queuecmd(NULL, NULL, L"sendchat", L"%i", curchat, L"1", L"", L"%s", buf, NULL);
if((resp = dc_gettaggedrespsync(tag)) != NULL)
{
if(resp->code == 502)
msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Please enter a search expression before searching"));
return;
}
- tag = dc_queuecmd(NULL, NULL, L"search", L"all", L"%%a", toks, NULL);
+ tag = dc_queuecmd(NULL, NULL, L"search", L"all", L"%a", toks, NULL);
dc_freewcsarr(toks);
if((resp = dc_gettaggedrespsync(tag)) != NULL)
{
{
if(nextsrch == -1)
return;
- dc_queuecmd(NULL, NULL, L"cansrch", L"%%i", nextsrch, NULL);
+ dc_queuecmd(NULL, NULL, L"cansrch", L"%i", nextsrch, NULL);
nextsrch = -1;
gtk_widget_set_sensitive(main_realsrch, TRUE);
gtk_widget_set_sensitive(main_simplesrch, TRUE);
if(gtk_tree_selection_get_selected(sel, &model, &iter))
{
gtk_tree_model_get(model, &iter, 0, &id, -1);
- tag = dc_queuecmd(NULL, NULL, L"cancel", L"%%i", id, NULL);
+ tag = dc_queuecmd(NULL, NULL, L"cancel", L"%i", id, NULL);
if((resp = dc_gettaggedrespsync(tag)) != NULL)
{
if(resp->code == 502)
g_free(tfilename);
arg = (char *)gtk_entry_get_text(GTK_ENTRY(main_dlarg));
if(*arg)
- tag = dc_queuecmd(NULL, NULL, L"download", fnet, L"%%ls", peerid, L"%%ls", filename, L"%%i", size, L"hash", L"%%ls", (hash == NULL)?L"":hash, L"user", L"%%s", arg, NULL);
+ tag = dc_queuecmd(NULL, NULL, L"download", fnet, L"%ls", peerid, L"%ls", filename, L"%i", size, L"hash", L"%ls", (hash == NULL)?L"":hash, L"user", L"%s", arg, NULL);
else
- tag = dc_queuecmd(NULL, NULL, L"download", fnet, L"%%ls", peerid, L"%%ls", filename, L"%%i", size, L"hash", L"%%ls", (hash == NULL)?L"":hash, NULL);
+ tag = dc_queuecmd(NULL, NULL, L"download", fnet, L"%ls", peerid, L"%ls", filename, L"%i", size, L"hash", L"%ls", (hash == NULL)?L"":hash, NULL);
free(fnet);
free(peerid);
free(filename);
if(gtk_tree_selection_get_selected(sel, &model, &iter))
{
gtk_tree_model_get(model, &iter, 0, &id, -1);
- tag = dc_queuecmd(NULL, NULL, L"cancel", L"%%i", id, NULL);
+ tag = dc_queuecmd(NULL, NULL, L"cancel", L"%i", id, NULL);
if((resp = dc_gettaggedrespsync(tag)) != NULL)
{
if(resp->code == 502)
struct dc_response *resp;
ret = -1;
- tag = dc_queuecmd(NULL, NULL, L"filtercmd", L"rmres", L"%%s", id, NULL);
+ tag = dc_queuecmd(NULL, NULL, L"filtercmd", L"rmres", L"%s", id, NULL);
if((resp = dc_gettaggedrespsync(tag)) != NULL)
{
if(resp->numlines > 0)
dc_init();
signal(SIGCHLD, SIG_IGN);
pubhubaddr = sstrdup("http://www.hublist.org/PublicHubList.xml.bz2");
- dcserver = sstrdup("localhost");
+ dcserver = sstrdup("");
if((pwent = getpwuid(getuid())) == NULL)
{
fprintf(stderr, "could not get your passwd data");