static int clean_nick(const char *, int loc_client);
static int clean_username(const char *);
static int clean_host(const char *);
-static int clean_uid(const char *uid);
+static int clean_uid(const char *uid, const char *sid);
static void set_initial_nick(struct Client *client_p, struct Client *source_p, char *nick);
static void change_local_nick(struct Client *client_p, struct Client *source_p, char *nick, int);
return 0;
}
- if(!clean_uid(parv[8]))
+ if(!clean_uid(parv[8], source_p->id))
{
rb_snprintf(squitreason, sizeof squitreason,
"Invalid UID %s for nick %s on %s",
return 0;
}
- if(!clean_uid(parv[8]))
+ if(!clean_uid(parv[8], source_p->id))
{
rb_snprintf(squitreason, sizeof squitreason,
"Invalid UID %s for nick %s on %s",
}
static int
-clean_uid(const char *uid)
+clean_uid(const char *uid, const char *sid)
{
int len = 1;
+ if(strncmp(uid, sid, strlen(sid)))
+ return 0;
+
if(!IsDigit(*uid++))
return 0;