Changeset 1761


Ignore:
Timestamp:
Apr 20, 2007, 12:39:52 AM (15 years ago)
Author:
joshe
Message:

Add some debugging code that's handy for parsing upnp root files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/upnp.c

    r1720 r1761  
    13611361    return NULL;
    13621362}
     1363
     1364#if 0
     1365/* this code is used for standalone root parsing for debugging purposes */
     1366/* cc -g -Wall -D__TRANSMISSION__ -o upnp upnp.c xml.c utils.c */
     1367int
     1368main( int argc, char * argv[] )
     1369{
     1370    struct stat sb;
     1371    char      * data, * soap, * scpd;
     1372    int         fd;
     1373    ssize_t     res;
     1374
     1375    if( 3 != argc )
     1376    {
     1377        printf( "usage: %s root-url root-file\n", argv[0] );
     1378        return 0;
     1379    }
     1380
     1381    tr_msgInit();
     1382    tr_setMessageLevel( 9 );
     1383
     1384    if( 0 > stat( argv[2], &sb ) )
     1385    {
     1386        tr_err( "failed to stat file %s: %s", argv[2], strerror( errno ) );
     1387        return 1;
     1388    }
     1389
     1390    data = malloc( sb.st_size );
     1391    if( NULL == data )
     1392    {
     1393        tr_err( "failed to malloc %zd bytes", ( size_t )sb.st_size );
     1394        return 1;
     1395    }
     1396
     1397    fd = open( argv[2], O_RDONLY );
     1398    if( 0 > fd )
     1399    {
     1400        tr_err( "failed to open file %s: %s", argv[2], strerror( errno ) );
     1401        free( data );
     1402        return 1;
     1403    }
     1404
     1405    res = read( fd, data, sb.st_size );
     1406    if( sb.st_size > res )
     1407    {
     1408        tr_err( "failed to read file %s: %s", argv[2],
     1409                ( 0 > res ? strerror( errno ) : "short read count" ) );
     1410        close( fd );
     1411        free( data );
     1412        return 1;
     1413    }
     1414
     1415    close( fd );
     1416
     1417    if( parseRoot( argv[1], data, sb.st_size, &soap, &scpd ) )
     1418    {
     1419        tr_err( "root parsing failed" );
     1420    }
     1421    else
     1422    {
     1423        tr_err( "soap=%s scpd=%s", soap, scpd );
     1424        free( soap );
     1425        free( scpd );
     1426    }
     1427    free( data );
     1428
     1429    return 0;
     1430}
     1431
     1432int  tr_netMcastOpen( int port, struct in_addr addr ) { assert( 0 ); }
     1433int  tr_netBind    ( int port, int type ) { assert( 0 ); }
     1434void tr_netClose   ( int s ) { assert( 0 ); }
     1435int  tr_netRecvFrom( int s, uint8_t * buf, int size, struct sockaddr_in * sin ) { assert( 0 ); }
     1436int         tr_httpRequestType( const char * data, int len,
     1437                                char ** method, char ** uri ) { assert( 0 ); }
     1438int         tr_httpResponseCode( const char * data, int len ) { assert( 0 ); }
     1439char *      tr_httpParse( const char * data, int len, tr_http_header_t *headers ) { assert( 0 ); }
     1440int         tr_httpIsUrl( const char * u, int l ) { assert( 0 ); }
     1441int         tr_httpParseUrl( const char * u, int l, char ** h, int * p, char ** q ) { assert( 0 ); }
     1442tr_http_t   * tr_httpClient( int t, const char * h, int p, const char * u, ... ) { assert( 0 ); }
     1443tr_http_t   * tr_httpClientUrl( int t, const char * u, ... ) { assert( 0 ); }
     1444void          tr_httpAddHeader( tr_http_t * h, const char * n, const char * v ) { assert( 0 ); }
     1445void          tr_httpAddBody( tr_http_t * h, const char * b, ... ) { assert( 0 ); }
     1446tr_tristate_t tr_httpPulse( tr_http_t * h, const char ** b, int * l ) { assert( 0 ); }
     1447char        * tr_httpWhatsMyAddress( tr_http_t * h ) { assert( 0 ); }
     1448void          tr_httpClose( tr_http_t * h ) { assert( 0 ); }
     1449
     1450void tr_lockInit     ( tr_lock_t * l ) {}
     1451int  pthread_mutex_lock( pthread_mutex_t * m ) { return 0; }
     1452int  pthread_mutex_unlock( pthread_mutex_t * m ) { return 0; }
     1453
     1454#endif
Note: See TracChangeset for help on using the changeset viewer.