Dolda2000 GitWeb
/
doldaconnect.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Ignore all apspecs.
[doldaconnect.git]
/
daemon
/
fnet-adc.c
diff --git
a/daemon/fnet-adc.c
b/daemon/fnet-adc.c
index
2fb9de8
..
98d760f
100644
(file)
--- a/
daemon/fnet-adc.c
+++ b/
daemon/fnet-adc.c
@@
-1,6
+1,6
@@
/*
* Dolda Connect - Modular multiuser Direct Connect-style client
/*
* 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
*
* 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
@@
-38,7
+38,7
@@
#include "transfer.h"
#include "sysevents.h"
#include "net.h"
#include "transfer.h"
#include "sysevents.h"
#include "net.h"
-#include
"tiger.h"
+#include
<tiger.h>
/* Protocol states */
#define ADC_PROTOCOL 0
/* Protocol states */
#define ADC_PROTOCOL 0
@@
-67,6
+67,7
@@
struct adchub {
wchar_t **sup;
iconv_t ich;
int state;
wchar_t **sup;
iconv_t ich;
int state;
+ struct wcspair *hubinf;
struct qcmd *queue;
};
struct qcmd *queue;
};
@@
-191,7
+192,14
@@
static void freeqcmd(struct qcmd *qcmd)
}
#define ADC_CMDFN(name) static void name(struct fnetnode *fn, wchar_t *command, wchar_t *sender, int argc, wchar_t **argv)
}
#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)
{
ADC_CMDFN(cmd_sup)
{
@@
-215,6
+223,7
@@
ADC_CMDFN(cmd_sup)
} else if(!wcsncmp(argv[i], L"RM", 2)) {
if(!f)
continue;
} 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);
}
}
memmove(hub->sup[o], hub->sup[o + 1], parrlen(hub->sup) - o);
}
}
@@
-232,9
+241,19
@@
ADC_CMDFN(cmd_sid)
}
}
}
}
+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},
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}
};
{NULL, 0, 0, NULL}
};
@@
-457,7
+476,15
@@
static void terminate(void)
}
static struct configvar myvars[] = {
}
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}},
{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}
};
{CONF_VAR_INT, "tcpport", {.num = 0}},
{CONF_VAR_END}
};