ctdb-daemon: Remove implementation of CTDB_CONTROL_KILL_TCP
authorMartin Schwenke <martin@meltin.net>
Fri, 11 Mar 2016 04:57:44 +0000 (15:57 +1100)
committerAmitay Isaacs <amitay@samba.org>
Fri, 1 Apr 2016 02:42:12 +0000 (04:42 +0200)
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/include/ctdb_private.h
ctdb/server/ctdb_control.c
ctdb/server/ctdb_takeover.c
ctdb/tests/src/ctdbd_test.c
ctdb/wscript

index 04574fe9c4c45900f5a6020ad237e247ffb3e826..bf45246c548d21d2ada61f6c786d0d09ed11bab4 100644 (file)
@@ -94,8 +94,6 @@ struct ctdb_vnn {
        /* a context to hang sending gratious arp events off */
        TALLOC_CTX *takeover_ctx;
 
-       struct ctdb_kill_tcp *killtcp;
-
        /* Set to true any time an update to this VNN is in flight.
           This helps to avoid races. */
        bool update_in_flight;
@@ -1011,7 +1009,6 @@ int32_t ctdb_control_set_iface_link(struct ctdb_context *ctdb,
                                    struct ctdb_req_control_old *c,
                                    TDB_DATA indata);
 
-int32_t ctdb_control_kill_tcp(struct ctdb_context *ctdb, TDB_DATA indata);
 int32_t ctdb_control_set_tcp_tickle_list(struct ctdb_context *ctdb,
                                         TDB_DATA indata);
 int32_t ctdb_control_get_tcp_tickle_list(struct ctdb_context *ctdb,
index 7d18969b1b01089d404ae241d035cd5c7614f1d2..c795a3f9b84e77fda41394a4e437beed0d85e90f 100644 (file)
@@ -407,9 +407,8 @@ static int32_t ctdb_control_dispatch(struct ctdb_context *ctdb,
                CHECK_CONTROL_DATA_SIZE(sizeof(struct ctdb_node_flag_change));
                return ctdb_control_modflags(ctdb, indata);
 
-       case CTDB_CONTROL_KILL_TCP: 
-               CHECK_CONTROL_DATA_SIZE(sizeof(struct ctdb_connection));
-               return ctdb_control_kill_tcp(ctdb, indata);
+       case CTDB_CONTROL_KILL_TCP:
+               return control_not_implemented("KILL_TCP", NULL);
 
        case CTDB_CONTROL_GET_TCP_TICKLE_LIST:
                CHECK_CONTROL_DATA_SIZE(sizeof(ctdb_sock_addr));
index 1256c162e925557f68e58a25cab5762e40bed596..d8f09ddb2fb793ec9774edc14d3917ee3c8d4b08 100644 (file)
@@ -40,7 +40,6 @@
 #include "common/system.h"
 #include "common/common.h"
 #include "common/logging.h"
-#include "killtcp.h"
 
 #include "server/ipalloc.h"
 
@@ -2627,106 +2626,6 @@ int32_t ctdb_control_set_iface_link(struct ctdb_context *ctdb,
 }
 
 
-/*
-  destroy the killtcp structure
- */
-struct ctdb_killtcp_destructor_data {
-       struct ctdb_vnn *vnn;
-       struct ctdb_context *ctdb;
-};
-
-static int ctdb_killtcp_destructor(struct ctdb_kill_tcp *killtcp)
-{
-       struct ctdb_killtcp_destructor_data *dd =
-               talloc_get_type_abort(killtcp->destructor_data,
-                                     struct ctdb_killtcp_destructor_data);
-       struct ctdb_vnn *tmpvnn;
-
-       /* verify that this vnn is still active */
-       for (tmpvnn = dd->ctdb->vnn; tmpvnn; tmpvnn = tmpvnn->next) {
-               if (tmpvnn == dd->vnn) {
-                       break;
-               }
-       }
-
-       if (tmpvnn == NULL) {
-               return 0;
-       }
-
-       if (dd->vnn->killtcp != killtcp) {
-               return 0;
-       }
-
-       dd->vnn->killtcp = NULL;
-
-       return 0;
-}
-
-/*
-  add a tcp socket to the list of connections we want to RST
- */
-static int ctdb_killtcp_add_connection(struct ctdb_context *ctdb,
-                                      ctdb_sock_addr *s,
-                                      ctdb_sock_addr *d)
-{
-       ctdb_sock_addr src, dst;
-       struct ctdb_vnn *vnn;
-       const char *iface;
-       struct ctdb_killtcp_destructor_data *dd;
-       int ret;
-
-       ctdb_canonicalize_ip(s, &src);
-       ctdb_canonicalize_ip(d, &dst);
-
-       vnn = find_public_ip_vnn(ctdb, &dst);
-       if (vnn == NULL) {
-               vnn = find_public_ip_vnn(ctdb, &src);
-       }
-       if (vnn == NULL) {
-               /* if it is not a public ip   it could be our 'single ip' */
-               if (ctdb->single_ip_vnn) {
-                       if (ctdb_same_ip(&ctdb->single_ip_vnn->public_address, &dst)) {
-                               vnn = ctdb->single_ip_vnn;
-                       }
-               }
-       }
-       if (vnn == NULL) {
-               DEBUG(DEBUG_ERR,(__location__ " Could not killtcp, not a public address\n"));
-               return -1;
-       }
-
-       iface = ctdb_vnn_iface_string(vnn);
-
-       ret = ctdb_killtcp(ctdb->ev, vnn, iface, &src, &dst, &vnn->killtcp);
-       if (ret != 0) {
-               return -1;
-       }
-
-       dd = talloc(vnn->killtcp, struct ctdb_killtcp_destructor_data);
-       if (dd == NULL) {
-               DEBUG(DEBUG_ERR, (__location__ " out of memory\n"));
-               TALLOC_FREE(vnn->killtcp);
-               return -1;
-       }
-
-       dd->vnn = vnn;
-       dd->ctdb = ctdb;
-       vnn->killtcp->destructor_data = dd;
-       talloc_set_destructor(vnn->killtcp, ctdb_killtcp_destructor);
-
-       return 0;
-}
-
-/*
-  kill a TCP connection.
- */
-int32_t ctdb_control_kill_tcp(struct ctdb_context *ctdb, TDB_DATA indata)
-{
-       struct ctdb_connection *killtcp = (struct ctdb_connection *)indata.dptr;
-
-       return ctdb_killtcp_add_connection(ctdb, &killtcp->src, &killtcp->dst);
-}
-
 /*
   called by a daemon to inform us of the entire list of TCP tickles for
   a particular public address.
index 5a3f6b85c9373b5a1b75ffac03409f607b2603c1..5fa70144ed4995dd4a547268b9f69d371ca7520d 100644 (file)
@@ -75,7 +75,6 @@ bool fast_start;
 #include "server/ctdb_update_record.c"
 #include "server/ctdb_lock.c"
 #include "server/ctdb_fork.c"
-#include "server/killtcp.c"
 
 /* CTDB_CLIENT_OBJ */
 #include "client/ctdb_client.c"
index 88fe59d4dd5dd8d895f5ba7fafb11dfddbf3ecfe..a73910b8193958fdef25da18ad13e157ca32c678 100755 (executable)
@@ -401,7 +401,7 @@ def build(bld):
                                              ctdb_vacuum.c ctdb_banning.c
                                              ctdb_statistics.c
                                              ctdb_update_record.c
-                                             ctdb_lock.c ctdb_fork.c killtcp.c'''),
+                                             ctdb_lock.c ctdb_fork.c'''),
                         includes='include',
                         deps='ctdb-ipalloc replace popt talloc tevent tdb talloc_report')