]>
Commit | Line | Data |
---|---|---|
1 | /* version.c */ | |
2 | ||
3 | #include "miscreply.h" | |
4 | #include "../irc/irc.h" | |
5 | #include "../core/error.h" | |
6 | ||
7 | ||
8 | ||
9 | /* handle remote version request | |
10 | * | |
11 | * <source numeric> VERSION/V <target server numeric> | |
12 | * | |
13 | * cargv[0] = target server numeric | |
14 | * can be a * in which case the request is for all servers (snircd extension) | |
15 | * | |
16 | */ | |
17 | int handleversionmsg(void *source, int cargc, char **cargv) { | |
18 | ||
19 | nick *snick; /* struct nick for source nick */ | |
20 | char *sourcenum = (char *)source; /* source user numeric */ | |
21 | ||
22 | /* check parameters */ | |
23 | if (cargc < 1) { | |
24 | miscreply_needmoreparams(sourcenum, "VERSION"); | |
25 | return CMD_OK; | |
26 | } | |
27 | ||
28 | /* find source user */ | |
29 | if (!(snick = miscreply_finduser(sourcenum, "VERSION"))) | |
30 | return CMD_OK; | |
31 | ||
32 | /* | |
33 | * 351 RPL_VERSION "source 351 target version server :info" | |
34 | * "irc.netsplit.net 351 foobar u2.10.12.12+snircd(1.3.4a). irc.netsplit.net :B96ADHMRU6" | |
35 | */ | |
36 | irc_send("%s 351 %s newserv%s %s :Newserv IRC Service", getmynumeric(), sourcenum, MISCREPLY_VERSION, myserver->content); | |
37 | ||
38 | return CMD_OK; | |
39 | } |