added some code for control channel authentication
This commit is contained in:
@ -23,10 +23,6 @@ import "unsafe"
|
||||
* GET get info
|
||||
*/
|
||||
|
||||
type JsonErrmsg struct {
|
||||
Text string `json:"error-text"`
|
||||
}
|
||||
|
||||
type json_in_client_conn struct {
|
||||
ServerAddrs []string `json:"server-addrs"`
|
||||
}
|
||||
@ -215,7 +211,8 @@ func (ctl *client_ctl_client_conns) ServeHTTP(w http.ResponseWriter, req *http.R
|
||||
cts, err = c.start_service(&cc) // TODO: this can be blocking. do we have to resolve addresses before calling this? also not good because resolution succeed or fail at each attempt. however ok as ServeHTTP itself is in a goroutine?
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusInternalServerError)
|
||||
if err = je.Encode(JsonErrmsg{Text: err.Error()}); err != nil { goto oops }
|
||||
je.Encode(JsonErrmsg{Text: err.Error()})
|
||||
goto oops
|
||||
} else {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusCreated)
|
||||
if err = je.Encode(json_out_client_conn_id{Id: cts.Id}); err != nil { goto oops }
|
||||
@ -260,15 +257,15 @@ func (ctl *client_ctl_client_conns_id) ServeHTTP(w http.ResponseWriter, req *htt
|
||||
conn_nid, err = strconv.ParseUint(conn_id, 10, int(unsafe.Sizeof(ConnId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
cts = c.FindClientConnById(ConnId(conn_nid))
|
||||
if cts == nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusNotFound)
|
||||
if err = je.Encode(JsonErrmsg{Text: "non-existent connection id - " + conn_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "non-existent connection id - " + conn_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
switch req.Method {
|
||||
@ -313,7 +310,7 @@ func (ctl *client_ctl_client_conns_id) ServeHTTP(w http.ResponseWriter, req *htt
|
||||
status_code = WriteEmptyRespHeader(w, http.StatusBadRequest)
|
||||
}
|
||||
|
||||
done:
|
||||
//done:
|
||||
return status_code, nil
|
||||
|
||||
oops:
|
||||
@ -339,15 +336,15 @@ func (ctl *client_ctl_client_conns_id_routes) ServeHTTP(w http.ResponseWriter, r
|
||||
conn_nid, err = strconv.ParseUint(conn_id, 10, int(unsafe.Sizeof(ConnId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id }); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id })
|
||||
goto oops
|
||||
}
|
||||
|
||||
cts = c.FindClientConnById(ConnId(conn_nid))
|
||||
if cts == nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusNotFound)
|
||||
if err = je.Encode(JsonErrmsg{Text: "non-existent connection id - " + conn_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "non-existent connection id - " + conn_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
switch req.Method {
|
||||
@ -421,7 +418,8 @@ func (ctl *client_ctl_client_conns_id_routes) ServeHTTP(w http.ResponseWriter, r
|
||||
r, err = cts.AddNewClientRoute(rc)
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusInternalServerError)
|
||||
if err = je.Encode(JsonErrmsg{Text: err.Error()}); err != nil { goto oops }
|
||||
je.Encode(JsonErrmsg{Text: err.Error()})
|
||||
goto oops
|
||||
} else {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusCreated)
|
||||
if err = je.Encode(json_out_client_route_id{Id: r.Id, CtsId: r.cts.Id}); err != nil { goto oops }
|
||||
@ -436,7 +434,7 @@ func (ctl *client_ctl_client_conns_id_routes) ServeHTTP(w http.ResponseWriter, r
|
||||
status_code = WriteEmptyRespHeader(w, http.StatusBadRequest)
|
||||
}
|
||||
|
||||
done:
|
||||
//done:
|
||||
return status_code, nil
|
||||
|
||||
oops:
|
||||
@ -466,28 +464,28 @@ func (ctl *client_ctl_client_conns_id_routes_id) ServeHTTP(w http.ResponseWriter
|
||||
conn_nid, err = strconv.ParseUint(conn_id, 10, int(unsafe.Sizeof(ConnId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id})
|
||||
goto oops
|
||||
}
|
||||
route_nid, err = strconv.ParseUint(route_id, 10, int(unsafe.Sizeof(RouteId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong route id - " + route_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong route id - " + route_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
cts = c.FindClientConnById(ConnId(conn_nid))
|
||||
if cts == nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusNotFound)
|
||||
if err = je.Encode(JsonErrmsg{Text: "non-existent connection id - " + conn_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "non-existent connection id - " + conn_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
r = cts.FindClientRouteById(RouteId(route_nid))
|
||||
if r == nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusNotFound)
|
||||
if err = je.Encode(JsonErrmsg{Text: "non-existent route id - " + route_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "non-existent route id - " + route_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
switch req.Method {
|
||||
@ -543,7 +541,7 @@ func (ctl *client_ctl_client_conns_id_routes_id) ServeHTTP(w http.ResponseWriter
|
||||
status_code = WriteEmptyRespHeader(w, http.StatusBadRequest)
|
||||
}
|
||||
|
||||
done:
|
||||
//done:
|
||||
return status_code, nil
|
||||
|
||||
oops:
|
||||
@ -573,28 +571,28 @@ func (ctl *client_ctl_client_conns_id_routes_spsp) ServeHTTP(w http.ResponseWrit
|
||||
conn_nid, err = strconv.ParseUint(conn_id, 10, int(unsafe.Sizeof(ConnId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id})
|
||||
goto oops
|
||||
}
|
||||
port_nid, err = strconv.ParseUint(port_id, 10, int(unsafe.Sizeof(PortId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong route id - " + port_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong route id - " + port_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
cts = c.FindClientConnById(ConnId(conn_nid))
|
||||
if cts == nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusNotFound)
|
||||
if err = je.Encode(JsonErrmsg{Text: "non-existent connection id - " + conn_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "non-existent connection id - " + conn_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
r = cts.FindClientRouteByServerPeerSvcPortId(PortId(port_nid))
|
||||
if r == nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusNotFound)
|
||||
if err = je.Encode(JsonErrmsg{Text: "non-existent server peer port id - " + port_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "non-existent server peer port id - " + port_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
switch req.Method {
|
||||
@ -648,7 +646,7 @@ func (ctl *client_ctl_client_conns_id_routes_spsp) ServeHTTP(w http.ResponseWrit
|
||||
status_code = WriteEmptyRespHeader(w, http.StatusBadRequest)
|
||||
}
|
||||
|
||||
done:
|
||||
//done:
|
||||
return status_code, nil
|
||||
|
||||
oops:
|
||||
@ -677,21 +675,21 @@ func (ctl *client_ctl_client_conns_id_routes_id_peers) ServeHTTP(w http.Response
|
||||
conn_nid, err = strconv.ParseUint(conn_id, 10, int(unsafe.Sizeof(ConnId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id})
|
||||
goto oops
|
||||
}
|
||||
route_nid, err = strconv.ParseUint(route_id, 10, int(unsafe.Sizeof(RouteId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong route id - " + route_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong route id - " + route_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
r = c.FindClientRouteById(ConnId(conn_nid), RouteId(route_nid))
|
||||
if r == nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusNotFound)
|
||||
if err = je.Encode(JsonErrmsg{Text: "non-existent connection/route id - " + conn_id + "/" + route_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "non-existent connection/route id - " + conn_id + "/" + route_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
switch req.Method {
|
||||
@ -723,7 +721,7 @@ func (ctl *client_ctl_client_conns_id_routes_id_peers) ServeHTTP(w http.Response
|
||||
status_code = WriteEmptyRespHeader(w, http.StatusBadRequest)
|
||||
}
|
||||
|
||||
done:
|
||||
//done:
|
||||
return status_code, nil
|
||||
|
||||
oops:
|
||||
@ -755,27 +753,27 @@ func (ctl *client_ctl_client_conns_id_routes_id_peers_id) ServeHTTP(w http.Respo
|
||||
conn_nid, err = strconv.ParseUint(conn_id, 10, int(unsafe.Sizeof(ConnId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong connection id - " + conn_id})
|
||||
goto oops
|
||||
}
|
||||
route_nid, err = strconv.ParseUint(route_id, 10, int(unsafe.Sizeof(RouteId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong route id - " + route_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong route id - " + route_id})
|
||||
goto oops
|
||||
}
|
||||
peer_nid, err = strconv.ParseUint(peer_id, 10, int(unsafe.Sizeof(ConnId(0)) * 8))
|
||||
if err != nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusBadRequest)
|
||||
if err = je.Encode(JsonErrmsg{Text: "wrong peer id - " + peer_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "wrong peer id - " + peer_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
p = c.FindClientPeerConnById(ConnId(conn_nid), RouteId(route_nid), PeerId(peer_nid))
|
||||
if p == nil {
|
||||
status_code = WriteJsonRespHeader(w, http.StatusNotFound)
|
||||
if err = je.Encode(JsonErrmsg{Text: "non-existent connection/route/peer id - " + conn_id + "/" + route_id + "/" + peer_id}); err != nil { goto oops }
|
||||
goto done
|
||||
je.Encode(JsonErrmsg{Text: "non-existent connection/route/peer id - " + conn_id + "/" + route_id + "/" + peer_id})
|
||||
goto oops
|
||||
}
|
||||
|
||||
switch req.Method {
|
||||
@ -801,7 +799,7 @@ func (ctl *client_ctl_client_conns_id_routes_id_peers_id) ServeHTTP(w http.Respo
|
||||
status_code = WriteEmptyRespHeader(w, http.StatusBadRequest)
|
||||
}
|
||||
|
||||
done:
|
||||
//done:
|
||||
return status_code, nil
|
||||
|
||||
oops:
|
||||
|
Reference in New Issue
Block a user