LINUX.ORG.RU

Проблема сос сборкой программы...


0

0

[alexandr@cyclon ussp-push]$ make
gcc -I/usr/local/include -I/usr/include/glib-1.2 -I/usr/lib/glib/include -c obex_main.c -o obex_main.o
obex_main.c: In function `__obex_connect':
obex_main.c:224: structure has no member named `userdata'
make: *** [obex_main.o] Ошибка 1

вот такая вот проблема хотя посмотрев соответствующий файл то всё оказалось на месте.

typedef struct client_context
{
gboolean serverdone;
gboolean clientdone;
gchar *get_name; /* Name of last get-request */

int rsp; /* error code */
int opcode;
char *arg; /* response storage place */
guint32 con_id; /* connection ide */

int fd;
gpointer userdata;
} client_context_t;


obex_t *__obex_connect(void *addr, int *err)
{
obex_t *handle;
obex_object_t *oo; // OBEX Object
obex_headerdata_t hv;
client_context_t *gt;
obex_ctrans_t custfunc;


gt = malloc(sizeof(client_context_t));
if( gt == NULL )
return NULL;

memset(gt, 0, sizeof(client_context_t));

gt->userdata = cobex_open(addr);
if( gt->userdata == NULL ) {
printf("cobex_open() failed");
*err = -1;
return NULL;
}
if(! (handle = OBEX_Init(OBEX_TRANS_CUST, obex_event, 0))) {
printf( "OBEX_Init failed:%s", strerror(errno));
close(gt->fd);
*err = -1;
return NULL;
}

custfunc.userdata = gt->userdata;
custfunc.connect = cobex_connect;
custfunc.disconnect = cobex_disconnect;
custfunc.write = cobex_write;
custfunc.handleinput = cobex_handle_input;
custfunc.listen = cobex_connect; // Listen and connect is 100% same on cable

if(OBEX_RegisterCTransport(handle, &custfunc) < 0) {
printf("Custom transport callback-registration failed");
close(gt->fd);
*err = -1;
return NULL;
}

printf( "Registered transport\n" );


OBEX_SetUserData(handle, gt);

printf( "\nset user data\n" );
// create new object
oo = OBEX_ObjectNew(handle, OBEX_CMD_CONNECT);
printf( "\ncreated new objext\n" );
*err = OBEX_Request(handle, oo);
printf( "\nstarted a new request\n" );
if( *err )
goto exit;
*err = handle_response(handle, BT_SERVICE);
printf("\nConnection return code: %d, id: %d\n", *err, gt->con_id);
if( *err )
goto exit;
printf("Connection established\n");
return handle;
exit:
obex_disconnect(handle);
return NULL;
}

Самое интересное то что выше этоой строки уже используется эта же структура с таким же мембером и ничего а сдесь не работает.
Помогите рабораться.

Заранее спасибо!!!

★★★★★

Ошибка в этой строке?

224: custfunc.userdata = gt->userdata; 

Если да, то поле userdata действительно отсутствует, но
не в структуре client_context, а в структуре  obex_ctrans_t.

abbr
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.