+/* equiv to user doing /connect server port target */
+void irc_connect(struct userNode *user, char *server, unsigned int port, struct server *target)
+{
+ putsock("%s " P10_CONNECT " %s %d %s", user->numeric, server, port, target->numeric);
+}
+
+void
+irc_squit_route(struct server *srv, const char *message, ...)
+{
+ va_list arg_list;
+ char buffer[MAXLEN];
+ va_start(arg_list, message);
+ vsnprintf(buffer, MAXLEN-2, message, arg_list);
+ buffer[MAXLEN-1] = 0;
+
+ /* When would we squit ourselves exactly?? -Rubin */
+ if(srv == self && cManager.uplink->state == CONNECTED ) {
+ unsigned int i;
+
+ /* Quit all clients linked to me. */
+ for(i = 0; i <= self->num_mask; i++) {
+ if(!self->users[i])
+ continue;
+ irc_quit(self->users[i], buffer);
+ }
+ }
+
+ putsock("%s " P10_SQUIT " %s %d :%s", self->numeric, srv->name, 0, buffer);
+
+ if(srv == self) {
+ /* Force a reconnect to the currently selected server. */
+ cManager.uplink->tries = 0;
+ log_module(MAIN_LOG, LOG_INFO, "Squitting from uplink: %s", buffer);
+ close_socket();
+ }
+}
+