X-Git-Url: http://dolda2000.com/gitweb/?p=doldaconnect.git;a=blobdiff_plain;f=daemon%2Ffnet-adc.c;h=0112710755f78e8e634dc86f71a988c51a3a4e9d;hp=a15575d4bc3bdd33620d54f9826d60e9b627ce9c;hb=d1ef02006f3d39a45ef40235f716c7f9317195f6;hpb=2b9a1911defbd6f0295b74cd7b41a2a5328d9e6a diff --git a/daemon/fnet-adc.c b/daemon/fnet-adc.c index a15575d..0112710 100644 --- a/daemon/fnet-adc.c +++ b/daemon/fnet-adc.c @@ -81,7 +81,8 @@ struct adchub { static wchar_t *eoc, *ns, *fmt; /* I've never understood why both of these are necessary, but... */ static wchar_t *privid, *cid; -struct socket *udpsock, *tcpsock; +struct socket *udpsock; +struct lport *tcpsock; static wchar_t **parseadc(wchar_t *cmdline) { @@ -240,13 +241,13 @@ static void sendinf(struct fnetnode *fn) sendadc(sk, 1, L"VEDolda ", ns, icsmbstowcs(VERSION, "us-ascii", NULL), NULL); sendadc(sk, 1, L"NI", ns, fn->mynick, NULL); sendadc(sk, 1, L"SS", ns, fmt, L"mi", (intmax_t)sharesize, L"SF", ns, fmt, L"i", sharedfiles, NULL); - if(sk->family == AF_INET) + if(sockfamily(sk) == AF_INET) sendadc(sk, 1, L"I40.0.0.0", NULL); - else if(sk->family == AF_INET6) + else if(sockfamily(sk) == AF_INET6) sendadc(sk, 1, L"I6::", NULL); sendadc(sk, 1, L"SL", ns, fmt, L"i", confgetint("transfer", "slot"), NULL); if(tcpsock != NULL) { - if((sk->family == AF_INET) && !sockgetremotename(udpsock, (struct sockaddr **)&a4, &alen)) { + if((sockfamily(sk) == AF_INET) && !sockgetremotename(udpsock, (struct sockaddr **)&a4, &alen)) { sendadc(sk, 1, L"U4", ns, fmt, L"i", ntohs(a4->sin_port), NULL); free(a4); } @@ -359,7 +360,7 @@ static void dispatch(struct qcmd *qcmd, struct fnetnode *fn) flog(LOG_DEBUG, "unknown adc command: %ls", qcmd->args[0]); } -static void peeraccept(struct socket *sk, struct socket *newsk, void *uudata) +static void peeraccept(struct lport *lp, struct socket *newsk, void *uudata) { } @@ -463,7 +464,7 @@ static void hubkill(struct fnetnode *fn) struct adchub *hub; hub = fn->data; - hub->sk->close = 1; + closesock(hub->sk); } static int hubsetnick(struct fnetnode *fn, wchar_t *newnick) @@ -565,7 +566,7 @@ static int updateudpport(struct configvar *var, void *uudata) static int updatetcpport(struct configvar *var, void *uudata) { struct sockaddr_in addr; - struct socket *newsock; + struct lport *newsock; memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; @@ -573,7 +574,7 @@ static int updatetcpport(struct configvar *var, void *uudata) if((newsock = netcslisten(SOCK_STREAM, (struct sockaddr *)&addr, sizeof(addr), peeraccept, NULL)) == NULL) flog(LOG_INFO, "could not listen to a remote address, going into passive mode"); if(tcpsock != NULL) - putsock(tcpsock); + closelport(tcpsock); tcpsock = newsock; return(0); }