1 Hybrid ircd support, this "works for me" on a private testnet.
2 This probably should not be committed, merely kept in a "contrib"
6 ===================================================================
7 RCS file: /cvsroot/gameservirc/gameserv/gameserv.cpp,v
8 retrieving revision 1.14
9 diff -u -r1.14 gameserv.cpp
10 --- gameserv.cpp 24 Oct 2003 16:04:51 -0000 1.14
11 +++ gameserv.cpp 26 Oct 2003 22:41:46 -0000
13 timestamp = strtok(NULL, "\1");
14 notice(s_GameServ, source, "\1PING %s\1", timestamp);
15 } else if (stricmp(cmd, ":\1VERSION\1") == 0) {
16 - notice(s_GameServ, source, "\1VERSION GameServ v1.0b\1");
17 + notice(s_GameServ, source, "\1VERSION GameServ v1.0b+hybrid_0.1\1");
18 } else if (stricmp(cmd, "SEARCH") == 0) {
19 cmd = strtok(NULL, " ");
22 ===================================================================
23 RCS file: /cvsroot/gameservirc/gameserv/tcpclient.cpp,v
24 retrieving revision 1.6
25 diff -u -r1.6 tcpclient.cpp
26 --- tcpclient.cpp 23 Oct 2003 21:27:19 -0000 1.6
27 +++ tcpclient.cpp 26 Oct 2003 22:41:46 -0000
32 - raw("PROTOCTL NICKv2 VHP");
33 - raw("PASS :%s", remotepass);
34 + raw("PASS %s :TS", remotepass);
35 raw("SERVER %s 1 :Testing Server", servername);
36 - raw("NICK %S 1 %d %S %s %s %d +owghraAxNt %s :GameServ", time(NULL), gshost,
37 - servername, time(NULL), gshost);
38 - raw(":%S JOIN %s", c_Forest);
39 - raw(":%S MODE %s +o %S", c_Forest);
40 - raw(":%S MODE %s +ntm", c_Forest);
41 + raw("NICK %S %ld 1 +o %S %s %s :GameServ", time(NULL), gshost,
43 + raw(":%s SJOIN 1 %s +ntm :@%S", servername, c_Forest);
45 sock_gets(sock,buffer,sizeof(buffer)-1); /* -1 added thanks to
46 David Duchene <dave@ltd.com> for pointing out the possible
48 gameserv(source, rest);
49 else if (stricmp(dest, c_Forest) == 0)
51 - } else if (stricmp(cmd, "JOIN") == 0) {
52 + } else if (stricmp(cmd, "SJOIN") == 0) {
54 - channel = strtok(NULL, " ");
55 - if (stricmp(channel, c_Forest) == 0 && is_playing(source + 1))
56 - raw(":%S MODE %s +v %s", c_Forest, (source + 1));
59 + channel = strtok(NULL, " "); // channel timestamp
60 + channel = strtok(NULL, " "); // channel name
61 + tmp = strrchr(buffer, ':');
63 + userptr = strtok(tmp, " ");
64 + while (userptr != NULL)
66 + if (*userptr == '@')
68 + if (*userptr == '+')
69 + userptr++; // Assume that for users opped and voiced
70 + // that they are never passed as +@user
72 + if (stricmp(channel, c_Forest) == 0 && is_playing(userptr))
73 + raw(":%S MODE %s +v %s", c_Forest, userptr);
75 + userptr = strtok(NULL, " ");
78 // cout << "Unrecognized Message: cmd = " << cmd << setw(30) << "source = " <<