aboutsummaryrefslogtreecommitdiff
path: root/keyserver/inthttp
diff options
context:
space:
mode:
Diffstat (limited to 'keyserver/inthttp')
-rw-r--r--keyserver/inthttp/client.go161
-rw-r--r--keyserver/inthttp/server.go143
2 files changed, 89 insertions, 215 deletions
diff --git a/keyserver/inthttp/client.go b/keyserver/inthttp/client.go
index dac61d1e..7a713114 100644
--- a/keyserver/inthttp/client.go
+++ b/keyserver/inthttp/client.go
@@ -22,7 +22,6 @@ import (
"github.com/matrix-org/dendrite/internal/httputil"
"github.com/matrix-org/dendrite/keyserver/api"
userapi "github.com/matrix-org/dendrite/userapi/api"
- "github.com/opentracing/opentracing-go"
)
// HTTP paths for the internal HTTP APIs
@@ -68,168 +67,108 @@ func (h *httpKeyInternalAPI) PerformClaimKeys(
ctx context.Context,
request *api.PerformClaimKeysRequest,
response *api.PerformClaimKeysResponse,
-) {
- span, ctx := opentracing.StartSpanFromContext(ctx, "PerformClaimKeys")
- defer span.Finish()
-
- apiURL := h.apiURL + PerformClaimKeysPath
- err := httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
- if err != nil {
- response.Error = &api.KeyError{
- Err: err.Error(),
- }
- }
+) error {
+ return httputil.CallInternalRPCAPI(
+ "PerformClaimKeys", h.apiURL+PerformClaimKeysPath,
+ h.httpClient, ctx, request, response,
+ )
}
func (h *httpKeyInternalAPI) PerformDeleteKeys(
ctx context.Context,
request *api.PerformDeleteKeysRequest,
response *api.PerformDeleteKeysResponse,
-) {
- span, ctx := opentracing.StartSpanFromContext(ctx, "PerformClaimKeys")
- defer span.Finish()
-
- apiURL := h.apiURL + PerformClaimKeysPath
- err := httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
- if err != nil {
- response.Error = &api.KeyError{
- Err: err.Error(),
- }
- }
+) error {
+ return httputil.CallInternalRPCAPI(
+ "PerformDeleteKeys", h.apiURL+PerformDeleteKeysPath,
+ h.httpClient, ctx, request, response,
+ )
}
func (h *httpKeyInternalAPI) PerformUploadKeys(
ctx context.Context,
request *api.PerformUploadKeysRequest,
response *api.PerformUploadKeysResponse,
-) {
- span, ctx := opentracing.StartSpanFromContext(ctx, "PerformUploadKeys")
- defer span.Finish()
-
- apiURL := h.apiURL + PerformUploadKeysPath
- err := httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
- if err != nil {
- response.Error = &api.KeyError{
- Err: err.Error(),
- }
- }
+) error {
+ return httputil.CallInternalRPCAPI(
+ "PerformUploadKeys", h.apiURL+PerformUploadKeysPath,
+ h.httpClient, ctx, request, response,
+ )
}
func (h *httpKeyInternalAPI) QueryKeys(
ctx context.Context,
request *api.QueryKeysRequest,
response *api.QueryKeysResponse,
-) {
- span, ctx := opentracing.StartSpanFromContext(ctx, "QueryKeys")
- defer span.Finish()
-
- apiURL := h.apiURL + QueryKeysPath
- err := httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
- if err != nil {
- response.Error = &api.KeyError{
- Err: err.Error(),
- }
- }
+) error {
+ return httputil.CallInternalRPCAPI(
+ "QueryKeys", h.apiURL+QueryKeysPath,
+ h.httpClient, ctx, request, response,
+ )
}
func (h *httpKeyInternalAPI) QueryOneTimeKeys(
ctx context.Context,
request *api.QueryOneTimeKeysRequest,
response *api.QueryOneTimeKeysResponse,
-) {
- span, ctx := opentracing.StartSpanFromContext(ctx, "QueryOneTimeKeys")
- defer span.Finish()
-
- apiURL := h.apiURL + QueryOneTimeKeysPath
- err := httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
- if err != nil {
- response.Error = &api.KeyError{
- Err: err.Error(),
- }
- }
+) error {
+ return httputil.CallInternalRPCAPI(
+ "QueryOneTimeKeys", h.apiURL+QueryOneTimeKeysPath,
+ h.httpClient, ctx, request, response,
+ )
}
func (h *httpKeyInternalAPI) QueryDeviceMessages(
ctx context.Context,
request *api.QueryDeviceMessagesRequest,
response *api.QueryDeviceMessagesResponse,
-) {
- span, ctx := opentracing.StartSpanFromContext(ctx, "QueryDeviceMessages")
- defer span.Finish()
-
- apiURL := h.apiURL + QueryDeviceMessagesPath
- err := httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
- if err != nil {
- response.Error = &api.KeyError{
- Err: err.Error(),
- }
- }
+) error {
+ return httputil.CallInternalRPCAPI(
+ "QueryDeviceMessages", h.apiURL+QueryDeviceMessagesPath,
+ h.httpClient, ctx, request, response,
+ )
}
func (h *httpKeyInternalAPI) QueryKeyChanges(
ctx context.Context,
request *api.QueryKeyChangesRequest,
response *api.QueryKeyChangesResponse,
-) {
- span, ctx := opentracing.StartSpanFromContext(ctx, "QueryKeyChanges")
- defer span.Finish()
-
- apiURL := h.apiURL + QueryKeyChangesPath
- err := httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
- if err != nil {
- response.Error = &api.KeyError{
- Err: err.Error(),
- }
- }
+) error {
+ return httputil.CallInternalRPCAPI(
+ "QueryKeyChanges", h.apiURL+QueryKeyChangesPath,
+ h.httpClient, ctx, request, response,
+ )
}
func (h *httpKeyInternalAPI) PerformUploadDeviceKeys(
ctx context.Context,
request *api.PerformUploadDeviceKeysRequest,
response *api.PerformUploadDeviceKeysResponse,
-) {
- span, ctx := opentracing.StartSpanFromContext(ctx, "PerformUploadDeviceKeys")
- defer span.Finish()
-
- apiURL := h.apiURL + PerformUploadDeviceKeysPath
- err := httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
- if err != nil {
- response.Error = &api.KeyError{
- Err: err.Error(),
- }
- }
+) error {
+ return httputil.CallInternalRPCAPI(
+ "PerformUploadDeviceKeys", h.apiURL+PerformUploadDeviceKeysPath,
+ h.httpClient, ctx, request, response,
+ )
}
func (h *httpKeyInternalAPI) PerformUploadDeviceSignatures(
ctx context.Context,
request *api.PerformUploadDeviceSignaturesRequest,
response *api.PerformUploadDeviceSignaturesResponse,
-) {
- span, ctx := opentracing.StartSpanFromContext(ctx, "PerformUploadDeviceSignatures")
- defer span.Finish()
-
- apiURL := h.apiURL + PerformUploadDeviceSignaturesPath
- err := httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
- if err != nil {
- response.Error = &api.KeyError{
- Err: err.Error(),
- }
- }
+) error {
+ return httputil.CallInternalRPCAPI(
+ "PerformUploadDeviceSignatures", h.apiURL+PerformUploadDeviceSignaturesPath,
+ h.httpClient, ctx, request, response,
+ )
}
func (h *httpKeyInternalAPI) QuerySignatures(
ctx context.Context,
request *api.QuerySignaturesRequest,
response *api.QuerySignaturesResponse,
-) {
- span, ctx := opentracing.StartSpanFromContext(ctx, "QuerySignatures")
- defer span.Finish()
-
- apiURL := h.apiURL + QuerySignaturesPath
- err := httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
- if err != nil {
- response.Error = &api.KeyError{
- Err: err.Error(),
- }
- }
+) error {
+ return httputil.CallInternalRPCAPI(
+ "QuerySignatures", h.apiURL+QuerySignaturesPath,
+ h.httpClient, ctx, request, response,
+ )
}
diff --git a/keyserver/inthttp/server.go b/keyserver/inthttp/server.go
index 5bf5976a..4e5f9fba 100644
--- a/keyserver/inthttp/server.go
+++ b/keyserver/inthttp/server.go
@@ -15,124 +15,59 @@
package inthttp
import (
- "encoding/json"
- "net/http"
-
"github.com/gorilla/mux"
"github.com/matrix-org/dendrite/internal/httputil"
"github.com/matrix-org/dendrite/keyserver/api"
- "github.com/matrix-org/util"
)
func AddRoutes(internalAPIMux *mux.Router, s api.KeyInternalAPI) {
- internalAPIMux.Handle(PerformClaimKeysPath,
- httputil.MakeInternalAPI("performClaimKeys", func(req *http.Request) util.JSONResponse {
- request := api.PerformClaimKeysRequest{}
- response := api.PerformClaimKeysResponse{}
- if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
- return util.MessageResponse(http.StatusBadRequest, err.Error())
- }
- s.PerformClaimKeys(req.Context(), &request, &response)
- return util.JSONResponse{Code: http.StatusOK, JSON: &response}
- }),
+ internalAPIMux.Handle(
+ PerformClaimKeysPath,
+ httputil.MakeInternalRPCAPI("KeyserverPerformClaimKeys", s.PerformClaimKeys),
)
- internalAPIMux.Handle(PerformDeleteKeysPath,
- httputil.MakeInternalAPI("performDeleteKeys", func(req *http.Request) util.JSONResponse {
- request := api.PerformDeleteKeysRequest{}
- response := api.PerformDeleteKeysResponse{}
- if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
- return util.MessageResponse(http.StatusBadRequest, err.Error())
- }
- s.PerformDeleteKeys(req.Context(), &request, &response)
- return util.JSONResponse{Code: http.StatusOK, JSON: &response}
- }),
+
+ internalAPIMux.Handle(
+ PerformDeleteKeysPath,
+ httputil.MakeInternalRPCAPI("KeyserverPerformDeleteKeys", s.PerformDeleteKeys),
)
- internalAPIMux.Handle(PerformUploadKeysPath,
- httputil.MakeInternalAPI("performUploadKeys", func(req *http.Request) util.JSONResponse {
- request := api.PerformUploadKeysRequest{}
- response := api.PerformUploadKeysResponse{}
- if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
- return util.MessageResponse(http.StatusBadRequest, err.Error())
- }
- s.PerformUploadKeys(req.Context(), &request, &response)
- return util.JSONResponse{Code: http.StatusOK, JSON: &response}
- }),
+
+ internalAPIMux.Handle(
+ PerformUploadKeysPath,
+ httputil.MakeInternalRPCAPI("KeyserverPerformUploadKeys", s.PerformUploadKeys),
)
- internalAPIMux.Handle(PerformUploadDeviceKeysPath,
- httputil.MakeInternalAPI("performUploadDeviceKeys", func(req *http.Request) util.JSONResponse {
- request := api.PerformUploadDeviceKeysRequest{}
- response := api.PerformUploadDeviceKeysResponse{}
- if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
- return util.MessageResponse(http.StatusBadRequest, err.Error())
- }
- s.PerformUploadDeviceKeys(req.Context(), &request, &response)
- return util.JSONResponse{Code: http.StatusOK, JSON: &response}
- }),
+
+ internalAPIMux.Handle(
+ PerformUploadDeviceKeysPath,
+ httputil.MakeInternalRPCAPI("KeyserverPerformUploadDeviceKeys", s.PerformUploadDeviceKeys),
)
- internalAPIMux.Handle(PerformUploadDeviceSignaturesPath,
- httputil.MakeInternalAPI("performUploadDeviceSignatures", func(req *http.Request) util.JSONResponse {
- request := api.PerformUploadDeviceSignaturesRequest{}
- response := api.PerformUploadDeviceSignaturesResponse{}
- if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
- return util.MessageResponse(http.StatusBadRequest, err.Error())
- }
- s.PerformUploadDeviceSignatures(req.Context(), &request, &response)
- return util.JSONResponse{Code: http.StatusOK, JSON: &response}
- }),
+
+ internalAPIMux.Handle(
+ PerformUploadDeviceSignaturesPath,
+ httputil.MakeInternalRPCAPI("KeyserverPerformUploadDeviceSignatures", s.PerformUploadDeviceSignatures),
)
- internalAPIMux.Handle(QueryKeysPath,
- httputil.MakeInternalAPI("queryKeys", func(req *http.Request) util.JSONResponse {
- request := api.QueryKeysRequest{}
- response := api.QueryKeysResponse{}
- if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
- return util.MessageResponse(http.StatusBadRequest, err.Error())
- }
- s.QueryKeys(req.Context(), &request, &response)
- return util.JSONResponse{Code: http.StatusOK, JSON: &response}
- }),
+
+ internalAPIMux.Handle(
+ QueryKeysPath,
+ httputil.MakeInternalRPCAPI("KeyserverQueryKeys", s.QueryKeys),
)
- internalAPIMux.Handle(QueryOneTimeKeysPath,
- httputil.MakeInternalAPI("queryOneTimeKeys", func(req *http.Request) util.JSONResponse {
- request := api.QueryOneTimeKeysRequest{}
- response := api.QueryOneTimeKeysResponse{}
- if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
- return util.MessageResponse(http.StatusBadRequest, err.Error())
- }
- s.QueryOneTimeKeys(req.Context(), &request, &response)
- return util.JSONResponse{Code: http.StatusOK, JSON: &response}
- }),
+
+ internalAPIMux.Handle(
+ QueryOneTimeKeysPath,
+ httputil.MakeInternalRPCAPI("KeyserverQueryOneTimeKeys", s.QueryOneTimeKeys),
)
- internalAPIMux.Handle(QueryDeviceMessagesPath,
- httputil.MakeInternalAPI("queryDeviceMessages", func(req *http.Request) util.JSONResponse {
- request := api.QueryDeviceMessagesRequest{}
- response := api.QueryDeviceMessagesResponse{}
- if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
- return util.MessageResponse(http.StatusBadRequest, err.Error())
- }
- s.QueryDeviceMessages(req.Context(), &request, &response)
- return util.JSONResponse{Code: http.StatusOK, JSON: &response}
- }),
+
+ internalAPIMux.Handle(
+ QueryDeviceMessagesPath,
+ httputil.MakeInternalRPCAPI("KeyserverQueryDeviceMessages", s.QueryDeviceMessages),
)
- internalAPIMux.Handle(QueryKeyChangesPath,
- httputil.MakeInternalAPI("queryKeyChanges", func(req *http.Request) util.JSONResponse {
- request := api.QueryKeyChangesRequest{}
- response := api.QueryKeyChangesResponse{}
- if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
- return util.MessageResponse(http.StatusBadRequest, err.Error())
- }
- s.QueryKeyChanges(req.Context(), &request, &response)
- return util.JSONResponse{Code: http.StatusOK, JSON: &response}
- }),
+
+ internalAPIMux.Handle(
+ QueryKeyChangesPath,
+ httputil.MakeInternalRPCAPI("KeyserverQueryKeyChanges", s.QueryKeyChanges),
)
- internalAPIMux.Handle(QuerySignaturesPath,
- httputil.MakeInternalAPI("querySignatures", func(req *http.Request) util.JSONResponse {
- request := api.QuerySignaturesRequest{}
- response := api.QuerySignaturesResponse{}
- if err := json.NewDecoder(req.Body).Decode(&request); err != nil {
- return util.MessageResponse(http.StatusBadRequest, err.Error())
- }
- s.QuerySignatures(req.Context(), &request, &response)
- return util.JSONResponse{Code: http.StatusOK, JSON: &response}
- }),
+
+ internalAPIMux.Handle(
+ QuerySignaturesPath,
+ httputil.MakeInternalRPCAPI("KeyserverQuerySignatures", s.QuerySignatures),
)
}