X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=lib%2Fuimisc.c;h=73684d34f4f31a4dad7fffe68701128532a3ec34;hb=80625aa9ccbc4bd21eacc65e0020fdd1b3f052cb;hp=e1ece1c3ae5178c482d2216849089c92a9067292;hpb=c0d36fc531b148cfc8ceacc25e5e27d78cdd1906;p=doldaconnect.git diff --git a/lib/uimisc.c b/lib/uimisc.c index e1ece1c..73684d3 100644 --- a/lib/uimisc.c +++ b/lib/uimisc.c @@ -190,7 +190,7 @@ static void process_pam(struct dc_response *resp, struct logindata *data) data->callback(DC_LOGIN_ERR_CONV, NULL, data->data); freelogindata(data); } else { - dc_queuecmd(logincallback, data, L"pass", L"%%s", buf, NULL); + dc_queuecmd(logincallback, data, L"pass", L"%s", buf, NULL); } if(buf != NULL) { @@ -249,7 +249,7 @@ static void process_krb5(struct dc_response *resp, struct logindata *data) { case 0: buf = hexencode(krb->reqbuf.data, krb->reqbuf.length); - dc_queuecmd(logincallback, data, L"pass", L"%%s", buf, NULL); + dc_queuecmd(logincallback, data, L"pass", L"%s", buf, NULL); free(buf); krb->state = 1; break; @@ -321,6 +321,11 @@ static int init_krb5(struct logindata *data) krb5_data cksum; krb5_creds creds; + if(dc_gethostname() == NULL) + { + message("cannot use krb5 without a host name"); + return(1); + } krb = smalloc(sizeof(*krb)); memset(krb, 0, sizeof(*krb)); krb->fwd = 1; @@ -409,6 +414,12 @@ static struct authmech authmechs[] = }, #endif { + .name = L"unix", + .process = process_authless, + .init = NULL, + .release = NULL + }, + { .name = L"authless", .process = process_authless, .init = NULL, @@ -511,7 +522,7 @@ static int logincallback(struct dc_response *resp) } username = pwent->pw_name; } - dc_queuecmd(logincallback, data, L"login", data->mech->name, L"%%s", username, NULL); + dc_queuecmd(logincallback, data, L"login", data->mech->name, L"%s", username, NULL); } } } else if(!wcscmp(resp->cmdname, L"login") || !wcscmp(resp->cmdname, L"pass")) { @@ -685,6 +696,7 @@ static void delpeer(struct dc_fnetpeer *peer) free(peer->di[i].d.str); putdatum(peer->fn, peer->di[i].datum); } + free(peer->di); free(peer); } @@ -1060,9 +1072,9 @@ static int getpalistcallback(struct dc_response *resp) adddatum(fn, ires->argv[0].val.str, ires->argv[1].val.num); dc_freeires(ires); } - dc_queuecmd(getpeerlistcallback, data, L"lspeers", L"%%i", fn->id, NULL); + dc_queuecmd(getpeerlistcallback, data, L"lspeers", L"%i", fn->id, NULL); } else if(resp->code == 201) { - dc_queuecmd(getpeerlistcallback, data, L"lspeers", L"%%i", fn->id, NULL); + dc_queuecmd(getpeerlistcallback, data, L"lspeers", L"%i", fn->id, NULL); } else { data->callback(fn, resp->code, data->data); free(data); @@ -1098,7 +1110,7 @@ void dc_getpeerlistasync(struct dc_fnetnode *fn, void (*callback)(struct dc_fnet data->callback = callback; data->fnid = fn->id; data->data = udata; - dc_queuecmd(getpalistcallback, data, L"lspa", L"%%i", fn->id, NULL); + dc_queuecmd(getpalistcallback, data, L"lspa", L"%i", fn->id, NULL); } void dc_uimisc_disconnected(void)