/*
* Dolda Connect - Modular multiuser Direct Connect-style client
- * Copyright (C) 2004 Fredrik Tolf (fredrik@dolda2000.com)
+ * Copyright (C) 2004 Fredrik Tolf <fredrik@dolda2000.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include "transfer.h"
#include "sysevents.h"
#include "net.h"
-#include "tiger.h"
+#include <tiger.h>
/* Protocol states */
#define ADC_PROTOCOL 0
wchar_t **sup;
iconv_t ich;
int state;
+ struct wcspair *hubinf;
struct qcmd *queue;
};
}
#define ADC_CMDFN(name) static void name(struct fnetnode *fn, wchar_t *command, wchar_t *sender, int argc, wchar_t **argv)
-#define ADC_CMDCOM struct socket *sk = fn->sk; struct adchub *hub = fn->data;
+#ifdef __GNUC__
+#define UNUSED __attribute__ ((unused))
+#else
+#define UNUSED
+#endif
+#define ADC_CMDCOM \
+ struct socket *sk UNUSED = fn->sk; \
+ struct adchub *hub UNUSED = fn->data;
ADC_CMDFN(cmd_sup)
{
} else if(!wcsncmp(argv[i], L"RM", 2)) {
if(!f)
continue;
+ free(hub->sup[o]);
memmove(hub->sup[o], hub->sup[o + 1], parrlen(hub->sup) - o);
}
}
}
}
+ADC_CMDFN(cmd_inf)
+{
+ ADC_CMDCOM;
+
+ if(sender == NULL) {
+
+ }
+}
+
static struct command hubcmds[] = {
{L"SUP", 1, 0, cmd_sup},
{L"SID", 2, 0, cmd_sid},
+ {L"INF", 0, 0, cmd_inf},
{NULL, 0, 0, NULL}
};
return(0);
}
-static struct fnet adcnet = {
+static struct fnet adcnet_store = {
.connect = hubconnect,
.destroy = hubdestroy,
.setnick = hubsetnick,
.name = L"adc"
};
+static struct fnet *adcnet = &adcnet_store;
+
static int run(void)
{
int ret;
ret = 0;
for(fn = fnetnodes; fn != NULL; fn = nextfn) {
nextfn = fn->next;
- if(fn->fnet != &adcnet)
+ if(fn->fnet != adcnet)
continue;
if((hub = fn->data) == NULL)
continue;
{
if(hup)
return;
- regfnet(&adcnet);
+ regfnet(adcnet);
}
static int init(int hup)
}
static struct configvar myvars[] = {
+ /** Specifies a specific UDP port to use for ADC search
+ * results. If left unspecified, a port is allocated
+ * dynamically. Useful for NAT routers (see also the
+ * net.visibleipv4 address for those cases). */
{CONF_VAR_INT, "udpport", {.num = 0}},
+ /** Specifies a specific TCP port to use for ADC peer
+ * connections. If left unspecified, a port is allocated
+ * dynamically. Useful for NAT routers (see also the
+ * net.visibleipv4 address for those cases). */
{CONF_VAR_INT, "tcpport", {.num = 0}},
{CONF_VAR_END}
};