X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fui.c;h=4484a1d008c51fdf35de585bb184a304dc350938;hb=cd340dab24ce41834312a5cc9f744d8ae381d86b;hp=5e00ad8220e78013d8d498e6e2d6de8afafb907e;hpb=d1e8b9fdbc499b3148bc3fe80eb50982c0d1ad22;p=doldaconnect.git diff --git a/daemon/ui.c b/daemon/ui.c index 5e00ad8..4484a1d 100644 --- a/daemon/ui.c +++ b/daemon/ui.c @@ -437,19 +437,20 @@ static void cmd_login(struct socket *sk, struct uidata *data, int argc, wchar_t if(data->uid == -1) { sq(sk, 0, L"506", L"Authentication error", NULL); - flog(LOG_INFO, "user %ls authenticated successfully, but no account existed", data->username); + flog(LOG_INFO, "user %ls authenticated successfully from %s, but no account existed", data->username, formataddress(sk->remote, sk->remotelen)); logout(data); } else if((data->userinfo == NULL) || (data->userinfo->perms & PERM_DISALLOW)) { sq(sk, 0, L"506", L"Authentication error", NULL); - flog(LOG_INFO, "user %ls authenticated successfully, but was not authorized", data->username); + flog(LOG_INFO, "user %ls authenticated successfully from %s, but was not authorized", data->username, formataddress(sk->remote, sk->remotelen)); logout(data); } else { sq(sk, 0, L"200", L"Welcome", NULL); - flog(LOG_INFO, "%ls (UID %i) logged in", data->username, data->uid); + flog(LOG_INFO, "%ls (UID %i) logged in from %s", data->username, data->uid, formataddress(sk->remote, sk->remotelen)); } break; case AUTH_DENIED: sq(sk, 0, L"506", L"Authentication error", L"%%ls", (data->auth->text == NULL)?L"":(data->auth->text), NULL); + flog(LOG_INFO, "authentication failed for %ls from %s", data->username, formataddress(sk->remote, sk->remotelen)); logout(data); break; case AUTH_PASS: @@ -510,19 +511,20 @@ static void cmd_pass(struct socket *sk, struct uidata *data, int argc, wchar_t * if(data->uid == -1) { sq(sk, 0, L"506", L"Authentication error", NULL); - flog(LOG_INFO, "user %ls authenticated successfully, but no account existed", data->username); + flog(LOG_INFO, "user %ls authenticated successfully from %s, but no account existed", data->username, formataddress(sk->remote, sk->remotelen)); logout(data); } else if((data->userinfo == NULL) || (data->userinfo->perms & PERM_DISALLOW)) { sq(sk, 0, L"506", L"Authentication error", NULL); - flog(LOG_INFO, "user %ls authenticated successfully, but was not authorized", data->username); + flog(LOG_INFO, "user %ls authenticated successfully from %s, but was not authorized", data->username, formataddress(sk->remote, sk->remotelen)); logout(data); } else { sq(sk, 0, L"200", L"Welcome", NULL); - flog(LOG_INFO, "%ls (UID %i) logged in", data->username, data->uid); + flog(LOG_INFO, "%ls (UID %i) logged in from %s", data->username, data->uid, formataddress(sk->remote, sk->remotelen)); } break; case AUTH_DENIED: sq(sk, 0, L"506", L"Authentication error", L"%%ls", (data->auth->text == NULL)?L"":(data->auth->text), NULL); + flog(LOG_INFO, "authentication failed for %ls from %s", data->username, formataddress(sk->remote, sk->remotelen)); logout(data); break; case AUTH_PASS: @@ -1922,7 +1924,7 @@ static int transferdestroyed(struct transfer *transfer, void *uudata) for(data = actives; data != NULL; data = data->next) { if(haspriv(data, PERM_TRANS) && data->notify.b.tract && ((transfer->owner == 0) || (transfer->owner == data->uid))) - newnotif(data, 617, NOTIF_ID, transfer->id, NOTIF_END); + newnotif(data, 617, NOTIF_ID, transfer->id, NOTIF_STR, (transfer->exitstatus == NULL)?L"":(transfer->exitstatus), NOTIF_END); } return(0); } @@ -2036,41 +2038,11 @@ static void preinit(int hup) } } -#ifdef HAVE_IPV6 -static struct sockaddr *getnameforport(int port, socklen_t *len) -{ - static struct sockaddr_in6 addr; - - memset(&addr, 0, sizeof(addr)); - addr.sin6_family = AF_INET6; - addr.sin6_port = htons(port); - addr.sin6_addr = in6addr_any; - if(len != NULL) - *len = sizeof(addr); - return((struct sockaddr *)&addr); -} -#else -static struct sockaddr *getnameforport(int port, socklen_t *len) -{ - static struct sockaddr_in addr; - - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_port = htons(port); - if(len != NULL) - *len = sizeof(addr); - return((struct sockaddr *)&addr); -} -#endif - static int portupdate(struct configvar *var, void *uudata) { - struct sockaddr *addr; - socklen_t addrlen; struct socket *newsock; - addr = getnameforport(var->val.num, &addrlen); - if((uisocket = netcslistenlocal(SOCK_STREAM, addr, addrlen, uiaccept, NULL)) == NULL) + if((uisocket = netcstcplisten(var->val.num, 1, uiaccept, NULL)) == NULL) { flog(LOG_WARNING, "could not create new UI socket, reverting to old: %s", strerror(errno)); return(0); @@ -2083,8 +2055,6 @@ static int portupdate(struct configvar *var, void *uudata) static int init(int hup) { - struct sockaddr *addr; - socklen_t addrlen; struct uiuser *user, *next; if(hup) @@ -2100,8 +2070,7 @@ static int init(int hup) { if(uisocket != NULL) putsock(uisocket); - addr = getnameforport(confgetint("ui", "port"), &addrlen); - if((uisocket = netcslistenlocal(SOCK_STREAM, addr, addrlen, uiaccept, NULL)) == NULL) + if((uisocket = netcstcplisten(confgetint("ui", "port"), 1, uiaccept, NULL)) == NULL) { flog(LOG_CRIT, "could not create UI socket: %s", strerror(errno)); return(1);