mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 20:11:19 -04:00
Move SQS client ID generation to Exchange
This commit is contained in:
parent
c4c22fa2a0
commit
9cd362f42d
1 changed files with 21 additions and 23 deletions
|
@ -20,7 +20,6 @@ import (
|
||||||
|
|
||||||
type sqsRendezvous struct {
|
type sqsRendezvous struct {
|
||||||
transport http.RoundTripper
|
transport http.RoundTripper
|
||||||
sqsClientID string
|
|
||||||
sqsClient sqsclient.SQSClient
|
sqsClient sqsclient.SQSClient
|
||||||
sqsURL *url.URL
|
sqsURL *url.URL
|
||||||
timeout time.Duration
|
timeout time.Duration
|
||||||
|
@ -33,13 +32,6 @@ func newSQSRendezvous(sqsQueue string, sqsAccessKeyId string, sqsSecretKey strin
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var id [8]byte
|
|
||||||
_, err = rand.Read(id[:])
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
clientID := hex.EncodeToString(id[:])
|
|
||||||
|
|
||||||
queueURL := sqsURL.String()
|
queueURL := sqsURL.String()
|
||||||
hostName := sqsURL.Hostname()
|
hostName := sqsURL.Hostname()
|
||||||
|
|
||||||
|
@ -61,11 +53,9 @@ func newSQSRendezvous(sqsQueue string, sqsAccessKeyId string, sqsSecretKey strin
|
||||||
client := sqs.NewFromConfig(cfg)
|
client := sqs.NewFromConfig(cfg)
|
||||||
|
|
||||||
log.Println("Queue URL: ", queueURL)
|
log.Println("Queue URL: ", queueURL)
|
||||||
log.Println("SQS Client ID: ", clientID)
|
|
||||||
|
|
||||||
return &sqsRendezvous{
|
return &sqsRendezvous{
|
||||||
transport: transport,
|
transport: transport,
|
||||||
sqsClientID: clientID,
|
|
||||||
sqsClient: client,
|
sqsClient: client,
|
||||||
sqsURL: sqsURL,
|
sqsURL: sqsURL,
|
||||||
timeout: time.Second,
|
timeout: time.Second,
|
||||||
|
@ -76,11 +66,19 @@ func newSQSRendezvous(sqsQueue string, sqsAccessKeyId string, sqsSecretKey strin
|
||||||
func (r *sqsRendezvous) Exchange(encPollReq []byte) ([]byte, error) {
|
func (r *sqsRendezvous) Exchange(encPollReq []byte) ([]byte, error) {
|
||||||
log.Println("Negotiating via SQS Queue rendezvous...")
|
log.Println("Negotiating via SQS Queue rendezvous...")
|
||||||
|
|
||||||
_, err := r.sqsClient.SendMessage(context.TODO(), &sqs.SendMessageInput{
|
var id [8]byte
|
||||||
|
_, err := rand.Read(id[:])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
sqsClientID := hex.EncodeToString(id[:])
|
||||||
|
log.Println("SQS Client ID for rendezvous: " + sqsClientID)
|
||||||
|
|
||||||
|
_, err = r.sqsClient.SendMessage(context.TODO(), &sqs.SendMessageInput{
|
||||||
MessageAttributes: map[string]types.MessageAttributeValue{
|
MessageAttributes: map[string]types.MessageAttributeValue{
|
||||||
"ClientID": {
|
"ClientID": {
|
||||||
DataType: aws.String("String"),
|
DataType: aws.String("String"),
|
||||||
StringValue: aws.String(r.sqsClientID),
|
StringValue: aws.String(sqsClientID),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
MessageBody: aws.String(string(encPollReq)),
|
MessageBody: aws.String(string(encPollReq)),
|
||||||
|
@ -98,7 +96,7 @@ func (r *sqsRendezvous) Exchange(encPollReq []byte) ([]byte, error) {
|
||||||
// may not be created yet. We will retry up to 5 times before we error out.
|
// may not be created yet. We will retry up to 5 times before we error out.
|
||||||
var res *sqs.GetQueueUrlOutput
|
var res *sqs.GetQueueUrlOutput
|
||||||
res, err = r.sqsClient.GetQueueUrl(context.TODO(), &sqs.GetQueueUrlInput{
|
res, err = r.sqsClient.GetQueueUrl(context.TODO(), &sqs.GetQueueUrlInput{
|
||||||
QueueName: aws.String("snowflake-client-" + r.sqsClientID),
|
QueueName: aws.String("snowflake-client-" + sqsClientID),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue