1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-09 23:03:13 +02:00

Protection against linking race conditions is back again (IOTW: allow very rapid re-linking), but only if your network is fully 3.4.x (actually: current git unreal34 or later)

Re-implemented PROTOCTL SERVERS= which nenolod ripped out (#4355).
Add 2nd argument to PROTOCTL EAUTH=servername,unrealprotocol
Change UnrealProtocol from 2350 to 2351
This commit is contained in:
Bram Matthys
2015-07-10 21:57:13 +02:00
parent 5e23fadefb
commit 6c0ebb5bd3
7 changed files with 153 additions and 63 deletions
+2 -2
View File
@@ -722,9 +722,9 @@ extern char *chfl_to_sjoin_symbol(int s);
extern char chfl_to_chanmode(int s);
extern void add_pending_net(aClient *sptr, char *str);
extern void free_pending_net(aClient *sptr);
extern aPendingNet *find_pending_net_by_numeric_butone(int numeric, aClient *exempt);
extern aClient *find_pending_net_duplicates(aClient *cptr, aClient **srv, int *numeric);
extern aClient *find_non_pending_net_duplicates(aClient *cptr);
extern aPendingNet *find_pending_net_by_sid_butone(char *sid, aClient *exempt);
extern aClient *find_pending_net_duplicates(aClient *cptr, aClient **srv, char **sid);
extern MODVAR char serveropts[];
extern MODVAR char *IsupportStrings[];
extern void finish_auth(aClient *acptr);
+11 -5
View File
@@ -145,7 +145,6 @@ typedef struct _cmdoverride Cmdoverride;
typedef struct SMember Member;
typedef struct SMembership Membership;
typedef struct SMembershipL MembershipL;
typedef struct PendingNet aPendingNet;
#ifdef NEED_U_INT32_T
typedef unsigned int u_int32_t; /* XXX Hope this works! */
@@ -706,6 +705,7 @@ struct Server {
} flags;
struct {
char *chanmodes[4];
int protocol;
} features;
};
@@ -1719,11 +1719,17 @@ struct _parsemode {
char buf[512]; /* internal parse buffer */
};
typedef struct PendingServer aPendingServer;
struct PendingServer {
aPendingServer *prev, *next;
char sid[IDLEN+1];
};
typedef struct PendingNet aPendingNet;
struct PendingNet {
aPendingNet *prev, *next; /* Previous and next in list */
aClient *sptr; /**< Client to which these servers belong */
int numservers; /**< Amount of servers in list */
int servers[1]; /** The list of servers (array of integer server numerics) */
aPendingNet *prev, *next; /* Previous and next in list */
aClient *sptr; /**< Client to which these servers belong */
aPendingServer *servers; /**< The list of servers connected to the client */
};
void init_throttling_hash();
+1 -1
View File
@@ -56,7 +56,7 @@
*/
#define UNREAL_VERSION_TIME 201411
#define UnrealProtocol 2350
#define UnrealProtocol 2351
#define PATCH1 macro_to_str(UNREAL_VERSION_GENERATION)
#define PATCH2 "." macro_to_str(UNREAL_VERSION_MAJOR)
#define PATCH3 ""