char *pubhubaddr = NULL;
char *connectas = NULL;
char *dcserver = NULL;
-int autoconn = 0;
+int autoconn = 1;
int srchautoupdate = 0;
int cursrch = -1, nextsrch = -1;
time_t srcheta;
float val;
char buf[64];
- colnum = (int)data;
+ colnum = GPOINTER_TO_INT(data);
gtk_tree_model_get(model, iter, colnum, &val, -1);
snprintf(buf, 64, "%.2f%%", (double)(val * 100.0));
g_object_set(rend, "text", buf, NULL);
int colnum, val;
char buf[64];
- colnum = (int)data;
+ colnum = GPOINTER_TO_INT(data);
gtk_tree_model_get(model, iter, colnum, &val, -1);
if(val >= 0)
snprintf(buf, 64, "%'i", val);
long long val;
char buf[64];
- colnum = (int)data;
+ colnum = GPOINTER_TO_INT(data);
gtk_tree_model_get(model, iter, colnum, &val, -1);
if(val >= 0)
strcpy(buf, bytes2si(val));
int colnum, val;
char buf[64];
- colnum = (int)data;
+ colnum = GPOINTER_TO_INT(data);
gtk_tree_model_get(model, iter, colnum, &val, -1);
if(val > 0)
snprintf(buf, 64, "%i", val);
}
int msgbox(int type, int buttons, char *format, ...)
+#if defined(__GNUC__)
+ __attribute__ ((format (printf, 3, 4)))
+#endif
+;
+
+int msgbox(int type, int buttons, char *format, ...)
{
GtkWidget *swnd;
va_list args;
}
}
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);
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)
{
gtk_tree_view_column_set_title(col, names[i]);
rnd = gtk_cell_renderer_text_new();
gtk_tree_view_column_pack_start(col, rnd, TRUE);
- gtk_tree_view_column_set_cell_data_func(col, rnd, transnicebytefunc2, (gpointer)cols[i], NULL);
+ gtk_tree_view_column_set_cell_data_func(col, rnd, transnicebytefunc2, GINT_TO_POINTER(cols[i]), NULL);
} else {
col = gtk_tree_view_column_new_with_attributes(names[i], gtk_cell_renderer_text_new(), "text", cols[i], NULL);
}
}
break;
case PHO_EOF:
+ if(ctxt == NULL)
+ {
+ msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, _("A hub list could not be read from %s"), pubhubaddr);
+ break;
+ }
xmlParseChunk(ctxt, NULL, 0, 1);
if(!ctxt->wellFormed)
{
}
if(i == numcols)
{
- msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, _("The hub list at %s did not contain the address to any hubs"));
+ msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, _("The hub list at %s did not contain the address to any hubs"), pubhubaddr);
break;
}
model = gtk_list_store_newv(numcols, types);
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)