switch url to id in invitation process
This commit is contained in:
		@@ -9,7 +9,7 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (r *RedisRouter) CreateInvitation(invitation []byte, timeout int, password string, serverTimeout int, urlLen int) (string, time.Time) {
 | 
			
		||||
	id := r.createShortUrl(urlLen)
 | 
			
		||||
	id := r.createShortId(urlLen)
 | 
			
		||||
	if timeout > serverTimeout {
 | 
			
		||||
		timeout = serverTimeout
 | 
			
		||||
	}
 | 
			
		||||
@@ -54,17 +54,17 @@ func (r *RedisRouter) GetInvitationAnswer(id string) ([]byte, error) {
 | 
			
		||||
	return []byte(mwan), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *RedisRouter) createShortUrl(length int) string {
 | 
			
		||||
	url := ""
 | 
			
		||||
func (r *RedisRouter) createShortId(length int) string {
 | 
			
		||||
	id := ""
 | 
			
		||||
	alphabet := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
 | 
			
		||||
	// for not in redis
 | 
			
		||||
	for {
 | 
			
		||||
		for i := 1; i <= length; i++ {
 | 
			
		||||
			url += string(alphabet[rand.Intn(61)])
 | 
			
		||||
			id += string(alphabet[rand.Intn(61)])
 | 
			
		||||
		}
 | 
			
		||||
		if r.Client.Get("mwiv:"+url).Err() == redis.Nil {
 | 
			
		||||
		if r.Client.Get("mwiv:"+id).Err() == redis.Nil {
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return url
 | 
			
		||||
	return id
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -93,11 +93,11 @@ func (r *RedisRouter) Route(msg *meowlib.ToServerMessage) (*meowlib.FromServerMe
 | 
			
		||||
	if msg.Invitation != nil {
 | 
			
		||||
		switch msg.Invitation.Step {
 | 
			
		||||
		case 1: // create invitation
 | 
			
		||||
			url, expiry := r.CreateInvitation(msg.Invitation.Payload, int(msg.Invitation.Timeout), msg.Invitation.Password, r.InvitationTimeout, int(msg.Invitation.Urllen))
 | 
			
		||||
			from_server.Invitation.Url = url
 | 
			
		||||
			url, expiry := r.CreateInvitation(msg.Invitation.Payload, int(msg.Invitation.Timeout), msg.Invitation.Password, r.InvitationTimeout, int(msg.Invitation.Idlen))
 | 
			
		||||
			from_server.Invitation.Id = url
 | 
			
		||||
			from_server.Invitation.Expiry = expiry.UTC().Unix()
 | 
			
		||||
		case 2: // get invitation
 | 
			
		||||
			invitation, err := r.GetInvitation(msg.Invitation.Url, msg.Invitation.Password)
 | 
			
		||||
			invitation, err := r.GetInvitation(msg.Invitation.Id, msg.Invitation.Password)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				if err.Error() == "auth failed" {
 | 
			
		||||
					from_server.Invitation.Payload = []byte("authentication failure")
 | 
			
		||||
@@ -108,10 +108,10 @@ func (r *RedisRouter) Route(msg *meowlib.ToServerMessage) (*meowlib.FromServerMe
 | 
			
		||||
				from_server.Invitation.Payload = invitation
 | 
			
		||||
			}
 | 
			
		||||
		case 3: // answer invitation
 | 
			
		||||
			expiry := r.AnswerInvitation(msg.Invitation.Url, int(msg.Invitation.Timeout), msg.Invitation.Payload, r.InvitationTimeout)
 | 
			
		||||
			expiry := r.AnswerInvitation(msg.Invitation.Id, int(msg.Invitation.Timeout), msg.Invitation.Payload, r.InvitationTimeout)
 | 
			
		||||
			from_server.Invitation.Expiry = expiry.UTC().Unix()
 | 
			
		||||
		case 4: // get answer
 | 
			
		||||
			answer, err := r.GetInvitationAnswer(msg.Invitation.Url)
 | 
			
		||||
			answer, err := r.GetInvitationAnswer(msg.Invitation.Id)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				from_server.Invitation.Payload = []byte("invitation expired")
 | 
			
		||||
			} else {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user