Changeset f9258ae for protocols/msn


Ignore:
Timestamp:
2012-09-16T11:52:35Z (12 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
080c43a
Parents:
bc676ac
Message:

Generate a machine UUID instead of using a hardcoded one.

Location:
protocols/msn
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/msn.c

    rbc676ac rf9258ae  
    22  * BitlBee -- An IRC to other IM-networks gateway                     *
    33  *                                                                    *
    4   * Copyright 2002-2010 Wilmer van der Gaast and others                *
     4  * Copyright 2002-2012 Wilmer van der Gaast and others                *
    55  \********************************************************************/
    66
     
    9898                g_free( md->lock_key );
    9999                g_free( md->pp_policy );
     100                g_free( md->uuid );
    100101               
    101102                while( md->groups )
  • protocols/msn/msn.h

    rbc676ac rf9258ae  
    123123        char *tokens[4];
    124124        char *lock_key, *pp_policy;
     125        char *uuid;
    125126       
    126127        GSList *msgq, *grpq, *soapq;
  • protocols/msn/ns.c

    rbc676ac rf9258ae  
    22  * BitlBee -- An IRC to other IM-networks gateway                     *
    33  *                                                                    *
    4   * Copyright 2002-2010 Wilmer van der Gaast and others                *
     4  * Copyright 2002-2012 Wilmer van der Gaast and others                *
    55  \********************************************************************/
    66
     
    2525
    2626#include <ctype.h>
     27#include <sys/utsname.h>
    2728#include "nogaim.h"
    2829#include "msn.h"
    2930#include "md5.h"
     31#include "sha1.h"
    3032#include "soap.h"
    3133#include "xmltree.h"
     
    110112        handler->rxlen = 0;
    111113        handler->rxq = g_new0( char, 1 );
     114       
     115        if( md->uuid == NULL )
     116        {
     117                struct utsname name;
     118                sha1_state_t sha[1];
     119               
     120                /* UUID == SHA1("BitlBee" + my hostname + MSN username) */
     121                sha1_init( sha );
     122                sha1_append( sha, (void*) "BitlBee", 7 );
     123                if( uname( &name ) == 0 )
     124                {
     125                        sha1_append( sha, (void*) name.nodename, strlen( name.nodename ) );
     126                }
     127                sha1_append( sha, (void*) ic->acc->user, strlen( ic->acc->user ) );
     128                md->uuid = sha1_random_uuid( sha );
     129                memcpy( md->uuid, "b171be3e", 8 ); /* :-P */
     130        }
    112131       
    113132        if( msn_ns_write( ic, source, "VER %d %s CVR0\r\n", ++md->trId, MSNP_VER ) )
     
    757776        if( token )
    758777        {
    759                 msn_ns_write( ic, -1, "USR %d SSO S %s %s {7535ef7c-ff92-11e1-8069-50e5493b06de}\r\n", ++md->trId, md->tokens[0], token );
     778                msn_ns_write( ic, -1, "USR %d SSO S %s %s {%s}\r\n", ++md->trId, md->tokens[0], token, md->uuid );
    760779        }
    761780        else
Note: See TracChangeset for help on using the changeset viewer.