Beispiel #1
0
static void obex_event(obex_t *handle, obex_object_t *object, int mode, int event, int command, int response)
{
	switch (event) {
	case OBEX_EV_PROGRESS:
		//printf("Evt: Progress\n");
		break;

	case OBEX_EV_ABORT:
		printf("Evt: Abort\n");
		break;

	case OBEX_EV_REQDONE:
		//printf("Evt: Request done\n");
		obex_request_done(handle, object, command, response);
		break;

	case OBEX_EV_REQHINT:
		printf("Evt: Request hint\n");
		/* Accept any command. Not really good :) */
		OBEX_ObjectSetRsp(object, OBEX_RSP_CONTINUE, OBEX_RSP_SUCCESS);
		break;

	case OBEX_EV_REQ:
		printf("Evt: Request\n");
		break;

	case OBEX_EV_LINKERR:
		printf("Evt: Link error\n");
		OBEX_TransportDisconnect(handle);
		break;

	case OBEX_EV_PARSEERR:
		printf("Evt: Parse error\n");
		OBEX_TransportDisconnect(handle);
		break;

	case OBEX_EV_STREAMEMPTY:
		printf("Evt: Stream empty\n");
		break;

	default:
		printf("Evt: Unknown event %02x\n", event);
		break;
	}
}
//
// Called by the obex-layer when some event occurs.
//
void obex_event(obex_t *handle, obex_object_t *object, int mode, int event, int obex_cmd, int obex_rsp)
{
    switch (event)	{
    case OBEX_EV_PROGRESS:
        printf("Made some progress...\n");
        break;

    case OBEX_EV_ABORT:
        printf("Request aborted!\n");
        break;

    case OBEX_EV_REQDONE:
        if(mode == OBEX_MODE_CLIENT) {
            client_done(handle, object, obex_cmd, obex_rsp);
        }
        else	{
            server_done(handle, object, obex_cmd, obex_rsp);
        }
        break;
    case OBEX_EV_REQHINT:
        /* Accept any command. Not rellay good, but this is a test-program :) */
        OBEX_ObjectSetRsp(object, OBEX_RSP_CONTINUE, OBEX_RSP_SUCCESS);
        break;

    case OBEX_EV_REQ:
        server_request(handle, object, event, obex_cmd);
        break;

    case OBEX_EV_LINKERR:
        OBEX_TransportDisconnect(handle);
        printf("Link broken!\n");
        break;

    case OBEX_EV_STREAMEMPTY:
        fillstream(handle, object);
        break;

    default:
        printf("Unknown event %02x!\n", event);
        break;
    }
}
Beispiel #3
0
//
// Do disconnect as client
//
int ircp_cli_disconnect(ircp_client_t *cli)
{
	obex_object_t *object;
	int ret;

	DEBUG(4, "\n");
	ircp_return_val_if_fail(cli != NULL, -1);

	cli->infocb(IRCP_EV_DISCONNECTING, "");

	object = OBEX_ObjectNew(cli->obexhandle, OBEX_CMD_DISCONNECT);
	ret = cli_sync_request(cli, object);

	if(ret < 0)
		cli->infocb(IRCP_EV_ERR, "");
	else
		cli->infocb(IRCP_EV_OK, "");

	OBEX_TransportDisconnect(cli->obexhandle);
	return ret;
}
Beispiel #4
0
static void obex_event(obex_t *handle, obex_object_t *object,
			int mode, int event, int command, int response)
{
	obex_context_t *context = OBEX_GetUserData(handle);

	switch (event) {
	case OBEX_EV_PROGRESS:
		obex_progress(handle, object);
		break;

	case OBEX_EV_REQHINT:
		OBEX_ObjectSetRsp(object, OBEX_RSP_NOT_IMPLEMENTED, response);
		break;

	case OBEX_EV_REQ:
		OBEX_ObjectSetRsp(object, OBEX_RSP_NOT_IMPLEMENTED, response);
		break;

	case OBEX_EV_REQDONE:
		debug("OBEX_EV_REQDONE");

		context->obex_rsp = response;
		queue_event(context, OBEX_EV_REQDONE);

		if (context->pending && OBEX_Request(handle, context->pending) == 0) {
			if (OBEX_ObjectGetCommand(handle, context->pending) == OBEX_CMD_PUT)
				queue_event(context, OBEX_EV_STREAMEMPTY);
			context->pending = NULL;
		}

	        switch (command) {
	        case OBEX_CMD_CONNECT:
			obex_connect_done(handle, object, response);
			break;
		case OBEX_CMD_DISCONNECT:
			obex_disconnect_done(handle, object, response);
			break;
		case OBEX_CMD_PUT:
		case OBEX_CMD_GET:
			break;
		case OBEX_CMD_SETPATH:
			break;
		case OBEX_CMD_SESSION:
			break;
		case OBEX_CMD_ABORT:
			break;
		}
		break;

	case OBEX_EV_LINKERR:
		OBEX_TransportDisconnect(handle);
		break;

	case OBEX_EV_PARSEERR:
		OBEX_TransportDisconnect(handle);
		break;

	case OBEX_EV_ACCEPTHINT:
		break;

	case OBEX_EV_ABORT:
		queue_event(context, OBEX_EV_ABORT);
		break;

	case OBEX_EV_STREAMEMPTY:
		debug("OBEX_EV_STREAMEMPTY");
		obex_writestream(handle, object);
		break;

	case OBEX_EV_STREAMAVAIL:
		debug("OBEX_EV_STREAMAVAIL");
		obex_readstream(handle, object);
		break;

	case OBEX_EV_UNEXPECTED:
		break;

	case OBEX_EV_REQCHECK:
		break;
	}
}