Fixed HTTP-client query-string handling bug.
[doldaconnect.git] / lib / uimisc.c
index 014e61c..2aa6fd3 100644 (file)
 
 #include <unistd.h>
 #include <stdlib.h>
-/* I'm very unsure about this, but for now it defines wcstoll (which
- * should be defined anyway) and doesn't break anything... let's keep
- * two eyes wide open, though. */
-#define __USE_ISOC99
 #include <wchar.h>
 #include <wctype.h>
 #include <pwd.h>
@@ -241,6 +237,7 @@ static void process_krb5(struct dc_response *resp, struct logindata *data)
     krb5_data k5d;
     krb5_ap_rep_enc_part *repl;
     char *buf;
+    size_t kdl;
     
     krb = data->mechdata;
     switch(resp->code)
@@ -261,7 +258,8 @@ static void process_krb5(struct dc_response *resp, struct logindata *data)
        case 1:
            if((ires = dc_interpret(resp)) != NULL)
            {
-               k5d.data = hexdecode(icswcstombs(ires->argv[0].val.str, NULL, NULL), &k5d.length);
+               k5d.data = hexdecode(icswcstombs(ires->argv[0].val.str, NULL, NULL), &kdl);
+               k5d.length = kdl;
                if(!krb->valid)
                {
                    if((ret = krb5_rd_rep(krb->context, krb->authcon, &k5d, &repl)) != 0)
@@ -328,7 +326,7 @@ static int init_krb5(struct logindata *data)
     
     if(dc_gethostname() == NULL)
     {
-       message(1, "cannot use krb5 without a host name");
+       message(1, "cannot use krb5 without a host name\n");
        return(1);
     }
     krb = smalloc(sizeof(*krb));
@@ -969,8 +967,8 @@ static int gettrlistcallback(struct dc_response *resp)
                }
                transfer->dir = ires->argv[1].val.num;
                transfer->state = ires->argv[2].val.num;
-               transfer->size = ires->argv[6].val.num;
-               transfer->curpos = ires->argv[7].val.num;
+               transfer->size = ires->argv[6].val.lnum;
+               transfer->curpos = ires->argv[7].val.lnum;
                if(transfer->hash != NULL)
                {
                    free(transfer->hash);
@@ -986,8 +984,8 @@ static int gettrlistcallback(struct dc_response *resp)
                transfer->peerid = swcsdup(ires->argv[3].val.str);
                transfer->peernick = swcsdup(ires->argv[4].val.str);
                transfer->path = swcsdup(ires->argv[5].val.str);
-               transfer->size = ires->argv[6].val.num;
-               transfer->curpos = ires->argv[7].val.num;
+               transfer->size = ires->argv[6].val.lnum;
+               transfer->curpos = ires->argv[7].val.lnum;
                if(wcslen(ires->argv[8].val.str) > 0)
                    transfer->hash = swcsdup(ires->argv[8].val.str);
                transfer->found = 1;
@@ -1249,7 +1247,7 @@ void dc_uimisc_handlenotify(struct dc_response *resp)
        break;
     case 613:
        if((transfer = dc_findtransfer(ires->argv[0].val.num)) != NULL)
-           transfer->size = ires->argv[1].val.num;
+           transfer->size = ires->argv[1].val.lnum;
        break;
     case 614:
        if((transfer = dc_findtransfer(ires->argv[0].val.num)) != NULL)
@@ -1260,7 +1258,7 @@ void dc_uimisc_handlenotify(struct dc_response *resp)
        break;
     case 615:
        if((transfer = dc_findtransfer(ires->argv[0].val.num)) != NULL)
-           transfer->curpos = ires->argv[1].val.num;
+           transfer->curpos = ires->argv[1].val.lnum;
        break;
     case 616:
        if((transfer = dc_findtransfer(ires->argv[0].val.num)) != NULL)