Push service ObexFTP C client example

Compile with: gcc -Wall -lobexftp -o c_example_obex_push c_example_obex_push.c

Interesting lines are marked with /*!!!*/. The basic sequence is:

        /* Extract basename from file path */
        filename = strrchr(filepath, '/');
        if (!filename)
                filename = filepath;
        else
                filename++;

        /* Open connection */
        cli = obexftp_open(OBEX_TRANS_BLUETOOTH, NULL, NULL, NULL); /*!!!*/
        if (cli == NULL) {
                fprintf(stderr, "Error opening obexftp client\n");
                exit(1);
        }

        /* Connect to device */
        ret = obexftp_connect_push(cli, device, channel); /*!!!*/
        if (ret < 0) {
                fprintf(stderr, "Error connecting to obexftp device\n");
                obexftp_close(cli);
                cli = NULL;
                exit(1);
        }

        /* Push file */
        ret = obexftp_put_file(cli, filepath, filename); /*!!!*/
        if (ret < 0) {
                fprintf(stderr, "Error putting file\n");
        }

        /* Disconnect */
        ret = obexftp_disconnect(cli); /*!!!*/
        if (ret < 0) {
                fprintf(stderr, "Error disconnecting the client\n");
        }

        /* Close */
        obexftp_close(cli); /*!!!*/
        cli = NULL;

        exit(0);
}